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