INDEX-MATCH с множество съвпадения в Excel (6 примера)

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

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

Първо, нека се запознаем с днешната работна тетрадка.

В листовете на днешната работна тетрадка ще намерите продукти и тяхната ценова връзка. Използвайки тази връзка, ще видим няколко примера за извличане на стойност с множество критерии .

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

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

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

INDEX-MATCH с множество съвпадения.xlsx

Основи на INDEX-MATCH

Основи на функцията INDEX

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

INDEX(array/reference, row_number, column_number,area_number)

масив или референция: Клетка или диапазон от клетки, които да бъдат разгледани

row_number: Ред в масива, от който да се върне стойност

column_number: Колоната в масива, от която да се върне стойност

area_number: Избира диапазон в референция, от който да се върне пресечната точка на row_num и номер на колона (column_num) Това е незадължително поле.

При писането на формулата можете да изберете дали да предоставите row_number или номер на колона . Ако предоставите row_number тогава не е задължително да се използва номер на колона и обратното.

Можете да проверите Поддръжка от Microsoft за по-задълбочена разбивка на синтаксиса.

Основи на функцията MATCH

На практика една от функциите, които ще откриете по-често при INDEX функция е функцията MATCH . MATCH Функцията се използва за намиране на позицията на определен елемент в диапазон от клетки. Тя връща относителната позиция на определен елемент в диапазона.

Синтаксис на MATCH функция е

MATCH(lookup_value, lookup_array, match_type)

lookup_value: Стойността, която се търси в масива lookup_array.

lookup_array: Диапазон от клетки, които се търсят.

match_type: Това е незадължително поле. Можете да въведете 3 стойности.

1 = По-малка или равна на lookup_value

0 = Точна стойност на търсене

-1 = По-голямо или равно на lookup_value

За по-задълбочено разбиране можете да разгледате Поддръжка от Microsoft сайт.

6 Подходящи примери за използване на формулата INDEX-MATCH с множество съвпадения

Сега ще приложим тези формули и теории в нашата съвкупност от данни. Решихме различни сценарии с помощта на INDEX-MATCH с множество съвпадения в Excel и съм ги включил в различни раздели за по-добро разбиране. Проследете, за да видите как можем да ги приложим в различни сценарии или ако предпочитате конкретен, можете да го намерите в таблицата по-горе.

1. INDEX-MATCH с множество критерии

За извличане на стойности с множество критерии Например, ако искате да получите цената на риза с малък размер (в нашата работна книга), трябва да зададете Име на продукта - Риза и Размер - Малък.

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

Стъпки:

  • Първо, изберете клетка G6 .
  • След това запишете следната формула.

=INDEX(D5:D15,MATCH(1,(G4=B5:B15)*(G5=C5:C15),0))

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

INDEX(D5:D15,MATCH(1,(G4=B5:B15)*(G5=C5:C15),0))

👉 (G4=B5:B15) и (G5=C5:C15) са двете условия и връщат или TRUE или FALSE в зависимост от това дали условията са верни или не. Числено те са 1 или 0. Така че умножението връща 1, когато и двете условия са верни.

👉 MATCH(1,(G4=B5:B15)*(G5=C5:C15),0) връща позицията, в която и двете условия са верни. В този случай това е 1.

👉 INDEX(D5:D15,MATCH(1,(G4=B5:B15)*(G5=C5:C15),0)) връща стойността в позицията, която е върнала предишната част на формулата.

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

Ето как можем да използваме INDEX MATCH за множество критерии или съвпадения в Excel.

Прочетете още: Как да съпоставите няколко критерия от различни масиви в Excel

2. INDEX-MATCH с множество критерии, принадлежащи на редове и колони

В този раздел ще обсъдим как да извършим търсене чрез тестване на два или повече критерия в редове и колони . Това може да изглежда малко сложно и сложно.

Внасяме малка промяна в нашия пример, като таблицата ни вече е подредена по такъв начин, че стойностите на размера (Small, Large, M, XL) представляват отделни колони.

Подобно на предишния раздел, задайте продукта и необходимия размер като стойности на критериите.

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

Стъпки:

  • Първо, изберете клетка I6 .
  • След това запишете в него следната формула.

=INDEX(C5:F7,MATCH(I4,B5:B7,0),MATCH(I5,C4:F4,0))

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

👉 MATCH(I4,B5:B7,0) връща точното съответствие на стойността на I4 в диапазона B5:B7 .

👉 По същия начин, MATCH(I5,C4:F4,0) връща точното съответствие на стойността на I5 в диапазона C4:F4 .

👉 Накрая, INDEX(C5:F7,MATCH(I4,B5:B7,0),MATCH(I5,C4:F4,0)) приема резултата от първата функция като номер на ред, а втората функция - като номер на колона и връща стойността, която се намира на позицията от диапазона C5:F7 .

  • След това натиснете Въведете .

Така можем да използваме INDEX-MATCH с множество критерии, принадлежащи на редове и колони.

