Cuprins
Acest tutorial explică modul de utilizare a funcției MATCH în Excel cu exemple de formule. De asemenea, arată cum să vă îmbunătățiți formulele de căutare prin crearea unei formule dinamice cu VLOOKUP și MATCH.
În Microsoft Excel, există multe funcții diferite de căutare/referință care vă pot ajuta să găsiți o anumită valoare într-un interval de celule, iar MATCH este una dintre ele. Practic, identifică o poziție relativă a unui element într-un interval de celule. Cu toate acestea, funcția MATCH poate face mult mai mult decât esența sa pură.
Funcția Excel MATCH - sintaxă și utilizări
Funcția MATCH din Excel caută o valoare specificată într-un interval de celule și returnează poziția relativă a acelei valori.
Sintaxa pentru funcția MATCH este următoarea:
MATCH(lookup_value, lookup_array, [match_type])Valoare_de_consultare (obligatoriu) - valoarea pe care doriți să o găsiți. Aceasta poate fi o valoare numerică, text sau logică, precum și o referință de celulă.
Tablou_repertoriu (obligatoriu) - intervalul de celule în care se efectuează căutarea.
Tip_de_meci (opțional) - definește tipul de potrivire. Poate fi una dintre aceste valori: 1, 0, -1. Argumentul match_type setat la 0 returnează doar potrivirea exactă, în timp ce celelalte două tipuri permit o potrivire aproximativă.
- 1 sau omis (implicit) - găsește cea mai mare valoare din matricea de căutare care este mai mică sau egală cu valoarea de căutare. Necesită sortarea matricei de căutare în ordine crescătoare, de la cel mai mic la cel mai mare sau de la A la Z.
- 0 - găsiți prima valoare din matrice care este exact egale la valoarea de căutare. Nu este necesară sortarea.
- -1 - găsiți valoarea cea mai mică valoare din tablou care este mai mare sau egală cu valoarea de căutare. Tabloul de căutare trebuie sortat în ordine descrescătoare, de la cel mai mare la cel mai mic sau de la Z la A.
Pentru a înțelege mai bine funcția MATCH, să realizăm o formulă simplă bazată pe aceste date: numele studenților în coloana A și notele obținute la examene în coloana B, ordonate de la cel mai mare la cel mai mic. Pentru a afla unde se află un anumit student (să zicem, Laura ), printre altele, utilizează această formulă simplă:
=MATCH("Laura", A2:A8, 0)
Opțional, puteți plasa valoarea de căutare într-o anumită celulă (E1 în acest exemplu) și puteți face trimitere la acea celulă în formula Excel Match:
=MATCH(E1, A2:A8, 0)
După cum vedeți în captura de ecran de mai sus, numele elevilor sunt introduse într-o ordine arbitrară și, prin urmare, setăm match_type la 0 (potrivire exactă), deoarece numai acest tip de potrivire nu necesită sortarea valorilor în matricea de căutare. Din punct de vedere tehnic, formula de potrivire returnează poziția relativă a Laurei în interval. Dar, deoarece scorurile sunt sortate de la cel mai mare la cel mai mic, aceasta ne spune, de asemenea, că Laura are al cincilea cel mai bun scor dintre toți elevii.
Sfat. În Excel 365 și Excel 2021, puteți utiliza funcția XMATCH, care este un succesor modern și mai puternic al funcției MATCH.
4 lucruri pe care ar trebui să le știți despre funcția MATCH
După cum tocmai ați văzut, utilizarea funcției MATCH în Excel este ușoară. Cu toate acestea, ca și în cazul aproape oricărei alte funcții, există câteva particularități de care trebuie să țineți cont:
- Funcția MATCH returnează valoarea poziția relativă a valorii de căutare din tablou, nu a valorii în sine.
- MATCH este nu ține cont de majuscule și minuscule , ceea ce înseamnă că nu face distincție între caracterele minuscule și majuscule atunci când tratează valori text.
- În cazul în care matricea de căutare conține mai multe apariții ale valorii de căutare, se returnează poziția primei valori.
- În cazul în care valoarea de căutare nu este găsită în matricea de căutare, se returnează eroarea #N/A.
Cum se utilizează MATCH în Excel - exemple de formule
Acum că știți utilizările de bază ale funcției Excel MATCH, să discutăm câteva exemple de formule care depășesc elementele de bază.
Potrivire parțială cu wildcards
Ca multe alte funcții, MATCH înțelege următoarele caractere wildcard:
- Semnul întrebării (?) - înlocuiește orice caracter simplu
- Asterisc (*) - înlocuiește orice secvență de caractere
Notă. Simbolurile wildcard pot fi utilizate numai în formulele Match cu match_type setat la 0.
O formulă de potrivire cu caractere joker este utilă în situațiile în care nu doriți să potriviți întregul șir de text, ci doar unele caractere sau o parte a șirului. Pentru a ilustra acest lucru, luați în considerare următorul exemplu.
Să presupunem că aveți o listă de distribuitori regionali și cifrele de vânzări ale acestora pentru luna trecută. Doriți să găsiți poziția relativă a unui anumit distribuitor în listă (sortat după sumele de vânzări în ordine descrescătoare), dar nu vă puteți aminti exact numele acestuia, deși vă amintiți câteva prime caractere.
Presupunând că numele revânzătorilor se află în intervalul A2:A11, iar dumneavoastră căutați numele care începe cu "car", formula este următoarea:
=MATCH("car*", A2:A11,0)
Pentru a face formula noastră de potrivire mai versatilă, puteți introduce valoarea de căutare într-o celulă (E1 în acest exemplu) și puteți concatena acea celulă cu caracterul joker, astfel:
=MATCH(E1& "*", A2:A11,0)
După cum se arată în captura de ecran de mai jos, formula returnează 2, care este poziția lui "Carter":
Pentru a înlocui doar un singur caracter din valoarea de căutare, utilizați operatorul wildcard "?", astfel:
=MATCH("ba?er", A2:A11,0)
Formula de mai sus se va potrivi cu numele " Baker " și reia poziția sa relativă, care este 5.
Formula MATCH sensibilă la majuscule și minuscule
După cum s-a menționat la începutul acestui tutorial, funcția MATCH nu face distincție între caracterele majuscule și minuscule. Pentru a realiza o formulă de potrivire sensibilă la majuscule și minuscule, utilizați MATCH în combinație cu funcția EXACT, care compară celulele exact, inclusiv cazul caracterelor.
Iată formula generică care face distincție între majuscule și minuscule pentru a potrivi datele:
MATCH(TRUE, EXACT( matrice de căutare , valoarea de căutare ), 0)Formula funcționează după următoarea logică:
- Funcția EXACT compară valoarea de căutare cu fiecare element al matricei de căutare. Dacă celulele comparate sunt exact egale, funcția returnează TRUE, iar în caz contrar FALSE.
- Și apoi, funcția MATCH compară TRUE (care este lookup_value ) cu fiecare valoare din matricea returnată de EXACT și returnează poziția primei corespondențe.
Vă rugăm să rețineți că este o formulă de matrice care necesită apăsarea Ctrl + Shift + Enter pentru a fi completată corect.
Presupunând că valoarea de căutare se află în celula E1 și că matricea de căutare este A2:A9, formula este următoarea:
=MATCH(TRUE, EXACT(A2:A9,E1),0),0)
Următoarea captură de ecran prezintă formula de potrivire în funcție de majuscule și minuscule în Excel:
Comparați 2 coloane pentru concordanțe și diferențe (ISNA MATCH)
Verificarea corespondenței și a diferențelor dintre două liste este una dintre cele mai frecvente sarcini din Excel și poate fi efectuată în mai multe moduri. O formulă ISNA/MATCH este unul dintre acestea:
IF(ISNA(MATCH( Prima valoare din Lista1 , Lista2 , 0))), "Not in List 1", "")Pentru orice valoare din lista 2 care nu este prezentă în lista 1, formula returnează " Nu figurează în lista 1 ". și iată cum:
- Funcția MATCH caută o valoare din Lista 1 în cadrul Listei 2. Dacă se găsește o valoare, se returnează poziția relativă a acesteia, iar în caz contrar se produce o eroare #N/A.
- Funcția ISNA din Excel face un singur lucru - verifică dacă există erori #N/A (ceea ce înseamnă "nu este disponibil"). Dacă o anumită valoare este o eroare #N/A, funcția returnează TRUE, iar în caz contrar FALSE. În cazul nostru, TRUE înseamnă că o valoare din Lista 1 nu se găsește în Lista 2 (adică o eroare #N/A este returnată de MATCH).
- Deoarece ar putea fi foarte confuz pentru utilizatorii dvs. să vadă TRUE pentru valori care nu apar în Lista 1, înfășurați funcția IF în jurul ISNA pentru a afișa " Nu figurează în lista 1 ", sau orice alt text doriți.
De exemplu, pentru a compara valorile din coloana B cu cele din coloana A, formula are următoarea formă (unde B2 este celula cea mai de sus):
=IF(ISNA(MATCH(B2,A:A,0)), "Not in List 1", "")
După cum vă amintiți, funcția MATCH din Excel este insensibilă la majuscule și minuscule prin ea însăși. Pentru a o face să distingă cazul caracterelor, încorporați funcția EXACT în lookup_array argument, și nu uitați să apăsați Ctrl + Shift + Enter pentru a finaliza acest lucru. formula matricei :
=IF(ISNA(MATCH(TRUE, EXACT(A:A, B2),0)), "Not in List 1", "")
Următoarea captură de ecran arată ambele formule în acțiune:
Pentru a afla și alte modalități de a compara două liste în Excel, consultați următorul tutorial: Cum se compară 2 coloane în Excel.
Excel VLOOKUP și MATCH
Acest exemplu pornește de la premisa că aveți deja cunoștințe de bază despre funcția Excel VLOOKUP. Și dacă da, sunt șanse să vă fi lovit de numeroasele sale limitări (prezentarea detaliată a acestora poate fi găsită în De ce nu funcționează Excel VLOOKUP) și căutați o alternativă mai robustă.
Unul dintre cele mai enervante dezavantaje ale VLOOKUP este faptul că nu mai funcționează după inserarea sau ștergerea unei coloane dintr-un tabel de căutare. Acest lucru se întâmplă deoarece VLOOKUP extrage o valoare corespunzătoare pe baza numărului coloanei de retur pe care îl specificați (numărul de index). Deoarece coloana numărul de index este "hard-coded" în formulă, Excel nu poate să o ajusteze atunci când se adaugă sau se elimină o nouă coloană (coloane) din tabel.
Funcția Excel MATCH se ocupă cu un poziția relativă a unei valori de căutare, ceea ce o face să se potrivească perfect pentru col_index_num Cu alte cuvinte, în loc să specificați coloana de retur ca număr static, utilizați MATCH pentru a obține poziția curentă a coloanei respective.
Pentru a face lucrurile mai ușor de înțeles, să folosim din nou tabelul cu notele de la examene ale studenților (similar cu cel pe care l-am folosit la începutul acestui tutorial), dar de data aceasta vom prelua nota reală și nu poziția sa relativă.
Presupunând că valoarea de căutare se află în celula F1, că matricea tabelului este $A$1:$C$2 (este o bună practică să o blocați folosind referințe absolute la celule dacă intenționați să copiați formula în alte celule), formula este următoarea:
=VLOOKUP(F1, $A$1:$C$8, 3, FALSE)
Al treilea argument ( col_index_num ) este setat la 3, deoarece Punctaj matematică pe care dorim să o extragem este a treia coloană din tabel. După cum puteți vedea în captura de ecran de mai jos, această formulă obișnuită Vlookup funcționează bine:
Dar numai până când inserați sau ștergeți o coloană (sau coloane):
Deci, de ce apare eroarea #REF!? Pentru că col_index_num setat la 3 îi spune lui Excel să obțină o valoare din a treia coloană, în timp ce acum există doar 2 coloane în matricea tabelului.
Pentru a preveni astfel de lucruri, puteți face formula Vlookup mai dinamică prin includerea următoarei funcții Match:
MATCH(E2,A1:C1,0)
Unde:
- E2 este valoarea de căutare, care este exact egale la numele coloanei de retur, și anume coloana din care doriți să extrageți o valoare ( Punctaj matematică în acest exemplu).
- A1:C1 este matricea de căutare care conține anteturile de tabel.
Și acum, includeți această funcție Match în fișierul col_index_num argument al formulei Vlookup, astfel:
=VLOOKUP(F1,$A$1:$C$8, MATCH(E2,$A$1:$C$1, 0), FALSE)
Și asigurați-vă că funcționează impecabil, indiferent de câte coloane adăugați sau ștergeți:
În captura de ecran de mai sus, am blocat toate referințele de celulă pentru ca formula să funcționeze corect, chiar dacă utilizatorii mei o mută în alt loc din foaia de calcul. După cum puteți vedea în captura de ecran de mai jos, formula funcționează foarte bine după ștergerea unei coloane; în plus, Excel este suficient de inteligent pentru a ajusta în mod corespunzător referințele absolute în acest caz:
Excel HLOOKUP și MATCH
Într-un mod similar, puteți utiliza funcția Excel MATCH pentru a vă îmbunătăți formulele HLOOKUP. Principiul general este în esență același ca în cazul Vlookup: utilizați funcția Match pentru a obține poziția relativă a coloanei de retur și furnizați acest număr la funcția număr_index_ rând argument al formulei Hlookup.
Presupunând că valoarea de căutare se află în celula B5, că matricea tabelului este B1:H3, că numele rândului de retur (valoarea de căutare pentru MATCH) se află în celula A6 și că antetele rândurilor sunt A1:A3, formula completă este următoarea:
=HLOOKUP(B5, B1:H3, MATCH(A6, A1:A3, 0), FALSE)
După cum tocmai ați văzut, combinația Hlookup/Vlookup & Match este cu siguranță o îmbunătățire față de formulele Hlookup și Vlookup obișnuite. Cu toate acestea, funcția MATCH nu elimină toate limitările acestora. În special, o formulă Vlookup Match nu poate încă să se uite în stânga sa, iar Hlookup Match nu reușește să caute în niciun alt rând în afară de cel mai de sus.
Pentru a depăși limitările de mai sus (și alte câteva limitări), luați în considerare utilizarea unei combinații de INDEX MATCH, care oferă o modalitate cu adevărat puternică și versatilă de a face căutări în Excel, superioară Vlookup și Hlookup în multe privințe. Îndrumările detaliate și exemplele de formule pot fi găsite în INDEX & MATCH în Excel - o alternativă mai bună la VLOOKUP.
Acesta este modul în care se utilizează formulele MATCH în Excel. Sperăm că exemplele discutate în acest tutorial se vor dovedi utile în activitatea dumneavoastră. Vă mulțumesc pentru lectură și sper să ne vedem pe blog săptămâna viitoare!
Caietul de practică pentru descărcare
Exemple de formule Excel MATCH (fișier .xlsx)