Возвращает значение третьего столбца на основе совпадений двух столбцов в Google Таблицах

#google-sheets #indexing #match

#google-sheets #индексирование #совпадение

Вопрос:

Я пытаюсь отсортировать длинную таблицу, чтобы нам было легче анализировать данные. Какие данные у меня есть?

  • Столбец A: название продукта
  • Столбец B: дата (начало)
  • Столбец C: дата (конец)
  • Столбец D: цена

Что мне нужно сделать, так это сделать обзор всех продуктов и их цен на определенную дату, чтобы я мог легко составить график, показывающий изменения цен с течением времени. Я могу сделать это с помощью сводной таблицы, это работает. Но мне это также нужно как формула.

Теперь я использую: =iferror(index($D$2:$D; match($G3; $A$2:$A; 0); match(H$2; $B$2:$B; 0))) но проблема в том, что он возвращает значение только одной даты, а не для других дат (я думаю, потому что он ищет одно значение, а не несколько значений)

Возможно ли это с помощью комбинации функций match ( и index(?

Как я могу решить эту проблему? Я надеюсь, что вы, ребята, сможете мне помочь. Пожалуйста, найдите ссылку на тестовую таблицу здесь: https://docs.google.com/spreadsheets/d/1llvpWCF0VRQMPwDGtQZ0qBiuCIsQBqeJtr7KCq7PBvg/edit?usp=sharing

Заранее благодарю вас!

Пример тестовой таблицы распространения

Ответ №1:

Это связано с тем, что третий аргумент INDEX функции должен указывать на номер столбца из первого аргумента. В вашем случае есть только один столбец — $D$2:$D и если третий аргумент возвращает что-либо, кроме одного, результатом будет ошибка, а формула возвращает пустую строку.

Вместо этого используйте:

 =iferror(index($D$2:$D; match(1;($G3=$A$2:$A)*(H$2=$B$2:$B); 0)))
  

введите описание изображения здесь

Комментарии:

1. большое вам спасибо. У меня есть дополнительный вопрос, и я надеюсь, что вы знаете ответ. Можно ли также искать совпадение в диапазоне дат? Например, если дата находится между 30-9-2011 и 1-10-2011 с ценой 1600 евро за продукт A, он также примет эту цену за столбец K (1-10-2011). Итак, «последняя известная цена». Возможно ли это? Спасибо!

2. @SamiChouchane Да, это возможно. Изменить (H$2=$B$2:$B) на (H$2>=$B$2:$B)*(H$2<=$C$2:$C)

3. Спасибо, я пытался сделать все это в пределах (H $ 2 = $ B $ 2: $ B), но это не сработало. Это работает!