Cuprins
Astăzi voi face o analiză comparativă a XLOOKUP vs Funcțiile INDEX-MATCH în Excel În versiunile anterioare ale Excel , obișnuiam să folosim HLOOKUP , a VLOOKUP , iar INDEX-MATCH pentru a căuta o anumită valoare într-un interval de celule. Cu toate acestea, odată cu apariția funcțiilor Office 365 , Excel ne-a pus la dispoziție o funcție nouă și dinamică numită XLOOKUP pentru a efectua o operațiune similară în mod mai sofisticat. În acest articol, voi încerca să compar funcțiile utilizate pe scară largă, funcția XLOOKUP și INDEX-MATCH .
Descărcați caietul de practică
Obțineți acest fișier de probă pentru o mai bună înțelegere.
Funcțiile XLOOKUP vs INDEX-MATCH.xlsxIntroducere în funcția XLOOKUP
The XLOOKUP este utilizată pentru a găsi o anumită valoare într-un interval de celule sau într-o matrice, după care returnează prima potrivire corespunzătoare. De asemenea, arată cea mai apropiată sau aproximativă potrivire atunci când nu există o potrivire exactă.
Sintaxă:
=XLOOKUP(lookup_value,lookup_array,return_array,[if_not_found],[match_mode],[search_mode])
Argumente:
- Valoare_de_consultare : Este valoarea pe care o căutăm într-o anumită coloană a intervalului.
- Tablou_repertoriu : Este matricea în care căutăm lookup_value Poate fi atât rând cât și coloană.
- Return_array: Este coloana din care este extrasă valoarea corespunzătoare a lookup_value va fi returnată.
Argumente opționale:
- If_not_found : Este valoarea care va fi returnată în cazul în care lookup_array nu are valoarea de căutare.
- Modul_de_meci : Este un număr care denotă tipul de potrivire al lookup_value Acesta este un argument opțional și poate conține patru valori.
- Când este 0 , XLOOKUP va căuta o potrivire exactă (implicit).
- Când este 1 , XLOOKUP va căuta mai întâi o potrivire exactă. Dacă nu se găsește o potrivire exactă, va căuta următoarea valoare mai mică.
- Când este -1 , XLOOKUP va căuta mai întâi o potrivire exactă. Dacă nu se găsește o potrivire exactă, se va căuta următoarea valoare mai mare.
- Când este 2 , XLOOKUP va căuta mai întâi o potrivire aproximativă folosind caractere wildcard (aplicabil numai pentru valorile de căutare a șirurilor de caractere).
- Modul_de_cercetare : Este un număr care denotă tipul de operațiune de căutare efectuată asupra lookup_array. Este, de asemenea, opțional. Poate avea și patru valori:
- În cazul în care este 1 , XLOOKUP va căuta de sus în jos în lista lookup_array (implicit).
- Când este -1 , XLOOKUP va căuta de jos în sus în
- În cazul în care este 2 , XLOOKUP va efectua o căutare binară în ordine crescătoare.
- Când este -2 , XLOOKUP va efectua o căutare binară în ordine descrescătoare.
Introducere în funcțiile INDEX-MATCH
Combinația dintre INDEX-MATCH este utilizată pentru a prelua o valoare dintr-o anumită locație și a o compara cu intervalul sursă.
Sintaxă:
=INDEX(array,MATCH(lookup_value,lookup_array,match_type),no_of_column)
Argumente:
Pentru funcția INDEX:
- Array : Este un interval de celule din care dorim să extragem o valoare.
- MATCH(lookup_value,lookup_array,match_type): Este numărul de rând al intervalului în care se află lookup_value se potrivește cu o anumită valoare din lookup_array .
- No_of_column: Este numărul coloanei din array din care dorim să returnăm o valoare corespunzătoare la lookup_value .
Pentru funcția MATCH:
- Lookup_value: Este valoarea pe care o căutăm.
- Lookup_array: Este matricea în care căutăm lookup_value Acesta poate fi atât un rând, cât și o coloană.
- Tipul de meci: Este un număr întreg care indică tipul de corespondență pe care îl căutăm. Este opțional.
- Când este -1 , MATCH va căuta mai întâi o potrivire exactă. În cazul în care nu se găsește o potrivire exactă, se va căuta următoarea valoare mai mare (Default) (opusul lui XLOOKUP ).
Dar condiția este ca lookup_array trebuie să fie sortate în ordine crescătoare, altfel se va afișa o eroare.
- Când este 1 , MATCH De asemenea, va căuta mai întâi o potrivire exactă. În cazul în care nu se găsește o potrivire exactă, se va căuta următoarea valoare mai mică (opusul lui XLOOKUP ).
Dar condiția este ca lookup_array trebuie să fie sortat în ordine descrescătoare de data aceasta, în caz contrar, se va afișa o eroare.
- Când este 0 , MATCH va căuta o potrivire exactă.
Citește mai mult: Cum să selectați date specifice în Excel (6 metode)
7 Comparații între utilizările funcțiilor XLOOKUP și INDEX-MATCH
Acum că am descompus formula, să discutăm câteva asemănări și deosebiri între cele două funcții. Înainte de a trece la discuțiile principale, vă prezint principalele puncte într-un tabel pentru comoditate.
Punct de discuție | Asemănare/Disimilaritate | Explicație |
Coloană lookup_array | Similaritate | Ambele acceptă o coloană ca matrice de căutare. |
Rând lookup_array | Similaritate | Ambele acceptă un rând ca matrice de căutare. |
Nici o potrivire a valorii de căutare (lookup_value) | Disimilaritate | XLOOKUP are opțiunea de configurare implicită pentru a nu se potrivi cu valoarea de căutare, dar INDEX-MATCH nu are această opțiune. |
Potrivire aproximativă | Similaritate parțială | XLOOKUP poate găsi următoarea valoare mai mică sau mai mare atunci când nu există o potrivire exactă. INDEX-MATCH poate face același lucru, dar tabelul de căutare trebuie să fie sortat în ordine crescătoare sau descrescătoare. |
Potrivirea caracterelor wildcard | Similaritate | Ambele acceptă caractere wildcard de potrivire. |
Potrivirea valorilor multiple | Similaritate parțială | XLOOKUP poate afla fie prima, fie ultima valoare atunci când mai multe valori se potrivesc, însă INDEX-MATCH poate returna numai prima valoare care se potrivește. |
Formula Array | Similaritate | Ambele acceptă formula de matrice. |
1. XLOOKUP și INDEX-MATCH pentru a căuta valoarea în coloană
Există o asemănare între cele două funcții sub acest aspect. Pentru funcția de XLOOKUP și INDEX-MATCH , lookup_array poate fi o coloană pentru ambele funcții. Aici căutăm exact Note la fizică a numelui elevului în C ell F5 , Jennifer Marlo Am vrut să căutăm de sus până jos în Numele elevului și returnează " Nu a fost găsit " în cazul în care nu se găsește nicio potrivire.
- Pentru XLOOKUP , se aplică formula din Celula G5 .
=XLOOKUP(F5,C5:C16,D5:D16,"Not Found",0,1)
- Pentru INDEX-MATCH , utilizați această formulă în Celula G5 .
=INDEX(B5:D16,MATCH(F5,C5:C16,0),3),3)
Citește mai mult: Cum să potriviți mai multe criterii din diferite array-uri în Excel
2. XLOOKUP și INDEX-MATCH pentru a căuta valoarea în rând
Există o asemănare între cele două funcții și sub acest aspect. Pentru funcția de XLOOKUP și INDEX-MATCH , a lookup_array poate fi, de asemenea, un rând pentru ambele funcții. Pentru exemplificare, avem un nou set de date cu funcția ID-uri , Nume , și Note la fizică și Clasele .
Să considerăm pentru un moment că este vorba de un set de date foarte larg și că nu știm care este numărul de Clasa Apoi, pentru a afla nota unui anumit elev, trebuie să folosim coloana Rândul de antet (B4:E4) ca matrice de căutare și cuvântul " Clasa ", ca lookup_value Putem realiza acest lucru folosind atât XLOOKUP și INDEX-MATCH .
- Pentru a afla gradul de Al treilea elev , a XLOOKUP formula va fi astfel în Celula G5 .
=XLOOKUP("Grade",B4:E4,B7:E7, "Not Found",0,1)
- Pentru acest caz, se utilizează INDEX-MATCH formula va fi:
=INDEX(B5:E16,3,MATCH("Grade",B4:E4,0))
3. XLOOKUP și INDEX-MATCH atunci când nu se găsește nicio potrivire
Cele două funcții sunt diferite sub acest aspect. Dacă valoarea de căutare nu se potrivește cu nici o valoare din lookup_array , puteți seta o valoare fixă care să fie returnată în XLOOKUP Pentru a face acest lucru, trebuie să setați această valoare în if_not_found Pe de altă parte, nu există o astfel de opțiune în INDEX-MATCH Va returna o eroare. Trebuie să utilizați funcția IFERROR în exterior pentru a gestiona eroarea. În setul de date dat, vom afla valoarea Numele elevului cu ID-ul 100 .
- Pentru aceasta, utilizați următoarele XLOOKUP formula în Celula G5 .
=XLOOKUP(100,B5:B16,C5:C16,"Not Found",0,1)
- Pe de altă parte, aplicați acest INDEX-MATCH formula.
=INDEX(B5:E16,MATCH(100,B5:B16,0),2)
- Deoarece returnează o eroare, trebuie să folosiți o funcție IFERROR în exterior pentru a gestiona această eroare.
=IFERROR(INDEX(B5:E16,MATCH(100,B5:B16,0),2), "Not Found")
Lecturi similare
- Excel INDEX MATCH pentru a returna mai multe valori într-o singură celulă
- Excel INDEX-MATCH Formula pentru a returna mai multe valori orizontal
- Cum se utilizează formula INDEX-MATCH în Excel pentru a genera rezultate multiple
- [Fixed!] INDEX MATCH nu returnează valoarea corectă în Excel (5 motive)
- Cum să utilizați INDEX MATCH în loc de VLOOKUP în Excel (3 moduri)
4. XLOOKUP și INDEX-MATCH în cazul corespondențelor aproximative
Există o asemănare parțială între cele două funcții sub acest aspect. În cadrul funcției XLOOKUP în cazul în care funcția lookup_value nu se potrivește cu nicio valoare din lookup_array , puteți modifica formula pentru a returna următoarea valoare mai mică sau următoarea valoare mai mare. Setați argumentul match_type la -1 dacă doriți următoarea valoare mai mică și setați-o la 1 dacă doriți următoarea valoare mai mare.
De exemplu, vom afla elevul cu o notă de 50 sau următoarea marcă mai mare.
- Pentru a afla valoarea, aplicați următoarea formulă XLOOKUP formula.
=XLOOKUP(50,D5:D16,C5:C16,"Not Found",1,1)
- După cum se poate observa, nu există niciun elev cu o notă de 50 De aceea se afișează cea imediat următoare. 50 , 51 de Desmond Hayes .
Aceeași opțiune există și în INDEX-MATCH Dar neajunsul este că trebuie să sortați lookup_array în ordine descrescătoare dacă doriți următoarea valoare mai mare. În caz contrar, se va returna o eroare. Iar pentru a obține următoarea valoare mai mică, trebuie să sortați în ordine crescătoare.
- Mai întâi de toate, introduceți această formulă în Celula G5 .
=INDEX(B5:E16,MATCH(50,D5:D16,-1),2)
- Ca urmare, veți vedea că rezultatul arată un #N/A eroare.
- Prin urmare, sortați Intervalul de celule D5:D16 în ordine crescătoare și veți obține valoarea corectă.
Citește mai mult: Cum se utilizează INDEX și Match pentru potrivire parțială (2 moduri)
5. XLOOKUP și INDEX-MATCH în cazul potrivirii caracterelor wildcard
Există o asemănare între cele două funcții sub acest aspect. Funcția de XLOOKUP și INDEX-MATCH , ambele susțin Wildcards Aici, vom descoperi orice elev cu " Marlo " ca al doilea nume. Să urmăm pașii de mai jos pentru a vedea XLOOKUP vs INDEX-MATCH comparație.
- În primul rând, aplicați acest XLOOKUP formula în Celula G5 pentru a obține rezultatul.
=XLOOKUP("*Marlo*",C5:C16,C5:C16,"Not Found",2,1)
Notă: Pentru a utiliza caractere wildcards în XLOOKUP , trebuie să setați match_type argument pentru 2 În caz contrar, nu va funcționa. - Pe de altă parte, în cazul INDEX-MATCH formula pentru a îndeplini aceeași sarcină va fi următoarea.
=INDEX(B5:E16,MATCH("*Marlo*",C5:C16,0),2)
Citește mai mult: INDEX MATCH Criterii multiple cu Wildcard în Excel (Un ghid complet)
6. XLOOKUP și INDEX-MATCH Când mai multe valori se potrivesc cu valoarea de căutare
Acest exemplu arată XLOOKUP vs INDEX-MATCH atunci când mai multe valori se potrivesc cu valoarea de căutare. Există, de asemenea, o similitudine parțială între cele două funcții în această privință. Funcția XLOOKUP și INDEX-MATCH ambele returnează o singură valoare în cazul în care mai multe valori din lookup_array se potrivesc cu lookup_value . dar în XLOOKUP puteți modifica căutarea pentru a obține fie prima, fie ultima potrivire. Pentru a obține prima valoare care se potrivește, setați funcția căutare_tip argument pentru 1 . și pentru a obține ultima valoare care se potrivește, setați valoarea căutare_tip argument pentru -1 Dar în INDEX-MATCH nu aveți de ales. Veți obține doar prima valoare care se potrivește.
- Pentru a obține primul elev care a obținut 100 , puteți folosi acest lucru XLOOKUP formula în Celula G5 .
=XLOOKUP(100,D5:D16,C5:C16,"Not Found",0,1)
- Împreună cu acesta, veți primi ultimul elev cu 100 folosind acest XLOOKUP formula.
=XLOOKUP(100,D5:D16,C5:C16,"Not Found",0,-1)
- Dimpotrivă, veți obține doar prima valoare care se potrivește cu acest lucru INDEX-MATCH formula.
=INDEX(B5:E16,MATCH(100,D5:D16,0),2)
7. XLOOKUP și INDEX-MATCH în cazul unor valori de căutare multiple
În acest exemplu, vom demonstra XLOOKUP vs INDEX-MATCH în cazul unor valori de căutare multiple. Există o asemănare între cele două funcții în această privință. Ambele permit mai multe valori de căutare. lookup_values (Formula Array).
- Pentru XLOOKUP va funcționa următoarea formulă.
=XLOOKUP(G5:G8,B5:B16,E5:E16,"Not Found",0,1)
- Apoi, pentru INDEX-MATCH , va funcționa și următoarea funcție.
=INDEX(B5:E16,MATCH(G5:G8,B5:B16,0),4)
Avantaje & Dezavantaje ale funcției XLOOKUP
Există anumite avantaje și dezavantaje ale utilizării XLOOKUP Să le vedem pe scurt.
Avantaje
- Setați o valoare implicită pentru cazurile care nu corespund.
- Se pot căuta potriviri aproximative fără a sorta lista lookup_array .
- Aveți acces la căutare atât din prima celulă, cât și din ultima celulă a lookup_array .
Dezavantaje
- Funcționează mai lent decât INDEX-MATCH funcție.
- Disponibil în Office 365 numai.
Avantaje & Dezavantaje ale funcțiilor INDEX-MATCH
The INDEX-MATCH funcțiile au, de asemenea, unele dintre următoarele argumente pro și contra.
Avantaje
- Funcționează mai rapid decât XLOOKUP funcție.
- Disponibil în vechiul Excel versiuni.
Dezavantaje
- Nu poate gestiona erorile atunci când nu se găsește nicio potrivire.
- Are nevoie de lookup_array pentru a fi sortate pentru a găsi corespondențe aproximative.
- Returnează numai prima valoare atunci când mai multe valori se potrivesc cu lookup_value .
Concluzie
În sfârșit, am ajuns la finalul lungului nostru articol. Aici am încercat să creionăm o analiză comparativă a XLOOKUP față de INDEX-MATCH Lăsați-ne să vă cunoaștem sugestiile dvs. de perspectivă în acest sens. Urmăriți-ne. ExcelWIKI pentru mai multe tutoriale.