Как да използвате формулата INDEX-MATCH в Excel за генериране на множество резултати

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

Работата с голям брой данни води до получаване на множество резултати. В Excel има много удобен начин за извличане на множество резултати. В тази статия ще ви покажем как да използвате INDEX-MATCH формула в Excel, за да генерирате множество резултати.

Изтегляне на шаблона за практика

Можете да изтеглите безплатния тренировъчен шаблон на Excel оттук и да се упражнявате сами.

INDEX MATCH Multiple Results.xlsx

4 полезни начина за прилагане на функциите INDEX & MATCH заедно в Excel за извличане на множество резултати

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

1. Намиране на няколко резултата в масив с помощта на формулата INDEX MATCH в Excel

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

Можем да го получим, като стартираме INDEX-MATCH формула в нашия работен лист.

Стъпки за намиране на множество резултати в набор от масив с помощта на INDEX-MATCH са дадени по-долу.

Стъпки:

  • Изберете име от набора от данни ( B5:B11 ) и поставете името в друга клетка, за да използвате референтния номер на клетката по-късно (напр. име Villiers в Клетка G4 ).
  • В друга клетка, която искате да използвате като клетка за резултати (напр. Клетка G7 ), запишете следната формула,
=INDEX($C$5:$C$11,SMALL(IF(ISNUMBER(MATCH($B$5:$B$11,$G$4,0)),MATCH(ROW($B$5:$B$11),ROW($B$5:$B$11)),""),ROWS($A$1:A1)))

Тук,

$C$5:$C$11 = масивът за търсене на стойността за търсене

$B$5:$B$11 = масивът, в който е стойността за търсене

  • Натиснете Въведете .

Ще забележите, че резултатът за данните (напр. Villiers ), който поставяте в избраната клетка ( G4 ), ще се появи в клетката с резултата (напр. 65 в G7 ).

  • Сега плъзнете реда надолу с Дръжка за пълнене за да получите останалите резултати от същата стойност за търсене.

Тъй като този процес не е постоянен за конкретна стойност, можете да изберете всякакви данни за търсене в избраната клетка (напр. G4 ) и резултатът за тези конкретни данни ще бъде автоматично актуализиран в клетката с резултата (напр. G7 ).

За да разберете повече, вижте картинката по-долу.

Разбивка на формулата:

Нека разложим формулата, за да разберем как се получава резултатът.

  • MATCH($B$5:$B$11, $G$4, 0) става,

-> MATCH({"Flintoff"; "Ronaldo"; "Plessis"; "Villiers"; "Beckham"; "Villiers"; "Plessis"}, "Villiers", 0)

