Cuprins
Una dintre cele mai uimitoare și mai utilizate funcții ale Excel este funcția Funcția VLOOKUP Până acum, am învățat să extragem o singură potrivire dintr-un interval de celule folosind această funcție. S-ar putea să întâlniți frecvent scenarii în care aveți nevoie să obțineți toate valorile corespunzătoare pentru un identificator unic. În acest articol, vom demonstra cum puteți extrage mai multe potriviri dintr-un interval de celule folosind funcția Funcția VLOOKUP în Excel.
Descărcați caietul de practică
Puteți descărca următorul registru de lucru Excel pentru o mai bună înțelegere și pentru a vă exersa.
Efectuarea Vlookup cu mai multe corespondențe.xlsx2 Pași pentru Vlookup cu mai multe potriviri în Excel
Aici avem Înregistrări de carte ale librăriei Martin Acest set de date conține Tip carte , Numele cărții , și Autor a unor cărți sub coloane B , C , și D în mod corespunzător.
Obiectivul nostru de astăzi este de a extrage toate meciurile din fiecare tip de carte, utilizând Funcția VLOOKUP Vom executa acest lucru în doi pași, așa că să le explorăm pe rând.
Aici, am folosit Microsoft Excel 365 puteți utiliza orice altă versiune, în funcție de preferințele dumneavoastră.
📌 Pasul 01: Creați un nume unic pentru fiecare valoare de căutare
- Chiar la început, introduceți o nouă coloană cu titlul Coloana Helper la stânga la coloana de căutare Tip carte și introduceți această formulă în celula B5 .
=C5&COUNTIF(C5:$C$25,C5)
Repartizarea formulei - COUNTIF(C5:$C$25,C5) returnează numărul total de celule din interval C5:C25 ( Tip carte ) care conțin valoarea din celula C5 ( Roman ). Funcția COUNTIF pentru detalii.
- În cuvinte simple, câte romane există. Este 7 .
- C5&COUNTIF(C5:$C$25,C5) concatenează valoarea din celula C5 ( Roman ) cu acesta.
- Deci, se întoarce Roman7 .
Atunci când trageți de Mâner de umplere instrument, C5 se incrementează unul câte unul, ca C5 , C6 , C7 ... dar... C25 rămâne constantă. Prin urmare, pentru fiecare Tip carte , cele anterioare sunt excluse și se generează un nou nume.
De exemplu, în cazul romanelor, Roman1 la Roman7 sunt generate și similar pentru Poezie și alte tipuri de cărți.
- Apoi, apăsați ENTER .
- După aceea, aduceți cursorul în colțul din dreapta-jos al celulei B5 și va arăta ca un plus (+) De fapt, este vorba despre Mâner de umplere instrument.
- Acum, faceți dublu clic pe el.
Aceasta copiază această formulă în restul celulelor. Veți găsi toate valorile de căutare furnizate cu un nume unic, cum ar fi Roman1 , Roman2...., Poezie1 , Poezie2... , etc.
📌 Pasul 02: Utilizați funcția VLOOKUP
- Mai întâi de toate, creați o nouă coloană cu Antet de coloană ca valoare de căutare.
- În al doilea rând, introduceți următoarea formulă în celulă G5 care este prima celulă a acestei coloane.
=VLOOKUP(G$4&ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4))),$B$5:$E$25,3,FALSE)
Repartizarea formulei - COUNTIF($C$5:$C$25,G$4) spune câte celule din intervalul C5:C25 ( Tip carte ) conțin valoarea din celula G4 ( Roman ).
- În cuvinte simple, câte romane există în total. Este 7 .
Am folosit referința absolută a celulei din intervalul C5:C25 ( $C$5:$C$25 ), deoarece dorim ca aceasta să rămână neschimbată dacă copiem formula în orice celulă.
- INDIRECT("A"&COUNTIF($C$5:$C$25,G$4)) devine INDIRECT("A"&7) și returnează referința celulei A7 . vezi Funcția INDIRECT pentru detalii.
- ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4)))) devine acum ROW(A1:A7) .vezi Funcția ROW pentru detalii.
- Acesta returnează un array din 1 la 7 ca {1, 2, 3, 4, 5, 6, 7} .
Am folosit $A$1 pentru că nu dorim să se schimbe dacă copiem formula într-o altă celulă.
- G$4&ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4)))) concatenează acum valoarea din celula G4 ( Roman ) cu matricea returnată de către Funcția ROW și returnează o altă matrice.
- Deci, se întoarce {Novel1, Novel2, ..., Novel7} .
- VLOOKUP(G$4&ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4))),$B$5:$E$25,3,FALSE) devine VLOOKUP({Novel1, Novel2, ..., Novel7},$B$5:$E$25,3,FALSE) .
Se caută fiecare valoare din matrice {Novel1, Novel2, ... Novel7} în coloana de căutare B .
Apoi se returnează numele corespunzător romanului din lista 3. (ca și coloana col_index_num este 3 ). Astfel, obținem o listă cu toate romanele.
- Ca de obicei, apăsați butonul ENTER cheie.
Notă: Este o formulă de tip array, așa că nu uitați să apăsați Ctrl + Shift + Enter cu excepția cazului în care sunteți în Excel 365 .
Și pentru ceilalți Tipuri de cărți ,
- La început, introduceți numele lor unul lângă altul ca Titluri de coloană și glisați butonul Mâner de umplere .
Citește mai mult: VLOOKUP INDIRECT în Excel
Lecturi similare
- VLOOKUP nu funcționează (8 Motive & Soluții)
- Excel LOOKUP vs VLOOKUP: Cu 3 exemple
- De ce VLOOKUP returnează #N/A atunci când există o potrivire? (5 cauze și soluții)
- Utilizați VLOOKUP cu criterii multiple în Excel (6 metode + alternative)
- Excel VLOOKUP pentru a găsi ultima valoare din coloană (cu alternative)
Modalități alternative pentru Vlookup cu mai multe potriviri în Excel
Dacă metoda precedentă vi se pare periculoasă, nu vă faceți griji. Există mai multe opțiuni disponibile.
1. Utilizarea funcției FILTER
Aceasta este, într-adevăr, cea mai simplă metodă. Aici vom folosi doar Funcția FILTRUL Urmați acești pași simpli.
📌 Pași:
- În primul rând, scrieți Tip carte ca Antet de coloană și introduceți următoarea formulă în celula F5 .
=FILTER($C$5:$C$25,$B$5:$B$25=F$4)
Repartizarea formulei Aici,
- $C$5:$C$25 ( Numele cărții ) este lookup_array Căutăm numele cărților. Folosește-l pe al tău.
- $B$5:$B$25 ( Tip carte ) este matching_array Vrem să potrivim tipurile de cărți. Folosiți-o pe cea pe care o aveți în mod corespunzător.
- F4 ( Roman ) este valoare_corespunzătoare Vrem să se potrivească cu romanele. Folosiți-l în consecință.
- Apoi, apăsați ENTER .
Acum, dacă doriți ca Nume de cărți a tuturor Tipuri de cărți ,
- Inițial, inserați numele lor ca Titluri de coloană unul lângă altul, apoi trageți Mâner de umplere instrument.
2. Aplicarea combinației de funcții INDEX, SMALL și ROWS (compatibil cu versiunile mai vechi ale Excel)
The Funcția FILTRUL este disponibil numai în Office 365 Așadar, dacă folosiți o versiune mai veche de Excel, nu vă faceți griji. Avem o altă soluție pentru dvs. Este simplu și ușor; urmați-ne.
📌 Pași:
- În primul rând, introduceți Tip carte ca Antet de coloană în celulă F4 și introduceți această formulă în celula F5 .
=IFERROR(INDEX($C$5:$C$25,(SMALL(IF($B$5:$B$25=F4,ROW(B5:B25)-ROWS(B1:B4),""),(ROW(B5:B25)-ROWS(B1:B4))))),""),(ROW(B5:B25)-ROWS(B1:B4))))),"")
Repartizarea formulei - ROW(B5:B25) returnează o matrice de {5, 6, 7, ..., 25} . și RÂNDURI(B1:B4) returnează 4 . deci RÂND(B5:B25)-RÂNDURI(B1:B4) returnează o matrice de {1, 2, 3, ..., 21} . vezi ROW și RÂNDURI pentru detalii.
- IF($B$5:$B$25=F4,ROW(B5:B25)-ROWS(B1:B4),"") returnează numărul corespunzător din matrice {1, 2, 3, ..., 21} valoarea din celula F4 ( Roman ) se potrivește cu valoarea din orice celulă a intervalului B5:B25 ( Tip carte ). În caz contrar, se returnează o celulă goală. A se vedea Funcția IF pentru detalii.
- SMALL(IF(IF($B$5:$B$25=F4,ROW(B5:B25)-ROWS(B1:B4),""),(ROW(B5:B25)-ROWS(B1:B4)))) devine SMALL({1, ..., 3, ..., 6, ..., 20, ...},{1, 2, 3, 4, ...., 21}) și returnează mai întâi numerele, apoi #NUM! erori în celulele goale. A se vedea Funcția SMALL pentru detalii.
- INDEX($C$5:$C$25,(SMALL(IF($B$5:$B$25=F4,ROW(B5:B25)-ROWS(B1:B4),"""),(ROW(B5:B25)-ROWS(B1:B4))))) devine INDEX($C$5:$C$25,{1,3,6,11,...,#NUM!}) și returnează valoarea corespunzătoare Nume de cărți (numele romanelor) și #NUM! erori. Funcția INDEX pentru detalii.
- În cele din urmă, am înfășurat formula în interiorul unui element Funcția IFERROR pentru a transforma erorile în celule goale.
- După aceea, apăsați ENTER .
- Acum, dacă doriți, introduceți cealaltă Tipuri de cărți ca Titluri de coloană și glisați butonul Mâner de umplere Veți primi cărțile celorlalte tipuri de cărți.
3. Vlookup cu mai multe corespondențe și returnarea rezultatelor într-un rând
În metodele anterioare, am obținut rezultatele în coloane verticale. Dar dacă dorim să obținem valorile pe un rând, cum putem face acest lucru? Aici, vom obține valorile Autor denumiri pentru diferite Tipuri de cărți Urmați cu atenție pașii de mai jos.
📌 Pași:
- La început, mergeți la celula G5 și scrieți formula de mai jos.
=IFERROR(INDEX($D$5:$D$19,SMALL(IF($F5=$B$5:$B$19,ROW($D$5:$D$19)-4,""),COLUMN()-6))),""),")
Această formulă este asemănătoare cu formula anterioară. Așadar, dacă aveți probleme în a înțelege această formulă, vă rugăm să consultați pagina explicația anterioară .
- Apoi, atingeți ușor butonul ENTER cheie.
Dar mai sunt și alți autori care au romane în acest set de date. Deci, cum îi putem obține?
Trebuie doar să trageți Mâner de umplere până la celula K5 pentru a obține cealaltă Autori de Roman În plus, trageți de Mâner de umplere instrument la celulă K7 pentru a obține numele de Autori pentru diferite tipuri de cărți. Pentru clarificări, consultați imaginea de mai jos.
Cum se face Vlookup Numeroase potriviri cu mai multe criterii
În exemplele noastre anterioare, am găsit valorile pentru un singur criteriu. De exemplu, am obținut titlurile cărților pentru un anumit tip de carte. Dar aici, vom implica mai multe criterii. Vom căuta valorile pentru Romane de Charles Dickens Să o vedem în acțiune.
📌 Pași:
- În primul rând, selectați celula H5 și inserați următoarea formulă.
=IFERROR(INDEX($C$5:$C$25,SMALL(IF(1=((--($F$5=$B$5:$B$25))*(--($G$5=$D$5:$D$25))),ROW($C$5:$C$25)-4,""),ROW()-4)),""),"")
- Apoi, apăsați ENTER .
Cum să faceți Vlookup și să returnați mai multe corespondențe într-o singură celulă
În abordările anterioare, am obținut valorile în celule diferite. Dar vom arăta cum putem obține rezultate într-o singură celulă. Așadar, fără întârziere, să trecem la treabă!
📌 Pași:
- În primul rând, mergeți la celula G5 și introduceți formula de mai jos.
=TEXTJOIN(", ", ",TRUE,IF($F$5=$B$5:$B$25,C5:C25,"")))
În acest caz, se va utiliza Funcția IF obține valoarea din intervalul C5:C25 unde valorile corespunzătoare din intervalul B5:B25 se potrivește cu valoarea din celulă F5 . apoi, în Funcția TEXTJOIN combină valorile tabloului cu o virgulă ca delimitator.
- În al doilea rând, apăsați ENTER .
Citește mai mult: Funcția INDEX MATCH vs VLOOKUP (9 exemple)
Concluzie
Acest articol explică cum să vlookup cu mai multe meciuri în Excel într-un mod simplu și concis. Nu uitați să descărcați fișierul de practică. Vă mulțumim că ați citit acest articol. Sperăm că a fost util. Vă rugăm să ne anunțați în secțiunea de comentarii dacă aveți întrebări sau sugestii. Vă rugăm să vizitați site-ul nostru, ExcelWIKI , un furnizor unic de soluții Excel, pentru a explora mai multe.