Прочетете още: Индекс на Excel Съпоставяне на единични/многобройни критерии с единични/многобройни резултати

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

  • INDEX MATCH с 3 критерия в Excel (4 примера)
  • INDEX MATCH в множество листове в Excel (с алтернатива)
  • Сумиране с функциите INDEX-MATCH при множество критерии в Excel
  • Индексно съвпадение на сумата на множество редове в Excel (3 начина)
  • INDEX-MATCH формула за намиране на минимална стойност в Excel (4 подходящи начина)

3. INDEX-MATCH от несъседни колони

В този раздел ще ви покажем пример за извличане на съвпадащи стойности с помощта на две несъседни колони. функцията IFERROR за този сценарий.

Това ще бъде наборът от данни за демонстрацията.

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

Стъпки:

  • Първо, изберете клетка G6 .
  • След това запишете в него следната формула.

=IFERROR(INDEX(B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)), "Няма стойност")

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

IFERROR(INDEX(B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)), "Няма стойност")

👉 MATCH(G5,B4:B7,0) намира точното съвпадение на стойността на клетката G5 в диапазона B4:B7 .

👉 и MATCH(F6,B4:D4,0) намира точното съвпадение на F6 е обхватът B4:D4 .

👉 След това INDEX(B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)) приема първата стойност на функцията като номер на ред, а втората стойност на функцията като номер на колона и връща стойността на тази позиция в диапазона B4:D7 .

👉 Накрая, IFERROR(INDEX(B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)), "Няма стойност") връща символния низ "Няма стойност", ако при изпълнението на формулата е допусната грешка. В противен случай връща обичайната стойност.

  • След това натиснете Въведете на клавиатурата.

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

4. INDEX-MATCH от няколко таблици

За намиране на съвпадения от няколко таблици можем да използваме INDEX-MATCH Заедно с тази функция ще се нуждаем от МАЛЪК , ISNUMBER , РЕД , COUNTIF , и IFERROR функции.

В примерния лист имаме 2 магазина Продукти. Използвайки този лист, ще видим как да изпълним задачата.

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

Стъпки:

  • Първо, изберете клетка C14 .
  • Сега запишете следната формула.

=IFERROR(INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1))), INDEX($F$6:$F$10, SMALL(IF(ISNUMBER(MATCH($E$6:$E$10, $C$12, 0)), MATCH(ROW($E$6:$E$10), ROW($E$6:$E$10)), ""), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12))))

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

IFERROR(INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1))), INDEX($F$6:$F$10, SMALL(IF(ISNUMBER(MATCH($E$6:$E$10, $C$12, 0)), MATCH(ROW($E$6:$E$10), ROW($E$6:$E$10)), ""), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12))))

👉 MATCH($B$6:$B$10, $C$12, 0) намира точното съвпадение на C12 в диапазона B6:B10 .

👉 ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)) проверява дали стойността е число във функцията.

👉 IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), "") ROW($B$6:$B$10)) проверява дали предишната функция е число или не. Ако е, връща изходната стойност на MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10) което е позицията, в която масивът от номера на редове е съпоставен в първия и втория РЕД В противен случай връща празен низ.

👉 SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1)) връща ROWS($A$1:A1) -та най-малка стойност от масива.

👉 Накрая. INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1))) връща стойността на тази позиция в диапазона C6:C10 .

👉 INDEX($F$6:$F$10, SMALL(IF(ISNUMBER(MATCH($E$6:$E$10, $C$12, 0)), MATCH(ROW($E$6:$E$10), ROW($E$6:$E$10)), ""), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12))) прави същото нещо, но от втората таблица, тъй като диапазоните в тази част на формулата са очевидно различни.

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

  • След това натиснете Въведете .

  • След това изберете отново клетката и щракнете и плъзнете надолу иконата на дръжката за запълване за няколко клетки, за да намерите останалите стойности от таблиците. Можете да плъзнете допълнителни клетки, Excel ще спре стойностите, когато няма повече от тях.

Ето как можем да използваме INDEX-MATCH, като използваме критерии от няколко таблици в Excel.

Прочетете още: Множество критерии в Excel с помощта на функциите INDEX, MATCH и COUNTIF

5. INDEX-MATCH от няколко работни листа

Можем да използваме формулата INDEX-MATCH в различни листове. Тук имаме тези две таблици в два различни работни листа.

Лист за цех 1 за цех 1 и лист за цех 2 за цех 2.

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

Стъпки:

  • Първо, изберете клетка C14 от листа "Магазин 1".
  • След това запишете следната формула.

=IFERROR(INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1))), INDEX('Shop 2'!$C$6:$C$10, SMALL(IF(ISNUMBER(MATCH('Shop 2'!$B$6:$B$10, $C$12, 0)), MATCH(ROW('Shop 2'!$B$6:$B$10), ROW('Shop 2'!$B$6:$B$10)), ""), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12))))

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

IFERROR(INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), “”), ROWS($A$1:A1))), INDEX(‘Shop 2’!$C$6:$C$10, SMALL(IF(ISNUMBER(MATCH(‘Shop 2’!$B$6:$B$10, $C$12, 0)), MATCH(ROW(‘Shop 2’!$B$6:$B$10), ROW(‘Shop 2’!$B$6:$B$10)), “”), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12))))

