Cuprins
Excel oferă diferite funcții și modalități de a obține valori potrivite. În funcție de situație, utilizatorii își pot alege preferințele. Acest tutorial vă va arăta cum să obțineți rezultate folosind INDEX MATCH cu mai multe corespondențe în Excel.
În primul rând, haideți să cunoaștem manualul de lucru de astăzi.
În foile din caietul de lucru de astăzi, veți găsi produse și relația dintre ele și prețul lor. Folosind această relație vom vedea câteva exemple pentru a prelua valoarea cu criterii multiple .
În lumea reală, este posibil să aveți nevoie să gestionați seturi de date cu mai multe relații și să setați criterii diferite pentru a produce rezultate. Pentru a păstra simplitatea, deocamdată, vom prelua prețul unui produs care corespunde numelui și dimensiunii.
Descărcați caietul de practică
Puteți descărca caietul de lucru utilizat pentru demonstrație cu toate formulele de la link-ul de mai jos.
INDEX-MATCH cu potrivire multiplă.xlsx
Noțiuni de bază ale INDEX-MATCH
Noțiuni de bază ale funcției INDEX
Funcția INDEX returnează o valoare sau referința la o valoare din cadrul unui tabel sau al unui interval. Poate fi utilizată pentru a prelua valori individuale sau orice rânduri și coloane întregi. Să vedem sintaxa funcției INDEX.
INDEX(array/referință, număr_rând, număr_coloană, număr_colonă, număr_zonă)
array sau referință: O celulă sau un interval de celule pe care să le analizați
număr_ rând: Un rând din matrice din care se returnează o valoare
column_number: Coloana din matrice din care se returnează o valoare
numărul_zonei: Selectează un interval de referință din care să se returneze intersecția dintre număr_ rând și număr_coloană Acesta este un câmp opțional.
În timpul scrierii formulei, puteți alege dacă doriți să furnizați număr_ rând sau număr_coloană . dacă furnizați număr_ rând atunci este opțional să se folosească număr_coloană și viceversa.
Puteți verifica Suport Microsoft pentru o detaliere mai amănunțită a sintaxei.
Noțiuni de bază ale funcției MATCH
Practic, o funcție pe care o veți regăsi mai des la INDEX funcția este funcția MATCH . MATCH este utilizată pentru a localiza poziția unui anumit element într-un interval de celule. Aceasta returnează poziția relativă a unui anumit element din interval.
Sintaxa de MATCH funcția este
MATCH(lookup_value, lookup_array, match_type)
lookup_value: Valoarea care trebuie căutată în lookup_array.
lookup_array: Un interval de celule care fac obiectul căutării.
match_type: Acesta este un câmp opțional. Puteți introduce 3 valori.
1 = Mai mică sau egală cu valoarea_de_consultare
0 = Exact lookup_value
-1 = Mai mare sau egală cu valoarea_de_consultare
Pentru o înțelegere mai profundă, puteți consulta pagina web a Suport Microsoft site.
6 Exemple adecvate de utilizare a formulei INDEX-MATCH cu potriviri multiple
Acum vom pune aceste formule și teorii în acțiune în setul nostru de date. Am rezolvat diferite scenarii folosind INDEX-MATCH cu mai multe potriviri în Excel și le-am inclus în diferite secțiuni pentru o mai bună înțelegere. Urmăriți-ne pentru a vedea cum le putem aplica în diferite scenarii sau, dacă preferați una anume, o puteți găsi în tabelul de mai sus.
1. INDEX-MATCH cu criterii multiple
Pentru a prelua valori cu criterii multiple De exemplu, dacă doriți să obțineți prețul unei cămăși de mărime mică (în registrul nostru de lucru), trebuie să setați numele produsului - Cămașă și mărimea - Mică.
Acum urmați acești pași pentru a vedea cum putem folosi formula pentru a găsi indexul de potrivire cu aceste potriviri multiple în Excel.
Pași:
- Mai întâi, selectați celula G6 .
- Apoi scrieți următoarea formulă.
=INDEX(D5:D15,MATCH(1,(G4=B5:B15)*(G5=C5:C15),0))
🔎 Descompunerea formulei
INDEX(D5:D15,MATCH(1,(G4=B5:B15)*(G5=C5:C15),0))
👉
(G4=B5:B15) și (G5=C5:C15) sunt ambele condiții și returnează fie ADEVĂRAT sau FALSE în funcție de faptul dacă condițiile sunt adevărate sau nu. Din punct de vedere numeric, acestea sunt 1 sau 0. Astfel, înmulțirea returnează 1 în cazul în care ambele sunt adevărate.
👉
MATCH(1,(G4=B5:B15)*(G5=C5:C15),0) returnează poziția în care ambele condiții sunt adevărate. În acest caz, este 1.
👉
INDEX(D5:D15,MATCH(1,(G4=B5:B15)*(G5=C5:C15),0)) returnează valoarea în poziția în care a fost returnată partea anterioară a formulei.
- În cele din urmă, apăsați Introduceți .
Iată cum putem utiliza INDEX MATCH pentru mai multe criterii sau potriviri în Excel.
Citește mai mult: Cum să potriviți mai multe criterii din diferite array-uri în Excel
2. INDEX-MATCH cu criterii multiple aparține rândurilor și coloanelor
În această secțiune, vom discuta despre cum să efectuăm o căutare prin testarea a două sau mai multe criterii în rânduri și coloane Poate părea un pic complicat și complex.
Aducem o mică schimbare în exemplul nostru, tabelul nostru este acum aranjat în așa fel încât valorile mărimii (Small, Large, M, XL) reprezintă coloane individuale.
La fel ca în secțiunea anterioară, setați produsul și dimensiunea necesară ca valori de criteriu.
Urmați acești pași pentru a vedea cum putem folosi formula pentru această secțiune.
Pași:
- Mai întâi, selectați celula I6 .
- Apoi scrieți în el următoarea formulă.
=INDEX(C5:F7,MATCH(I4,B5:B7,0),MATCH(I5,C4:F4,0))
🔎 Descompunerea formulei
👉
MATCH(I4,B5:B7,0) returnează corespondența exactă a valorii din I4 în intervalul B5:B7 .
👉
În mod similar, MATCH(I5,C4:F4,0) returnează corespondența exactă a valorii din I5 în intervalul C4:F4 .
👉
În cele din urmă, INDEX(C5:F7,MATCH(I4,B5:B7,0),MATCH(I5,C4:F4,0)) ia rezultatul primei funcții ca număr de rând și al celei de-a doua funcții ca număr de coloană și returnează valoarea care se află în poziția din intervalul C5:F7 .
- După aceea, apăsați Introduceți .
Astfel, putem folosi INDEX-MATCH cu mai multe criterii aparținând rândurilor și coloanelor.
Citește mai mult: Excel Index Potriviți criterii unice/multiple cu rezultate unice/multiple
Lecturi similare
- INDEX MATCH cu 3 criterii în Excel (4 exemple)
- INDEX MATCH pe mai multe foi în Excel (cu alternativă)
- Suma cu funcțiile INDEX-MATCH sub criterii multiple în Excel
- Indexul de potrivire a sumei mai multor rânduri în Excel (3 moduri)
- Formula INDEX-MATCH pentru a găsi valoarea minimă în Excel (4 moduri adecvate)
3. INDEX-MATCH din coloane neadiacente
În această secțiune, vă vom arăta un exemplu despre cum să extragem valori corespunzătoare folosind două coloane neadiacente. În plus, avem nevoie de funcția IFERROR pentru acest scenariu.
Acesta va fi setul de date pentru demonstrație.
Urmăriți acești pași pentru a vedea cum putem folosi INDEX-MATCH pentru coloanele neadiacente (produs și cantitate) din acest set de date.
Pași:
- Mai întâi, selectați celula G6 .
- Apoi scrieți în el următoarea formulă.
=IFERROR(INDEX(B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)), "Nici o valoare")
🔎 Descompunerea formulei
IFERROR(INDEX(B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)), "Nici o valoare")
👉
MATCH(G5,B4:B7,0) găsește corespondența exactă a valorii celulei G5 în intervalul B4:B7 .
👉
și MATCH(F6,B4:D4,0) găsește corespondența exactă a F6 este intervalul B4:D4 .
👉
Apoi INDEX(B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)) ia prima valoare a funcției ca număr de rând și a doua valoare a funcției ca număr de coloană și returnează valoarea din poziția respectivă în intervalul B4:D7 .
👉
În cele din urmă, IFERROR(INDEX(B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)), "Nici o valoare") returnează șirul de caractere "No Value" dacă există o eroare în timpul executării formulei. În caz contrar, returnează valoarea obișnuită.
- Apoi, apăsați Introduceți pe tastatură.
Prin urmare, putem găsi potrivirea dorită folosind INDEX-MATCH din coloane neadiacente pentru criteriile selectate, chiar și pentru cele multiple, în Excel.
4. INDEX-MATCH din mai multe tabele
Pentru a găsi corespondențe din mai multe tabele putem folosi funcția INDEX-MATCH Alături de această funcție, vom avea nevoie de formula MICI , ISNUMBER , ROW , COUNTIF , și IFERROR funcții.
În foaia de exemplu, avem 2 produse ale magazinului. Folosind această foaie, vom vedea cum se face această sarcină.
Urmați acești pași pentru a vedea cum putem utiliza combinația acestor funcții împreună cu INDEX-MATCH cu mai multe corespondențe din acest set de tabele în Excel.
Pași:
- Mai întâi, selectați celula C14 .
- Acum scrieți următoarea formulă.
=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))))
🔎 Descompunerea formulei
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) găsește corespondența exactă a C12 în intervalul B6:B10 .
👉
ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)) verifică dacă valoarea este un număr în funcție.
👉
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)) verifică dacă funcția precedentă este un număr sau nu. Dacă este, atunci returnează valoarea de ieșire a funcției MATCH(RÂND($B$6:$B$10), RÂND($B$6:$B$10)) care este poziția în care se potrivesc numerele de rânduri din prima și a doua serie de numere. ROW În caz contrar, se returnează un șir de caractere gol.
👉
SMALL(IF(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)) returnează ROWS($A$1:A1) -cea mai mică valoare din matrice.
👉
În cele din urmă. 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))) returnează valoarea din poziția respectivă în intervalul 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)))) face același lucru, dar din al doilea tabel, deoarece intervalele sunt în mod clar diferite în această parte a formulei.
👉
În cele din urmă, întreaga funcție ia întreaga funcție și returnează INDEX-MATCH combinații. Impactul IFERROR este că, dacă ar exista erori în timpul executării formulei, aceasta nu ar returna nicio valoare.
- Apoi apăsați Introduceți .
- După aceea, selectați din nou celula și faceți clic și trageți în jos pictograma mânerului de umplere pentru mai multe celule pentru a găsi restul valorilor din tabele. Puteți trage celule suplimentare, Excel va opri valorile atunci când nu mai există.
Iată cum putem utiliza INDEX-MATCH folosind criterii din mai multe tabele în Excel.
Citește mai mult: Criterii multiple în Excel utilizând funcțiile INDEX, MATCH și COUNTIF
5. INDEX-MATCH din mai multe foi de calcul
Putem utiliza formula INDEX-MATCH pe foi diferite. Aici avem aceste două tabele pe două foi de calcul diferite.
Fișa Atelier 1 pentru atelierul 1 și fișa Atelier 2 pentru atelierul 2.
Pentru a obține rezultatul, tot ce trebuie să facem este să furnizăm numele foii înaintea referinței celulei. Urmați acești pași pentru mai multe detalii.
Pași:
- Mai întâi, selectați celula C14 din foaia "Magazin 1".
- Apoi scrieți următoarea formulă.
=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))))
🔎 Descompunerea formulei
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) caută o potrivire exactă a valorii celulei C12 în intervalul B6:B10 .
👉
ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)) verifică dacă rezultatul funcției anterioare este un număr sau nu, ceea ce determină dacă a existat o potrivire sau nu. Aceasta este doar pentru a converti valoarea numărului într-un boolean.
👉
Apoi IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), "") verifică valoarea booleană și returnează MATCH(RÂND($B$6:$B$10), RÂND($B$6:$B$10)) dacă valoarea este adevărată, în caz contrar se returnează un șir de caractere gol. MATCH(RÂND($B$6:$B$10), RÂND($B$6:$B$10)) porțiunea este seria de numere în care RÂND($B$6:$B$10) și RÂND($B$6:$B$10) Acesta este doar un truc la îndemână pentru a limita numărul total de rânduri dintr-o secțiune selectată.
👉
După aceea, SMALL(IF(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) caută ROWS($A$1:A1) -cea mai mică valoare de la ieșirea din IF porțiune.
👉
În cele din urmă, 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))) ia ieșirea funcției anterioare ca număr de rând și ROWS($A$1:A1) ca număr de coloană și returnează valoarea care se află în această poziție în intervalul C6:C10 .
👉
În mod similar, INDEX('Magazin 2'!$C$6:$C$10, SMALL(IF(ISNUMBER(MATCH('Magazin 2'!$B$6:$B$10, $C$12, 0)), MATCH(ROW('Magazin 2'!$B$6:$B$10), ROW('Magazin 2'!$B$6:$B$10)), "") face același lucru, dar din a doua foaie. Deoarece numele foii este "Shop 2", am adăugat-o înainte de a selecta intervalele/celulele. Nu este necesar să le adăugați la foaia pe care faceți calculele. Deci nu am făcut acest lucru pentru "Shop 1" în partea anterioară a formulei.
👉
În cele din urmă, am adăugat întreaga funcție într-un fișier IFERROR Motivul este acela de a returna un spațiu gol în cazul în care apar erori în timpul executării formulei.
- În cele din urmă, apăsați Introduceți .
- Selectați din nou celula, apoi faceți clic și trageți în jos pictograma mânerului de umplere pentru unele celule (mai mult decât cantitatea estimată a celulei de ieșire ar trebui să fie în regulă).
Prin urmare, vom găsi toate corespondențele folosind INDEX-MATCH din mai multe foi de calcul din Excel.
6. INDEX-MATCH pentru criterii multiple fără matrice
De asemenea, putem utiliza INDEX-MATCH pentru mai multe potriviri sau criterii fără nicio matrice. De exemplu, să luăm următorul set de date.
Dar avem nevoie mai întâi de o coloană de ajutor pentru a realiza acest lucru. Vom folosi funcția CONCATENATE în plus față de funcțiile în cauză. Urmați acești pași pentru ghidul complet.
Pași:
- Mai întâi, selectați celula F5 și scrieți următoarea formulă.
=CONCATENATE(C5,",",",D5,",",",E5)
- Apoi apăsați Introduceți .
- Acum selectați din nou celula și faceți clic și trageți pictograma mânerului de umplere până la capătul coloanei pentru a reproduce formula pentru restul celulelor.
- În continuare, vom găsi INDEX-MATCH pentru toate cele 100 din setul de date original. Pentru aceasta, selectați o celulă pentru a stoca valoarea ( H5 în acest caz).
- Apoi introduceți următoarea formulă.
=INDEX(B5:B19,MATCH("100,100,100",F5:F19,0))
🔎 Descompunerea formulei
👉 MATCH(“100,100,100”,F5:F19,0) caută corespondența exactă a 100,100,100 în intervalul F5:F19 .
👉 Atunci INDEX(B5:B19,MATCH(“100,100,100”,F5:F19,0)) returnează valoarea în poziția în care se potrivește valoarea.
- În cele din urmă, apăsați Introduceți .
În acest fel, putem utiliza INDEX-MATCH pentru mai multe criterii sau potriviri în Excel, fără nicio matrice.
Cum să returnați mai multe valori pe verticală utilizând formula INDEX-MATCH în Excel
În cazul în care doriți să returnați mai multe valori pe verticală utilizând INDEX-MATCH, să analizăm următorul exemplu.
Urmați acești pași pentru a vedea cum putem realiza acest lucru pentru setul de date.
Pași:
- Mai întâi, selectați celula F5 .
- În al doilea rând, scrieți următoarea formulă.
=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))),"")
🔎 Descompunerea formulei
👉
RÂND($B$5:$B$14) returnează o matrice care conține numerele de rânduri ale intervalului B5:B14 .
👉
ROW($B$5:$B$14)-ROW($B$5)+1 returnează diferența dintre matrice și numărul de rând al celulei B5 care în acest caz este doar o matrice de la 1 la 10.
👉
IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1) verifică unde se află valoarea celulei E5 este egală în intervalul B5:B14 și returnează numărul din tabloul în care este adevărat din tabloul anterior.
👉
SMALL(IF(IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1),ROW(1:1) returnează cel mai mic număr din matrice.
👉
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)))) apoi returnează valoarea din poziția respectivă în intervalul C5:C14 .
👉
În cele din urmă, 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))),"") se asigură că, în cazul în care o valoare duce la o eroare în formulă, se returnează un șir gol.
- În al treilea rând, apăsați Introduceți .
- Apoi selectați din nou celula. În cele din urmă, faceți clic și trageți în jos pictograma mânerului de umplere pentru câteva celule pentru a obține toate valorile.
În acest fel, putem returna mai multe valori pe verticală folosind INDEX-MATCH în Excel.
Citește mai mult: INDEX MATCH cu criterii multiple într-o foaie diferită (2 moduri)
Concluzie
Asta e tot pentru astăzi. Am încercat să vă arătăm câteva moduri de a INDEX MATCH cu mai multe potriviri. Sperăm că veți găsi acest lucru util. Nu ezitați să comentați dacă ceva pare dificil de înțeles. Sunteți bineveniți să ne comunicați orice alte metode pentru această sarcină.
Pentru mai multe ghiduri ca acesta, vizitați Exceldemy.com .