Cuprins
Acest tutorial prezintă noua funcție Excel XMATCH și arată cum este mai bună decât MATCH pentru rezolvarea câtorva sarcini comune.
În Excel 365, funcția XMATCH a fost adăugată pentru a înlocui funcția MATCH. Dar, înainte de a începe să vă actualizați formulele existente, ar fi înțelept să înțelegeți toate avantajele noii funcții și modul în care diferă de cea veche.
Pe scurt, funcția XMATCH este identică cu MATCH, dar mai flexibilă și mai robustă. Poate căuta atât în matrice verticală, cât și în matrice orizontală, poate căuta de la primul la ultimul sau de la ultimul la primul, poate găsi corespondențe exacte, aproximative și parțiale și poate utiliza un algoritm de căutare binară mai rapid.
Funcția Excel XMATCH
Funcția XMATCH din Excel returnează poziția relativă a unei valori într-o matrice sau într-un interval de celule.
Aceasta are următoarea sintaxă:
XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])Unde:
Valoare_de_consultare (obligatoriu) - valoarea care trebuie căutată.
Tablou_repertoriu (obligatoriu) - matricea sau intervalul de celule în care se efectuează căutarea.
Modul_de_meci (opțional) - specifică tipul de potrivire care trebuie utilizat:
- 0 sau omis (implicit) - potrivire exactă
- -1 - potrivire exactă sau următoarea cea mai mică valoare
- 1 - potrivire exactă sau următoarea valoare cea mai mare
- 2 - potrivire cu wildcard (*, ?)
Modul_de_cercetare (opțional) - specifică direcția și algoritmul de căutare:
- 1 sau omis (implicit) - căutare de la primul la ultimul.
- -1 - căutare în ordine inversă, de la ultimul la primul.
- 2 - căutare binară ascendentă. Cerință lookup_array să fie sortate în ordine crescătoare.
- -2 - căutare binară descrescătoare. Necesită lookup_array să fie sortate în ordine descrescătoare.
Căutarea binară este un algoritm mai rapid care funcționează eficient pe array-uri sortate. Pentru mai multe informații, consultați Modul de căutare.
Ce versiune de Excel are XMATCH?
Funcția XMATCH este disponibilă numai în Excel pentru Microsoft 365 și Excel 2021. În Excel 2019, Excel 2016 și versiunile anterioare, această funcție nu este acceptată.
Formula de bază XMATCH în Excel
Pentru a avea o idee generală despre ceea ce poate face această funcție, să construim o formulă XMATCH în forma sa cea mai simplă, definind doar primele două argumente necesare și lăsându-le pe cele opționale la valorile implicite.
Să presupunem că aveți o listă de oceane clasificate în funcție de mărimea lor (C2:C6) și doriți să aflați rangul unui anumit ocean. Pentru a face acest lucru, utilizați pur și simplu numele oceanului, să zicem Indian , ca valoare de căutare și întreaga listă de nume ca matrice de căutare:
=XMATCH("Indian", C2:C6)
Pentru a face formula mai flexibilă, introduceți oceanul de interes într-o celulă, de exemplu F1:
=XMATCH(F1, C2:C6)
Ca rezultat, veți obține o formulă XMATCH pentru a o căuta într-un fișier matrice verticală Rezultatul este poziția relativă a valorii de căutare în matrice, care în cazul nostru corespunde rangului oceanului:
O formulă similară funcționează perfect pentru un matrice orizontală Tot ceea ce trebuie să faceți este să reglați lookup_array referință:
=XMATCH(B5, B1:F1)
Funcția Excel XMATCH - lucruri de reținut
Pentru a utiliza în mod eficient XMATCH în foile de lucru și pentru a preveni rezultate neașteptate, vă rugăm să vă amintiți aceste 3 lucruri simple:
- În cazul în care există două sau mai multe apariții ale valorii de căutare în matricea de căutare, se va calcula poziția valorii de căutare primul meci este returnat dacă modul_de_cercetare este setat la 1 sau omis. Cu modul_de_cercetare setată la -1, funcția caută în ordine inversă și returnează poziția din ultimul meci așa cum se demonstrează în acest exemplu.
- În cazul în care valoarea de căutare nu este găsit , apare o eroare #N/A.
- Funcția XMATCH este nu ține cont de majuscule și minuscule Pentru a distinge caracterele minuscule și majuscule, utilizați această formulă XMATCH care ține cont de majuscule și minuscule.
Cum se utilizează XMATCH în Excel - exemple de formule
Următoarele exemple vă vor ajuta să înțelegeți mai bine funcția XMATCH și utilizările sale practice.
Potrivire exactă vs. potrivire aproximativă
Comportamentul de potrivire al XMATCH este controlat de opțiunea opțională match_mode argument:
- 0 sau omis (implicit) - formula caută doar o potrivire exactă. Dacă nu se găsește o potrivire exactă, se trimite o eroare #N/A.
- -1 - formula caută mai întâi corespondența exactă și apoi următorul element mai mic.
- 1 - formula caută mai întâi corespondența exactă și apoi următorul element mai mare.
Și acum, să vedem cum influențează diferitele moduri de potrivire rezultatul formulei. Să presupunem că doriți să aflați unde se află o anumită suprafață, să zicem 80.000.000 km2, între toate oceanele.
Potrivire exactă
Dacă folosiți 0 pentru match_mode , veți primi o eroare #N/A, deoarece formula nu poate găsi o valoare exact egală cu valoarea de căutare:
=XMATCH(80000000, C2:C6, 0)
Următorul cel mai mic articol
Dacă folosiți -1 pentru match_mode , formula va returna 3, deoarece cea mai apropiată potrivire mai mică decât valoarea de căutare este 70,560,000, iar acesta este al treilea element din matricea de căutare:
=XMATCH(80000000, C2:C6, -1)
Următorul cel mai mare articol
Dacă folosiți 1 pentru match_mode , formula va produce 2, deoarece cea mai apropiată potrivire mai mare decât valoarea de căutare este 85,133,000, care este al doilea element din matricea de căutare:
=XMATCH(80000000, C2:C6, -1)
Imaginea de mai jos prezintă toate rezultatele:
Cum se potrivește un text parțial în Excel cu wildcards
Funcția XMATCH dispune de un mod special de potrivire pentru caractere wildcard: funcția match_mode setat la 2.
În modul de potrivire cu caractere wildcard, o formulă XMATCH acceptă următoarele caractere wildcard:
- Semnul întrebării (?) pentru a se potrivi cu orice caracter unic.
- Asterisc (*) pentru a se potrivi cu orice secvență de caractere.
Vă rugăm să țineți cont de faptul că wildcards funcționează numai cu text, nu și cu numere.
De exemplu, pentru a găsi poziția primului element care începe cu "sud", formula este:
=XMATCH("south*", B2:B6, 2)
Sau puteți tasta expresia wildcard într-o celulă, de exemplu F1, și să furnizați referința celulei pentru expresia lookup_value argument:
=XMATCH(F1, B2:B6, 2)
Cu majoritatea funcțiilor Excel, veți folosi tilde (~) pentru a trata asteriscul (~*) sau semnul de întrebare (~?) ca fiind caractere literale, nu caractere wildcard. Cu XMATCH, tilde nu este necesar. Dacă nu definiți modul de potrivire a caracterelor wildcard, XMATCH va presupune că ? și * sunt caractere obișnuite.
De exemplu, formula de mai jos va căuta în intervalul A2:A7 exact caracterul asterisc:
=XMATCH("*", A2:A7)
XMATCH căutare inversă pentru a găsi ultima potrivire
În cazul în care există mai multe apariții ale valorii de căutare în matricea de căutare, este posibil ca uneori să aveți nevoie să obțineți poziția valorii de căutare. ultima apariție .
Direcția de căutare este controlată de cel de-al patrulea argument al XMATCH numit modul_de_cercetare Pentru a căuta în ordine inversă, adică de jos în sus într-o matrice verticală și de la dreapta la stânga într-o matrice orizontală, modul_de_cercetare trebuie să fie setat la -1.
În acest exemplu, vom returna poziția ultimei înregistrări pentru o anumită valoare de căutare (a se vedea captura de ecran de mai jos). Pentru aceasta, configurați argumentele după cum urmează:
- Valoare_de_consultare - vânzătorul-țintă în H1
- Tablou_repertoriu - numele vânzătorilor din C2:C10
- Modul_de_meci este 0 sau omis (potrivire exactă)
- Modul_de_cercetare este -1 (last-to-first)
Punând cap la cap cele patru argumente, obținem această formulă:
=XMATCH(H1, C2:C10, 0, -1)
Care returnează numărul ultimei vânzări efectuate de Laura:
Cum se compară două coloane în Excel pentru potrivire
Pentru a compara două liste în vederea găsirii de corespondențe, puteți utiliza funcția XMATCH împreună cu IF și ISNA:
IF( ISNA( XMATCH( lista_țintă , lista_de_cercetare , 0))), "No match", "Match")De exemplu, pentru a compara Lista 2 din B2:B10 cu Lista 1 din A2:A10, formula are următoarea formă:
=IF(ISNA(XMATCH(B2:B10, A2:A9)), "", "Potrivire în lista 1")
În acest exemplu, identificăm numai potriviri, prin urmare, se utilizează value_if_true al funcției IF este un șir de caractere gol (""").
Introduceți formula de mai sus în celula cea mai de sus (C2 în cazul nostru), apăsați Enter , iar aceasta se va "revărsa" automat în celelalte celule (se numește interval de revărsare):
Cum funcționează această formulă
În centrul formulei, funcția XMATCH caută o valoare din Lista 2 în cadrul Listei 1. Dacă se găsește o valoare, se returnează poziția sa relativă, în caz contrar, se afișează o eroare #N/A. În cazul nostru, rezultatul XMATCH este următoarea matrice:
{#N/A;#N/A;#N/A;2;#N/A;4;#N/A;#N/A;#N/A;8;#N/A}
Această matrice este "alimentată" către funcția ISNA pentru a fi verificată pentru erori #N/A. Pentru fiecare eroare #N/A, ISNA returnează TRUE; pentru orice altă valoare - FALSE. Ca rezultat, se obține următoarea matrice de valori logice, în care TRUE reprezintă neconcordanțe, iar FALSE reprezintă concordanțe:
{ADEVĂRAT;ADEVĂRAT;ADEVĂRAT;FALS;ADEVĂRAT;FALS;ADEVĂRAT;ADEVĂRAT;ADEVĂRAT;FALS;ADEVĂRAT}
Matricea de mai sus merge la testul logic al funcției IF. În funcție de modul în care ați configurat ultimele două argumente, formula va afișa textul corespunzător. În cazul nostru, este un șir de caractere gol ("") pentru nepotriviri ( value_if_true ) și "Match in List 1" pentru meciuri ( value_if_false ).
Notă. Această formulă funcționează numai în Excel 365 și Excel 2021 care acceptă array-uri dinamice. Dacă utilizați Excel 2019, Excel 2016 sau o versiune anterioară, vă rugăm să consultați alte soluții: Cum să comparați două coloane în Excel.
INDEX XMATCH în Excel
XMATCH poate fi utilizat în combinație cu funcția INDEX pentru a prelua o valoare dintr-o altă coloană asociată cu valoarea de căutare, la fel ca în cazul formulei INDEX MATCH. Abordarea generică este următoarea:
INDEX ( return _ array , XMATCH ( lookup_value , lookup_array )Logica este foarte simplă și ușor de urmărit:
Funcția XMATCH calculează poziția relativă a valorii de căutare în matricea de căutare și o transmite la funcția număr_ rând Pe baza numărului de rând, funcția INDEX returnează o valoare din orice coloană pe care o specificați.
De exemplu, pentru a afla suprafața oceanului din E1, puteți utiliza această formulă:
=INDEX(B2:B6, XMATCH(E1, A2:A6))
INDEX XMATCH XMATCH XMATCH pentru a efectua căutări în două dimensiuni
Pentru a căuta simultan în coloane și rânduri, utilizați INDEX împreună cu două funcții XMATCH. Prima funcție XMATCH va obține numărul rândului, iar cea de-a doua va prelua numărul coloanei:
INDEX ( date , XMATCH ( lookup_value , vertical _ lookup_array ), XMATCH ( valoarea de căutare , orizontală _ lookup_array ))Formula este similară cu INDEX MATCH MATCH MATCH, cu excepția faptului că se poate omite match_mode deoarece este implicită o potrivire exactă.
De exemplu, pentru a prelua un număr de vânzări pentru un anumit articol (G1) într-o anumită lună (G2), formula este:
=INDEX(B2:D8, XMATCH(G1, A2:A8), XMATCH(G2, B1:D1))
Unde B2:D8 sunt celule de date, cu excepția antetelor de rând și de coloană, A2:A8 este o listă de elemente și B1:D1 sunt nume de luni.
Formula XMATCH sensibilă la majuscule și minuscule
După cum s-a menționat deja, funcția Excel XMATCH nu ține cont de majuscule și minuscule. Pentru a o forța să facă distincția între majuscule și minusculele din text, utilizați XMATCH în combinație cu funcția EXACT:
MATCH(TRUE, EXACT( lookup_array , lookup_value ))Pentru a căuta în ordine inversă de la ultimul la primul loc:
MATCH(TRUE, EXACT( lookup_array , lookup_value ), 0, -1)Exemplul următor arată această formulă generică în acțiune. Să presupunem că aveți o listă de id-uri de produs cu majuscule și minuscule în B2:B11. Doriți să găsiți poziția relativă a articolului din E1. O formulă cu majuscule și minuscule în E2 este la fel de simplă ca aceasta:
=XMATCH(TRUE, EXACT(B2:B11, E1))
Cum funcționează această formulă:
Funcția EXACT compară valoarea de căutare cu fiecare element din tabloul de căutare. Dacă valorile comparate sunt exact egale, inclusiv caracterele majuscule și minuscule, funcția returnează TRUE, iar în caz contrar FALSE. Acest tablou de valori logice (unde TRUE reprezintă potriviri exacte) merge în tabloul lookup_array din XMATCH. Și deoarece valoarea de căutare este TRUE, funcția XMATCH returnează poziția primei corespondențe exacte găsite sau a ultimei corespondențe exacte, în funcție de modul în care ați configurat funcția modul_de_cercetare argument.
XMATCH vs. MATCH în Excel
XMATCH a fost conceput ca un înlocuitor mai puternic și mai versatil pentru MATCH, astfel încât aceste două funcții au multe în comun. Cu toate acestea, există diferențe esențiale.
Comportament implicit diferit
Funcția MATCH are ca valoare implicită o potrivire exactă sau următorul cel mai mic element ( match_type setat la 1 sau omis).
Funcția XMATCH are ca valoare implicită potrivirea exactă ( match_mode setat la 0 sau omis).
Comportament diferit pentru potrivirea aproximativă
Atunci când match_mode / match_type este setat la 1:
- MATCH caută corespondența exactă sau următoarea cea mai mică. Necesită ca matricea de căutare să fie sortată în ordine crescătoare.
- XMATCH caută corespondența exactă sau următoarea cea mai mare. Nu necesită nici o sortare.
Atunci când match_mode / match_type este setat la -1:
- MATCH caută o potrivire exactă sau următoarea cea mai mare potrivire. Necesită sortarea matricei de căutări în ordine descrescătoare.
- XMATCH caută corespondența exactă sau următoarea cea mai mică. Nu necesită sortare.
Căutare cu wildcard
Pentru a găsi potriviri parțiale cu XMATCH, trebuie să setați parametrul match_mode argument la 2.
Funcția MATCH nu are o opțiune specială pentru modul de potrivire cu wildcard. În majoritatea cazurilor, o veți configura pentru potrivire exactă ( match_type setat la 0), care funcționează, de asemenea, pentru căutările cu wildcard.
Modul de căutare
Ca și noua funcție XLOOKUP, XMATCH are o funcție specială modul_de_cercetare care vă permite să definiți valoarea direcția de căutare :
- 1 sau omis (implicit) - căutare de la primul la ultimul.
- -1 - căutare inversă de la ultimul la primul.
Și alegeți un algoritm de căutare binară , care este foarte rapid și eficient pe date sortate .
- 2 - căutare binară pe date ordonate crescător.
- -2 - căutare binară pe date ordonate descrescător.
Căutare binară , numită și căutare cu jumătate de interval sau căutare logaritmică , este un algoritm special care găsește poziția unei valori de căutare în cadrul unui tablou prin compararea acesteia cu elementul din mijloc al tabloului. O căutare binară este mult mai rapidă decât o căutare obișnuită, dar funcționează corect numai pe listele sortate. Pe date nesortate, poate returna rezultate greșite care pot părea destul de normale la prima vedere.
Sintaxa lui MATCH nu prevede deloc argumentul "mod de căutare".
XMATCH gestionează matricele în mod nativ
Spre deosebire de predecesorul său, funcția XMATCH a fost concepută pentru Excel dinamic și gestionează matricele în mod nativ, fără a fi nevoie să apăsați Ctrl + Shift + Enter . Acest lucru face ca formulele să fie mult mai ușor de construit și de editat, în special atunci când se utilizează câteva funcții diferite împreună. Comparați următoarele soluții:
- Formulă sensibilă la majuscule și minuscule: XMATCH
- Comparați două coloane sau liste pentru a găsi corespondențe: XMATCH
XMATCH și disponibilitatea MATCH
XMATCH este o funcție nouă și este disponibilă numai în Excel pentru Microsoft 365 și Excel 2021.
Funcția MATCH este disponibilă în orice versiune de Excel 365 până la Excel 2007.
Iată cum se utilizează funcția XMATCH în Excel. Vă mulțumesc pentru lectură și sper să ne revedem pe blog săptămâna viitoare!
Caietul de practică pentru descărcare
Exemple de formule Excel XMATCH (fișier .xlsx)