👉 MATCH($B$6:$B$10, $C$12, 0) търси точното съвпадение на стойността на клетката C12 в диапазона B6:B10 .

👉 ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)) проверява дали изходът на предишната функция е число или не. Което определя дали има съвпадение или не. Това е просто преобразуване на стойността на числото в булева.

👉 След това IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), "") проверява за булевата стойност и връща MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10) ако стойността е true. В противен случай връща празен низ. MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10) частта е поредицата от числа, в която РЕД($B$6:$B$10) и РЕД($B$6:$B$10) Това е просто удобен трик за ограничаване на общия брой редове в избран раздел.

👉 След това, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1) търси ROWS($A$1:A1) -тата най-малка стойност от изхода на IF част.

👉 Накрая, INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1))) приема резултата от предишната функция като номер на реда и ROWS($A$1:A1) като номер на колоната и връща стойността, която се намира на тази позиция в диапазона C6:C10 .

👉 По същия начин, INDEX('Shop 2'!$C$6:$C$10, SMALL(IF(ISNUMBER(MATCH('Shop 2'!$B$6:$B$10, $C$12, 0)), MATCH(ROW('Shop 2'!$B$6:$B$10), ROW('Shop 2'!$B$6:$B$10)), "") прави същото, но от втория лист. Тъй като името на листа е "Магазин 2", ние го добавихме, преди да изберем диапазоните/клетките. Не е необходимо да ги добавяте към листа, на който правите изчисления. Затова не направихме това за "Магазин 1" в предишната част на формулата.

👉 Накрая добавихме цялата функция в IFERROR Причината е да се върне празно място, в случай че при изпълнението на формулата възникнат грешки.

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

  • След това щракнете и плъзнете надолу иконата на дръжката за запълване за някои клетки (повече от очакваното количество на изходната клетка би трябвало да е добре).

Следователно ще намерим всички съвпадения с помощта на INDEX-MATCH от няколко работни листа в Excel.

6. INDEX-MATCH за множество критерии без масив

Можем също така да използваме INDEX-MATCH за множество съвпадения или критерии без масив. Например, нека вземем следния набор от данни.

Но за да постигнем това, първо се нуждаем от помощна колона. Ще използваме функцията CONCATENATE в допълнение към въпросните функции. Следвайте тези стъпки за пълното ръководство.

Стъпки:

  • Първо, изберете клетка F5 и запишете следната формула.

=CONCATENATE(C5,",",D5,",",E5)

  • След това натиснете Въведете .

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

  • След това ще намерим INDEX-MATCH за всички 100 в оригиналния набор от данни. За тази цел изберете клетка, в която да съхраните стойността ( H5 в този случай).
  • След това въведете следната формула.

=INDEX(B5:B19,MATCH("100,100,100",F5:F19,0))

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

👉 MATCH(“100,100,100”,F5:F19,0) търси точното съвпадение на 100,100,100 в диапазона F5:F19 .

👉 Тогава INDEX(B5:B19,MATCH(“100,100,100”,F5:F19,0)) връща стойността в позицията, в която стойността съвпада.

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

По този начин можем да използваме INDEX-MATCH за множество критерии или съвпадения в Excel без масив.

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

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

Следвайте тези стъпки, за да видите как можем да постигнем това за набора от данни.

Стъпки:

  • Първо, изберете клетка F5 .
  • Второ, запишете следната формула.

=IFERROR(INDEX($C$5:$C$14,SMALL(IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1),ROW(1:1))),"")

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

👉 РЕД($B$5:$B$14) връща масив, съдържащ номерата на редовете в диапазона B5:B14 .

👉 РЕД($B$5:$B$14)-РЕД($B$5)+1 връща разликата между масива и номера на реда на клетката B5 което в този случай е просто масив от 1 до 10.

👉 IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1) проверява къде е стойността на клетката E5 е равна в диапазона B5:B14 и връща числото в масива, в което е вярно, от предишния масив.

👉 SMALL(IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1),ROW(1:1) връща най-малкото число от масива.

👉 INDEX($C$5:$C$14,SMALL(IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1),ROW(1:1))) след това връща стойността на тази позиция в диапазона C5:C14 .

👉 Накрая, IFERROR(INDEX($C$5:$C$14,SMALL(IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1),ROW(1:1))),"") гарантира, че ако дадена стойност води до грешка във формулата, тя връща празен низ.

  • Трето, натиснете Въведете .

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

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

Прочетете още: INDEX MATCH с няколко критерия в различен лист (2 начина)

Заключение

Това е всичко за днес. Опитахме се да ви покажем няколко начина за INDEX MATCH с множество съвпадения. Надяваме се, че това ще ви бъде полезно. Чувствайте се свободни да коментирате, ако нещо ви се струва трудно за разбиране. Можете да ни уведомите за други методи за изпълнение на задачата.

За повече подобни ръководства посетете Exceldemy.com .

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