-> Изход: {#N/A; #N/A; #N/A; 1; #N/A; 1; #N/A}

Обяснение: Ако стойността за търсене намери съответствие в масива за търсене, тогава MATCH функцията връща 1 , в противен случай връща #N/A .

  • ISNUMBER(MATCH($B$5:$B$11, $G$4, 0) става,

-> ISNUMBER({#N/A; #N/A; #N/A; 1; #N/A; 1; #N/A})

-> Изход: {FALSE; FALSE; FALSE; TRUE; FALSE; TRUE; FALSE}.

Обяснение: Като функцията IF не може да обработва стойности за грешки, така че функцията ISNUMBER тук се използва за преобразуване на стойностите на масива в булеви стойности.

  • IF(ISNUMBER(MATCH($B$5:$B$11, $G$4, 0)), MATCH(ROW($B$5:$B$11), ROW($B$5:$B$11)), "") става,

-> IF({FALSE; FALSE; FALSE; TRUE; FALSE; TRUE; FALSE}, MATCH(ROW($B$5:$B$11), ROW($B$5:$B$11)), "")

става

-> IF({FALSE; FALSE; FALSE; FALSE; TRUE; FALSE; TRUE; FALSE}, {1; 2; 3; 4; 5; 6; 7}, "")

-> Изход: {""; ""; ""; 4; ""; 6}

Обяснение: Първо, IF Функцията преобразува булевите стойности в номера на редове и празни места. По-късно функцията MATCH и функцията ROW s изчислява масив с последователни числа от 1 до n, където n е последната числова идентичност на общия размер на клетъчния диапазон. $B$5:$B$11 има 7 стойности, така че масивът става {1; 2; 3; 4; 5; 6; 7} .

  • SMALL(IF(ISNUMBER(MATCH($B$5:$B$11, $G$4, 0)), MATCH(ROW($B$5:$B$11), ROW($B$5:$B$11)), ""), ROWS($A$1:A1))) става

-> SMALL({""; ""; ""; 4; ""; 6}, ROWS($A$1:A1))

-> SMALL ({""; ""; ""; 4; ""; 6}, 1)

-> Изход: 4

Обяснение: Първо, функцията SMALL определя коя стойност да се получи въз основа на номера на реда. Редове Функцията връща число, което се променя всеки път, когато клетката се копира и поставя в клетките по-долу. Първоначално тя връща 4 според нашия набор от данни. В следващата клетка по-долу, ROWS($A$1:A1) промени в ROWS($A$1:A2) и връща 6 .

  • INDEX($C$5:$C$11, SMALL(IF(ISNUMBER(MATCH($B$5:$B$11, $G$4, 0)), MATCH(ROW($B$5:$B$11), ROW($B$5:$B$11)), ""), ROWS($A$1:A1))) става

-> INDEX($C$5:$C$11, 4)

-> Изход: 65

Обяснение: Сайтът INDEX връща стойност от даден масив въз основа на номер на ред и колона. 4. стойност в масива $C$5:$C$11 е 65 , така че INDEX функцията връща 65 в клетка G7 .

Прочетете още: IF с INDEX-MATCH в Excel (3 подходящи подхода)

2. Намиране на множество резултати от името и датата на предстоящото събитие с формулата INDEX MATCH в Excel

Понякога забравяме за датата на важни събития. В този случай INDEX MATCH функциите на спасителите.

По-долу са показани примерни данни, в които искаме да разберем предстоящия рожден ден на нашите приятели.

И така, това, което направихме, беше да приложим INDEX MATCH формула, за да разберете кой е следващият рожден ден и кога е той.

И така, формулата за узнаване на името на човека или на предстоящото събитие е,

=INDEX($B$5:$B$9,MATCH(F5,$C$5:$C$9,1)+1)

А формулата за определяне на датата на предстоящото събитие е,

=INDEX($C$5:$C$9,MATCH(F5,$C$5:$C$9,1)+1)

Разбивка на формулата:

Нека да разбием формулата, за да разберем как открихме името Алекс и датата на неговия рожден ден.

  • MATCH(F5,$C$5:$C$9,1)

-> Изход: 4

Обяснение: Сайтът MATCH Функцията намира позицията на стойността за търсене ( Клетка F5 = четвъртък, ноември 11, 2021 ) в константата на масива ( $C$5:$C$9 = списък на датите ).

В този пример не искахме точно съвпадение, а искахме MATCH да връща приблизително съвпадение, затова задаваме третия аргумент на 1 (или TRUE ).

  • INDEX($B$5:$B$9,MATCH(F5,$C$5:$C$9,1)+1) става

-> INDEX($B$5:$B$9, 4) +1)

-> Изход: Alex /(Име на събитието)

Обяснение: Сайтът INDEX Функцията приема два аргумента, за да върне определена стойност в едноизмерен диапазон. $B$5:$B$9 първо е аргументът и резултатът, който получихме от изчислението в предишния раздел (MATCH(F5,$C$5:$C$9,1)) , позиция 4 , е вторият аргумент. Това означава, че търсим стойността, намираща се в позиция 4 в $B$5:$B$9 обхват.

И,

  • INDEX($C$5:$C$9,MATCH(F5,$C$5:$C$9,1)+1) става

-> INDEX($B$5:$B$9, 4) +1)

-> Изход: вторник, 7 декември 2021 г.

Обяснение: Сайтът INDEX Функцията приема два аргумента, за да върне определена стойност в едноизмерен диапазон. $C$5:$C$9 първо е аргументът и резултатът, който получихме от изчислението в предишния раздел (MATCH(F5,$C$5:$C$9,1)) , позиция 4 , е вторият аргумент. Това означава, че търсим стойността, намираща се в позиция 4 в $C$5:$C$9 обхват.

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

Прочетете още: Формула INDEX-MATCH на Excel за връщане на множество стойности хоризонтално

Подобни четива

  • INDEX MATCH множество критерии с Wildcard в Excel (пълно ръководство)
  • [Поправено!] INDEX MATCH не връща правилната стойност в Excel (5 причини)
  • Как да използвате INDEX MATCH вместо VLOOKUP в Excel (3 начина)
  • INDEX+MATCH с дублиращи се стойности в Excel (3 бързи метода)
  • Как да изберете конкретни данни в Excel (6 метода)

3. Генериране на множество резултати в отделни колони с помощта на формулата INDEX MATCH в Excel

Досега получавахме резултатите по редове. Но какво ще стане, ако искате да получите резултатите в отделни колони .

Разгледайте следната съвкупност от данни, която се състои от три вида професии, представляващи множество имена на хора.

Искахме да създадем група от хора по професия и да поставим имената по колони според професията им.

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

Нека научим как да извлечем множество резултати от съвпадения в няколко колони в Excel с комбинация от INDEX функции и други.

Стъпки:

  • Изберете професия от диапазона данни ( B5:B11 ) и поставете данните в друга клетка, за да използвате референтния номер на клетката по-късно (напр., професия Крикетър в Клетка E5 ).
  • В друга клетка, която искате да използвате като клетка за резултати (напр. Клетка F5 ), запишете следната формула,
=IFERROR(INDEX($C$5:$C$11,SMALL(IF($B$5:$B$11=$E5,ROW(C5:C11)-MIN(ROW(C5:C11))+1),COLUMNS($E$5:E5))),"")

Тук,

$C$5:$C$11 = масивът за търсене на стойността за търсене

$B$5:$B$11 = масивът, в който е стойността за търсене

  • Натиснете Въведете .

Ще забележите, че резултатът за данните (напр. Крикетерите ), който поставяте в избраната клетка ( E5 ), ще се появи в клетката с резултата (напр. Флинтоф в Клетка F5 ).

  • Сега плъзнете реда наоколо, като Дръжка за пълнене за да получите останалите резултати от същата стойност за търсене в отделни колони.

  • Отново плъзнете реда, като Дръжка за пълнене за да получите останалите резултати от различни стойности за търсене (напр. Футболист, Борци ) в отделни многобройни колони.

Разбивка на формулата:

Нека разложим формулата, за да разберем как се получава резултатът.

  • SMALL(IF($B$5:$B$11=$E5,ROW($C$5:$C$11)-MIN(ROW($C$5:$C$11))+1),COLUMNS($E$5:E5))

От предишното обсъждане вече знаем как МАЛКО, АКО и РЕД функциите работят заедно и ние използваме този трик и тук за генериране на номер на ред, съответстващ на N-то съвпадение. След като получим номера на реда, просто го предаваме на INDEX функция, която връща стойността на този ред.

-> Изход: ( както е показано на снимката по-долу )

  • INDEX($C$5:$C$11,SMALL(IF($B$5:$B$11=$E5,ROW($C$5:$C$11)-MIN(ROW($C$5:$C$11))+1),COLUMNS($E$5:E5))) -> подаване на номерата на редовете към INDEX за извличане на стойността за съответните номера на редове.

-> Изход: ( както е показано на снимката по-долу )

  • IFERROR(INDEX($C$5:$C$11,SMALL(IF($B$5:$B$11=$E5,ROW(C5:C11)-MIN(ROW(C5:C11))+1),COLUMNS($E$5:E5))),"") -> забележете, че когато колоните връщат стойност, която не съществува, се изхвърля #NUM За да предотвратим грешката, обвиваме цялата формула с функцията IFERROR за улавяне на грешки и задаване на празен низ ("") като връщане.

-> Изход: ( както е показано на снимката по-долу )

Прочетете още: INDEX MATCH на Excel за връщане на няколко стойности в една клетка

4. Извличане на множество резултати в отделни редове с помощта на функциите INDEX MATCH в Excel

Ако се чудите как да извлечете няколко резултата в няколко реда по същия начин, както направихме в предишния раздел, формулата е следната,

=IFERROR(INDEX($C$5:$C$11,SMALL(IF($B$5:$B$11=E$4,ROW(C5:C11)-MIN(ROW(C5:C11))+1),ROWS($E$5:E5))),"")

Всички останали детайли, като стъпки и разбивка на формулата, са същите като в раздел 3.

Основни точки, които трябва да имате предвид

  • Тъй като обхватът на масива на таблицата с данни за търсене на стойността е фиксиран, не забравяйте да поставите долар ($) пред референтния номер на клетката от таблицата на масива.
  • Когато работите със стойности на масиви, не забравяйте да натиснете Ctrl + Shift + Enter на клавиатурата, докато извличате резултатите. Натискането само на Въведете ще работи само когато използвате Microsoft 365 .
  • След натискане на Ctrl + Shift + Enter , ще забележите, че в лентата с формули е заградена формулата в къдрави скоби {} , декларирайки го като формула за масив. Не въвеждайте тези скоби {} сами, Excel автоматично прави това за вас.

Заключение

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

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