Как использовать INDEX MATCH с несколькими критериями для диапазона дат

  • Поделись Этим
Hugh West

Переменные (такие как цена товара, акции, процентная ставка и т.д.), зависящие от даты, вызывают у обывателей панику, поскольку их цены зависят от даты. ИНДЕКС МАТЧА Множественные критерии диапазона дат позволяют извлекать цены из заданного диапазона дат.

Допустим, у нас есть определенные товары, цены на которые стабильны в течение определенного периода времени. И мы хотим ИНДЕКС МАТЧА цены по заданным критериям.

В этой статье мы используем несколько функций для ИНДЕКС МАТЧА диапазон дат по нескольким критериям.

Скачать рабочую книгу Excel

Диапазон дат по нескольким критериям.xlsx

3 простых способа использования INDEX MATCH для нескольких критериев диапазона дат

Метод 1: Использование функций INDEX MATCH для нескольких критериев диапазона дат

Мы хотим извлечь цену на определенный продукт на определенную дату. Предположим, мы хотим увидеть цену на Мороженое на сайте 02-10-22 ( месяц-день-год ). Если заданная дата попадает между предложенными периодами времени, мы получим цену, извлеченную в любой пустой ячейке.

Шаги: Вставьте следующую формулу в любую пустую ячейку (например, I5 ). В качестве формулы в формуле массива нажмите кнопку CTRL+SHIFT+ENTER чтобы применить его. Мгновенно формула возвращает значение Продукт цена, если она упадет в данный период времени (т.е, Дата диапазон), как показано ниже.

=INDEX($E$5:$E$16,MATCH(1,(($B$5:$B$16=G5)*($D$5:$D$16>=H5)*($C$5:$C$16<=H5)),0))

🔄 Формула вскрытия:

Excel ИНДЕКС функция находит значение заданного места в заданном диапазоне. В нашем случае мы используем МАТЧ функция, индуцированная с ИНДЕКС функция. МАТЧ функция передает свой результат как номер строки для записей, удовлетворяющих заданным критериям. Синтаксис функции ИНДЕКС функция

INDEX(array, row_num, [col_num])

В формуле, $E$5$E$16 относится к массив аргумент. Внутри МАТЧ функция $B$5:$B$16=G5 , $D$5:$D$16>=H5 и $C$5:$C$16<=H5 объявляют критерии. Для лучшей идентификации мы выделяем соответствующие диапазоны прямоугольниками.

Сайт МАТЧ функция определяет местоположение заданного значения в строке, столбце или таблице. Как мы уже говорили ранее, функция МАТЧ часть передает номер строки для ИНДЕКС синтаксис функции МАТЧ функция

MATCH (lookup_value, lookup_array, [match_type])

Сайт МАТЧ часть

=MATCH(1,(($B$5:$B$16=G5)*($D$5:$D$16>=H5)*($C$5:$C$16<=H5)),0)

Сайт МАТЧ часть присваивает 1 в качестве поиск_значения , ($B$5:$B$16=G5)*($D$5:$D$16>=H5)*($C$5:$C$16<=H5) в качестве массив поиска и 0 заявляет [match_type] как точное совпадение.

Используемый МАТЧ формула возврата 3 когда находит Мороженое в номере строки 3 .

В случаях, когда у нас есть несколько продуктов, нужно извлечь их цену из набора данных. Это выглядит примерно так, как показано на следующем рисунке,

Сайт ИНДЕКС МАТЧА комбинированная формула собирает Цены если его аргументы удовлетворяют критериям. В противном случае возникает #N/A ошибка, как показано на скриншоте выше.

Читать далее: VBA ИНДЕКСНОЕ СРАВНЕНИЕ на основе нескольких критериев в Excel (3 метода)

Метод 2: Функция XLOOKUP для работы с несколькими критериями

Аналогично Метод 1 мы можем использовать XLOOKUP функция (доступна только в Excel 365 ) к ИНДЕКС МАТЧА диапазон дат по нескольким критериям. Синтаксис параметра XLOOKUP функция

XLOOKUP (lookup, lookup_array, return_array, [not_found], [match_mode], [search_mode])

Шаги: Используйте приведенную ниже формулу в ячейке I5 затем Удар ENTER .

=XLOOKUP(1,(H5>=$C$5:$C$16)*(H5<=$D$5:$D$16)*($B$5:$B$16=G5),$E$5:$E$16,"NotFound")

Сайт XLOOKUP формула возвращает уважаемую цену, которая удовлетворяет заданным критериям (т.е, Продукт и Дата ), как показано на рисунке выше.

🔄 Формула вскрытия:

Сайт XLOOKUP назначает 1 как его поиск аргумент, (H5>=$C$5:$C$16)*(H5<=$D$5:$D$16)*($B$5:$B$16=G5) в качестве lookup_array, $E$5:$E$16 в качестве массив возврата . Кроме того, формула отображает Не найдено текст в случае, если записи не попадают в диапазон дат. Мы обозначаем назначенные критерии цветными прямоугольниками, как показано на следующем рисунке.

Для нескольких Продукты, вы можете применить XLOOKUP формулу и извлекать цены, удовлетворяющие заданным критериям. Кроме того, формула отображает Не найдено если заданные критерии даты не расширяются в заданном диапазоне дат.

Вы можете добавить больше критериев, чем использовано в формуле. Для того чтобы дать простые и понятные сценарии, были использованы минимальные критерии.

Читать далее: XLOOKUP с несколькими критериями в Excel (4 простых способа)

Метод 3: Функции INDEX и AGGREGATE для извлечения волатильной цены из диапазона дат

Цены некоторых товаров (например, сырой нефти, валюты и т.д.) настолько изменчивы, что колеблются в течение недель или даже дней. У нас есть цены на определенный товар в недельном интервале. Мы хотим найти цену для заданных дат. Чтобы найти цену для заданного диапазона дат, мы можем использовать комбинированную формулу ИНДЕКС СОГЛАСИЕ синтаксис функции СОГЛАСИЕ функция

AGGREGATE (function_num, options, ref1, ref2)

Шаги: Введите следующую формулу в любую пустую ячейку (например, E8 ).

=IFERROR(INDEX(C$5:C$13,AGGREGATE(15,6, ROW(B$5:B$13)/ ((B$5:B$13>=F$4)*(B$5:B$13<=F$5))-ROW(B$5)+1,ROWS(E$8:E8))),"")

Сайт 1-й цена определенного товара дата 02-15-22 на 02-25-22 это $0.84 Может быть 2-й или 3-й доступная цена, но вначале мы придерживаемся 1-й один.

🔄 Формула вскрытия:

В формуле, =IFERROR(INDEX(C$5:C$13,AGGREGATE(15,6, ROW(B$5:B$13)/ ((B$5:B$13>=F$4)*(B$5:B$13<=F$5))-ROW(B$5)+1,ROWS(E$8:E8))),"") ;

AGGREGATE(15,6,ROW(B$5:B$13)/((B$5:B$13>=F$4)*(B$5:B$13<=F$5))-ROW(B$5)+1,ROWS(E$8:E8))) часть предоставляет номер строки для ИНДЕКС функция. C$5:C$13 это массив аргумент ИНДЕКС функция.

Внутри СОГЛАСИЕ формула,

(B$5:B$13>=F$4)*(B$5:B$13<=F$5) возвращает 1 или 0 в зависимости от того, попадают ли даты набора данных в диапазон или нет.

ROW(B$5:B$13)/((B$5:B$13>=F$4)*(B$5:B$13<=F$5)) возвращает массив номеров строк в зависимости от удовлетворения критериям даты. В противном случае выдает значения ошибки.

ROW(B$5:B$13)/((B$5:B$13>=F$4)*(B$5:B$13<=F$5))-ROW(B$5)+1 в качестве ссылка1 приводит к массиву номеров строк, преобразованных в номера индексов, иначе в ошибочные значения.

ROWS(E$8:E8) в качестве ссылка2 приводит к номеру строки, и это простой способ получить номер строки по мере применения формулы вниз.

Количество 15 = function_num (т.е, МАЛЕНЬКИЙ ), 6 = варианты (т.е, игнорировать значения ошибок ). Вы можете выбрать function_num с сайта 19 различные функции и Опции с сайта 8 различные варианты.

Наконец-то, AGGREGATE(15,6,ROW(B$5:B$13)/((B$5:B$13>=F$4)*(B$5:B$13<=F$5))-ROW(B$5)+1,ROWS(E$8:E8))) передаёт n-й наименьший индексный номер строки, удовлетворяющей заданным критериям.

В случае возникновения какой-либо ошибки, IFERROR(INDEX...),"") игнорирует все типы ошибок и преобразует их в пробелы.

➤ Перетащите Наполнительная рукоятка чтобы получить другие совпадающие цены в диапазоне дат критерия. И IFERROR функция приводит к появлению пустых ячеек, если формула встречает какие-либо ошибки.

Читать далее: VLOOKUP с несколькими критериями, включая диапазон дат в Excel (2 способа)

Заключение

В этой статье мы продемонстрируем несколько способов ИНДЕКС МАТЧА диапазон дат по нескольким критериям. Мы используем такие функции, как ИНДЕКС , МАТЧ . XLOOKUP и СОГЛАСИЕ для формирования формул, которые индексируют записи, соответствующие критериям. Надеюсь, вышеупомянутые способы помогут вам справиться с ситуацией. Пишите, если у вас есть вопросы или есть что добавить.

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.