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

  • Споделя Това
Hugh West

Променливите (като цена на стока, акция, лихвен процент и др.), които зависят от датите, предизвикват паника сред хората, тъй като цените им зависят от датите. INDEX MATCH диапазон от дати с множество критерии може да извлече цени от даден диапазон от дати.

Да речем, че имаме определени продукти, чиито цени са стабилни за определен период от време. И искаме да INDEX MATCH цените по зададените критерии.

В тази статия използваме няколко функции, за да INDEX MATCH диапазон от дати с множество критерии.

Изтегляне на работна книга на 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 намира стойност на дадено място в рамките на даден диапазон. В нашия случай използваме функцията MATCH функция, предизвикана от INDEX функция. MATCH функцията предава резултата си като номер на реда за записи, които отговарят на дадени критерии. Синтаксисът на INDEX функция е

INDEX(array, row_num, [col_num])

Във формулата, $E$5$E$16 се отнася до масив аргумент. Вътре в MATCH функция $B$5:$B$16=G5 , $D$5:$D$16>=H5 , и $C$5:$C$16<=H5 За да се осигури по-добра идентификация, оцветяваме съответните диапазони в правоъгълници.

Сайтът MATCH определя позицията на дадена стойност в рамките на ред, колона или таблица. Както казахме по-рано, функцията MATCH предава номера на реда за INDEX Синтаксисът на функцията MATCH функция е

MATCH (lookup_value, lookup_array, [match_type])

Сайтът MATCH частта е

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

Сайтът MATCH частта присвоява 1 като lookup_value , ($B$5:$B$16=G5)*($D$5:$D$16>=H5)*($C$5:$C$16<=H5) като lookup_array , и 0 обявява [match_type] като точно съвпадение.

Използваните MATCH възвръщаемост на формулата 3 като намери Сладолед в номера на реда 3 .

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

Сайтът INDEX MATCH комбинираната формула извлича Цени ако аргументите му отговарят на критериите. В противен случай се получава #N/A грешка, както е показано на горния екран.

Прочетете още: VBA INDEX MATCH въз основа на множество критерии в Excel (3 метода)

Метод 2: Функция XLOOKUP за работа с множество критерии

Подобно на Метод 1 , можем да използваме XLOOKUP (налична само в Excel 365 ) към INDEX MATCH диапазон от дати с множество критерии. Синтаксисът на XLOOKUP функция е

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

Стъпки: Използвайте следната формула в клетка I5 след това натиснете ВЪВЕДЕТЕ .

=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 като return_array . Също така формулата показва Не е намерен текст, в случай че записите не попадат в диапазона от дати. Посочваме зададените критерии в цветни правоъгълници, както е показано на следното изображение.

За множество Продукти, можете да приложите XLOOKUP и извлича цените при удовлетворяване на зададените критерии. Също така формулата показва Не е намерен ако зададените критерии за дата не се разширяват в рамките на зададения диапазон от дати.

Можете да добавите повече критерии, отколкото са използвани във формулата. За да се представят прости и ясни сценарии, са използвани минимални критерии.

Прочетете още: XLOOKUP с множество критерии в Excel (4 лесни начина)

Метод 3: Функции INDEX и AGGREGATE за извличане на променлива цена от диапазон от дати

Цените на някои продукти (напр. суров петрол, валута и др.) са толкова променливи, че се колебаят в продължение на седмици или дори дни. Имаме цени на определен продукт в интервал от една седмица. Искаме да намерим цената за дадените дати. За да намерим цената за даден интервал от дати, можем да използваме комбинираната INDEX AGGREGATE Синтаксисът на функцията 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))) предоставя номера на реда на INDEX функция. C$5:C$13 е масив аргумент на INDEX функция.

Отвътре на AGGREGATE формула,

(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 като ref1 води до масив от номера на редове, преобразувани в номера на индекси, в противен случай - до стойности за грешка.

РЕДОВЕ(E$8:E8) като ref2 води до номер на ред и това е лесен начин да получите номер на ред, докато прилагате формулата надолу.

Броят 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 начина)

Заключение

В тази статия демонстрираме няколко начина за INDEX MATCH диапазон от дати с множество критерии. Използваме функции като INDEX , MATCH . XLOOKUP , и AGGREGATE за формиране на формули, които индексират съвпадащи записи, отговарящи на критериите. Надявам се, че тези гореспоменати начини за аут ви помагат да се справите със ситуацията. Коментирайте, ако имате допълнителни запитвания или искате да добавите нещо.

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.