Excel INDEX MATCH vs. VLOOKUP - primjeri formule

  • Podijeli Ovo
Michael Brown

Ovaj vodič pokazuje kako koristiti INDEX i MATCH u Excelu i kako je to bolje od VLOOKUP-a.

U nekoliko nedavnih članaka, potrudili smo se da objasnimo osnove funkcije VLOOKUP početnicima i pružimo složenije primjere VLOOKUP formula za napredne korisnike. A sada ću pokušati ako ne da vas odvratim od korištenja VLOOKUP-a, a onda vam barem pokazati alternativni način za vertikalno traženje u Excel-u.

"Šta mi to treba?" možete se pitati. Jer VLOOKUP ima brojna ograničenja koja vas mogu spriječiti da postignete željeni rezultat u mnogim situacijama. S druge strane, kombinacija INDEX MATCH je fleksibilnija i ima mnogo sjajnih karakteristika koje je čine superiornom u odnosu na VLOOKUP u mnogim aspektima.

    Excel INDEX i MATCH funkcije - osnove

    S obzirom da je cilj ovog vodiča demonstrirati alternativni način da se izvrši vlookup u Excelu korištenjem kombinacije funkcija INDEX i MATCH, nećemo se puno zadržavati na njihovoj sintaksi i koristi. Pokrićemo samo minimum potreban za razumijevanje opće ideje, a zatim ćemo detaljnije pogledati primjere formula koji otkrivaju sve prednosti korištenja INDEX MATCH umjesto VLOOKUP.

    funkcija INDEX - sintaksa i upotreba

    Excel funkcija INDEX vraća vrijednost u nizu na osnovu brojeva redaka i stupaca koje navedete. Sintaksa funkcije INDEX je jednostavna:

    ( kriterijum1= opseg1) * ( kriterijum2= opseg2), 0))}

    Napomena. Ovo je formula polja koja se mora popuniti prečicom Ctrl + Shift + Enter.

    U donjoj tabeli uzorka, pod pretpostavkom da želite pronaći iznos na osnovu 2 kriterija, Kupac i Proizvod .

    Sljedeća formula INDEX MATCH radi kao poslastica:

    =INDEX(C2:C10, MATCH(1, (F1=A2:A10) * (F2=B2:B10), 0))

    Gdje je C2:C10 raspon za vraćanje vrijednosti, F1 je kriterij1, A2:A10 je raspon za poređenje sa kriterijem1, F2 je kriterij 2, a B2:B10 je raspon za poređenje sa kriterijem2.

    Ne zaboravite da pravilno unesete formulu pritiskom na Ctrl + Shift + Enter , a Excel će ga automatski zatvoriti vitičastim zagradama kao što je prikazano na snimku ekrana:

    Ako ne želite koristiti formule niza u svojim radnim listovima, dodajte još jednu funkciju INDEX u formulu i dovršite je uobičajenim pritiskom Enter:

    Kako ove formule rade

    Formule koriste isti pristup kao osnovna funkcija INDEX MATCH koja gleda kroz jednu kolonu. Da biste procijenili više kriterija, kreirate dva ili više nizova vrijednosti TRUE i FALSE koji predstavljaju podudaranja i nepodudaranja za svaki pojedinačni kriterij, a zatim množite odgovarajuće elemente ovih nizova. Operacija množenja pretvara TRUE i FALSE u 1 i 0, respektivno, i proizvodi niz u kojem 1 odgovara redovima koji odgovaraju svim kriterijima.Funkcija MATCH sa vrijednošću pretraživanja 1 pronalazi prvu "1" u nizu i prosljeđuje njenu poziciju INDEX, koji vraća vrijednost u ovom redu iz navedenog stupca.

    Formula koja nije niz se oslanja na sposobnost funkcije INDEX da nativno rukuje nizovima. Drugi INDEX je konfiguriran sa 0 broj_reda tako da će proslijediti cijeli niz stupaca u MATCH.

    To je objašnjenje logike formule na visokom nivou. Za potpune detalje, pogledajte Excel INDEX MATCH s više kriterija.

    Excel INDEX MATCH sa PROSJEKOM, MAX, MIN

    Microsoft Excel ima posebne funkcije za pronalaženje minimalne, maksimalne i prosječne vrijednosti u domet. Ali što ako trebate dobiti vrijednost iz druge ćelije koja je povezana s tim vrijednostima? U ovom slučaju koristite funkciju MAX, MIN ili AVERAGE zajedno sa INDEX MATCH.

    INDEX MATCH sa MAX

    Da biste pronašli najveću vrijednost u stupcu D i vratili vrijednost iz stupca C u isti red, koristite ovu formulu:

    =INDEX(C2:C10, MATCH(MAX(D2:D10), D2:D10, 0))

    INDEX MATCH sa MIN

    Da biste locirali najmanju vrijednost u koloni D i izvukli pridruženu vrijednost iz stupca C, koristite ovu :

    =INDEX(C2:C10, MATCH(MIN(D2:D10), D2:D10, 0))

    Podudaranje INDEKSA sa PROSJEKOM

    Da biste izračunali vrijednost najbližu prosjeku u D2:D10 i dobili odgovarajuću vrijednost iz stupca C, ovo je formula koristiti:

    =INDEX(C2:C10, MATCH(AVERAGE(D2:D10), D2:D10, -1 ))

    U zavisnosti od toga kako su vaši podaci organizirani, dostavite ili 1 ili -1 trećem argumentu (match_type)funkcija MATCH:

    • Ako je vaša kolona za pretraživanje (kolona D u našem slučaju) sortirana uzlazno , stavite 1. Formula će izračunati najveću vrijednost koja je manja od ili jednako prosječnoj vrijednosti.
    • Ako je vaša kolona za pretraživanje sortirana padajući , unesite -1. Formula će izračunati najmanju vrijednost koja je veća od ili jednaka prosječnoj vrijednosti.
    • Ako vaš niz pretraživanja sadrži vrijednost tačno jednaku prosjeku, vi možete unijeti 0 za tačno podudaranje. Nije potrebno sortiranje.

    U našem primjeru, populacije u koloni D su sortirane u opadajućem redoslijedu, tako da koristimo -1 za tip podudaranja. Kao rezultat, dobijamo "Tokio" jer je njegova populacija (13.189.000) najbliža koja je veća od prosjeka (12.269.006).

    Možda ćete biti znatiželjni da znate da VLOOKUP može izvesti i takve proračune, ali kao formulu niza: VLOOKUP sa AVERAGE, MAX, MIN.

    Korišćenje INDEX MATCH sa IFNA / IFERROR

    Kao što ste vjerovatno primijetili, ako se INDEX MATCH formula u Excelu ne može pronaći traženu vrijednost, proizvodi grešku #N/A. Ako želite zamijeniti standardnu ​​notaciju greške nečim značajnijim, umotajte svoju formulu INDEX MATCH u funkciju IFNA. Na primjer:

    =IFNA(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "No match is found")

    I sada, ako neko unese tabelu pretraživanja koja ne postoji u rasponu pretraživanja, formula će eksplicitno obavijestiti korisnika da nema podudaranjapronađeno:

    Ako želite uhvatiti sve greške, ne samo #N/A, koristite funkciju IFERROR umjesto IFNA:

    =IFERROR(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Oops, something went wrong!")

    Imajte na umu da u mnogim situacijama možda nije mudro prikrivati ​​sve greške jer vas one upozoravaju na moguće greške u vašoj formuli.

    Tako koristite INDEX i MATCH u Excelu. Nadam se da će vam se naši primjeri formula pokazati od pomoći i radujemo se što ćemo vas vidjeti na našem blogu sljedeće sedmice!

    Vježbanje za preuzimanje

    Excel INDEX MATCH primjeri (.xlsx datoteka)

    INDEX(niz, broj_reda, [broj_stupca])

    Evo vrlo jednostavnog objašnjenja svakog parametra:

    • niz - raspon ćelija za koje želite da vratite vrijednost od.
    • broj_reda - broj reda u nizu iz kojeg želite vratiti vrijednost. Ako je izostavljen, stupac_num je obavezan.
    • column_num - broj stupca u nizu iz kojeg želite vratiti vrijednost. Ako je izostavljen, row_num je obavezan.

    Za više informacija, pogledajte Excel funkciju INDEX.

    A evo primjera formule INDEX u njenom najjednostavnijem obliku:

    =INDEX(A1:C10,2,3)

    Formula pretražuje ćelije A1 do C10 i vraća vrijednost ćelije u 2. redu i 3. koloni, tj. ćeliji C2.

    Vrlo jednostavno, zar ne? Međutim, kada radite sa stvarnim podacima, teško da biste ikada znali koji red i stupac želite, tu nam je zgodna funkcija MATCH.

    funkcija MATCH - sintaksa i upotreba

    Excel funkcija MATCH traži traženu vrijednost u rasponu ćelija i vraća relativnu poziciju te vrijednosti u rasponu.

    Sintaksa funkcije MATCH je sljedeća:

    MATCH(vrijednost_lookupa , lookup_array, [match_type])
    • lookup_value - broj ili tekstualna vrijednost koju tražite.
    • lookup_array - raspon ćelija koji se pretraživano.
    • tip_podudaranja - određuje hoće li se vratiti točno ili najbliže podudaranje:
      • 1 ili izostavljen - pronalazi najveću vrijednost koja je manja ili jednaka vrijednosti pretraživanja. Zahtijeva sortiranje niza pretraživanja u rastućem redoslijedu.
      • 0 - pronalazi prvu vrijednost koja je točno jednaka vrijednosti pretraživanja. U kombinaciji INDEX / MATCH vam je gotovo uvijek potrebno točno podudaranje, tako da postavljate treći argument vaše funkcije MATCH na 0.
      • -1 - pronalazi najmanju vrijednost koja je veća ili jednaka lookup_value. Zahtijeva sortiranje niza pretraživanja u opadajućem redoslijedu.

    Na primjer, ako raspon B1:B3 sadrži vrijednosti "New-York", "Paris", "London", donja formula vraća broj 3, jer je "London" treći unos u rasponu:

    =MATCH("London",B1:B3,0)

    Za više informacija pogledajte funkciju Excel MATCH.

    Na Na prvi pogled, korisnost funkcije MATCH može izgledati upitno. Koga briga za poziciju vrijednosti u rasponu? Ono što želimo da znamo je sama vrijednost.

    Dozvolite mi da vas podsjetim da je relativna pozicija tražene vrijednosti (tj. brojevi redova i stupaca) upravo ono što trebate dostaviti red_num i broj_stupca argumenti funkcije INDEX. Kao što se sjećate, Excel INDEX može pronaći vrijednost na spoju datog reda i stupca, ali ne može odrediti koji točno red i stupac želite.

    Kako koristiti funkciju INDEX MATCH u Excelu

    Sada kada znate osnove, vjerujem da jesteveć je počeo da shvata kako MATCH i INDEX rade zajedno. Ukratko, INDEX pronalazi traženu vrijednost prema brojevima kolona i redova, a MATCH pruža te brojeve. To je to!

    Za vertikalno traženje, koristite funkciju MATCH samo da odredite broj reda i dostavite raspon stupaca direktno u INDEX:

    INDEX ( kolona za vraćanje vrijednosti iz, MATCH ( vrijednost traženja, kolona za traženje, 0))

    I dalje imate poteškoća da to shvatite? Možda je lakše razumjeti na primjeru. Pretpostavimo da imate listu nacionalnih glavnih gradova i njihovu populaciju:

    Da biste pronašli stanovništvo određenog glavnog grada, recimo glavnog grada Japana, koristite sljedeću formulu INDEX MATCH:

    =INDEX(C2:C10, MATCH("Japan", A2:A10, 0))

    Sada, hajde da analiziramo šta svaka komponenta ove formule zapravo radi:

    • Funkcija MATCH traži traženu vrijednost "Japan" u rasponu A2: A10, i vraća broj 3, jer je "Japan" treći u nizu pretraživanja.
    • Broj reda ide direktno u row_num argument INDEX-a i upućuje ga da vrati vrijednost iz tog row.

    Dakle, gornja formula se pretvara u jednostavan INDEX(C2:C,3) koji kaže da se traži u ćelijama C2 do C10 i povuče vrijednost iz 3. ćelije u tom rasponu, tj. C4 jer počinjemo brojati od drugog reda.

    Ne želite tvrditi kodiranje grada u formuli? Unesite ga u neku ćeliju, recimo F1, opskrbite ćelijureferencu na MATCH i dobićete formulu za dinamičko traženje:

    =INDEX(C2:C10, MATCH(F1,A2:A10,0))

    Važna napomena! Broj redova u array argument INDEX bi trebao odgovarati broju redova u lookup_array argumentu MATCH, inače će formula dati netačan rezultat.

    Čekaj, čekaj... zašto ne zar jednostavno ne koristimo sljedeću Vlookup formulu? Koja je svrha gubiti vrijeme pokušavajući otkriti tajanstvene zaokrete Excel MATCH INDEX-a?

    =VLOOKUP(F1, A2:C10, 3, FALSE)

    U ovom slučaju, nema smisla :) Ovaj jednostavan primjer služi samo u svrhu demonstracije, tako da steknete osjećaj kako funkcije INDEX i MATCH rade zajedno. Drugi primjeri koji slijede ispod pokazat će vam pravu snagu ove kombinacije koja se lako nosi s mnogim složenim scenarijima kada VLOOKUP posrne.

    Savjeti:

    • U Excel 365 i Excel 2021, vi može koristiti moderniju formulu INDEX XMATCH.
    • Za Google Sheets, pogledajte primjere formula sa INDEX MATCH u ovom članku.

    INDEX MATCH naspram VLOOKUP

    Kada odlučujući koju funkciju koristiti za vertikalno traženje, većina Excel gurua se slaže da je INDEX MATCH daleko bolji od VLOOKUP-a. Međutim, mnogi ljudi i dalje ostaju na VLOOKUP-u, prvo zato što je jednostavniji i, drugo, zato što ne razumiju u potpunosti sve prednosti korištenja formule INDEX MATCH u Excelu. Bez takvog razumijevanja niko nije voljan uložiti svoje vrijeme u učenjesloženiju sintaksu.

    U nastavku ću ukazati na ključne prednosti MATCH INDEX-a u odnosu na VLOOKUP, a vi odlučite da li je dostojan dodatak vašem Excel arsenalu.

    4 glavna razloga za korištenje INDEX MATCH umjesto VLOOKUP

    1. Traženje zdesna na lijevo. Kao što svaki obrazovani korisnik zna, VLOOKUP ne može gledati lijevo, što znači da vaša vrijednost pretraživanja treba uvijek biti u krajnjoj lijevoj koloni stol. INDEX MATCH može lako tražiti lijevo! Sljedeći primjer to pokazuje na djelu: Kako provjeriti vrijednost lijevo u Excelu.
    2. Sigurno umetnite ili izbrišite stupce. VLOOKUP formule se pokvare ili isporučuju netačne rezultate kada se pojavi nova kolona obrisan iz ili dodan u tabelu za traženje jer sintaksa VLOOKUP-a zahteva navođenje indeksnog broja kolone iz koje želite da izvučete podatke. Naravno, kada dodate ili izbrišete kolone, broj indeksa se mijenja.

      Sa INDEX MATCH, specificirate opseg povratne kolone, a ne broj indeksa. Kao rezultat toga, slobodni ste da umetnete i uklonite onoliko kolona koliko želite bez brige o ažuriranju svake povezane formule.

    3. Nema ograničenja za veličinu tražene vrijednosti. Kada koristite funkciju VLOOKUP, ukupna dužina vaših kriterija pretraživanja ne može biti veća od 255 znakova, inače ćete na kraju imati #VALUE ! greška. Dakle, ako vaš skup podataka sadrži duge nizove, INDEX MATCH je jedini koji radirješenje.
    4. Veća brzina obrade. Ako su vaše tablice relativno male, teško da će biti značajne razlike u performansama Excela. Ali ako vaši radni listovi sadrže stotine ili hiljade redova, a time i stotine ili hiljade formula, MATCH INDEX će raditi mnogo brže od VLOOKUP-a jer će Excel morati obraditi samo kolone za traženje i vraćanje, a ne cijeli niz tablice.

      Uticaj VLOOKUP-a na performanse Excel-a može biti posebno uočljiv ako vaša radna sveska sadrži složene formule niza kao što su VLOOKUP i SUM. Poenta je da provjera svake vrijednosti u nizu zahtijeva poseban poziv funkcije VLOOKUP. Dakle, što više vrijednosti sadrži vaš niz i što više formula niza imate u radnoj knjizi, Excel će raditi sporije.

    Excel INDEX MATCH - primjeri formule

    Poznavanje razlozi za učenje funkcije MATCH INDEX, hajdemo do najzanimljivijeg dijela i vidjeti kako možete primijeniti teoretsko znanje u praksi.

    INDEX MATCH formula za gledanje s desna na lijevo

    Kao već spomenuto, VLOOKUP ne može gledati lijevo. Dakle, osim ako vaše vrijednosti pretraživanja nisu krajnja lijeva kolona, ​​nema šanse da će vam Vlookup formula donijeti željeni rezultat. Funkcija INDEX MATCH u Excelu je svestranija i nije je baš briga gdje se nalaze kolone za traženje i povrat.

    Za ovaj primjer,mi ćemo dodati stupac Rang lijevo od naše tabele uzorka i pokušati otkriti kako se ruski glavni grad, Moskva, rangira u smislu stanovništva.

    Sa vrijednošću pretraživanja u G1, koristite sljedeću formulu za pretraživanje u C2:C10 i vratite odgovarajuću vrijednost iz A2:A10:

    =INDEX(A2:A10,MATCH(G1,C2:C10,0))

    Savjet. Ako planirate da koristite formulu INDEX MATCH za više od jedne ćelije, obavezno zaključajte oba raspona apsolutnim referencama ćelija (kao što su $A$2:$A$10 i $C$2:4C$10) kako se ne bi izobličili kada kopiranje formule.

    INDEX MATCH MATCH za pretraživanje u redovima i stupcima

    U gornjim primjerima, koristili smo INDEX MATCH kao zamjenu za klasični VLOOKUP za vraćanje vrijednosti iz unaprijed definirane jedne kolone domet. Ali šta ako trebate tražiti u više redova i kolona? Drugim riječima, što ako želite izvesti takozvano matrix ili dvosmjerno traženje?

    Ovo može zvučati nezgodno, ali formula je vrlo slična na osnovnu Excel funkciju INDEX MATCH, sa samo jednom razlikom. Pogodite što?

    Jednostavno, koristite dvije funkcije MATCH – jednu da dobijete broj reda, a drugu da dobijete broj stupca. I čestitam onima od vas koji su dobro pogodili :)

    INDEX (niz, MATCH ( vlookup value, kolona za traženje, 0), MATCH ( hlookup value, red za traženje, 0))

    A sada, pogledajte donju tabelu i hajde da napravimo INDEX MATCH MACHformula za pronalaženje stanovništva (u milionima) u datoj zemlji za datu godinu.

    Sa ciljnom zemljom u G1 (vrijednost vlookupa) i ciljnom godinom u G2 (vrijednost pretraživanja), formula poprima ovaj oblik :

    =INDEX(B2:D11, MATCH(G1,A2:A11,0), MATCH(G2,B1:D1,0))

    Kako ova formula funkcionira

    Kad god trebate razumjeti složenu Excel formulu, rastavite je na manje dijelove i pogledajte šta svaka pojedinačna funkcija radi:

    MATCH(G1,A2:A11,0) – traži kroz A2:A11 vrijednost u ćeliji G1 ("Kina") i vraća njenu poziciju, a to je 2.

    MATCH(G2,B1:D1,0)) – pretražuje B1:D1 da dobijete poziciju vrijednosti u ćeliji G2 ("2015"), a to je 3.

    Goreni brojevi redaka i stupaca idu na odgovarajuće argumente funkcije INDEX:

    INDEX(B2:D11, 2, 3)

    Kao rezultat, dobijate vrednost na preseku 2. reda i 3. kolone u opsegu B2:D11, što je vrednost u ćeliji D3. Lako? Da!

    Excel INDEX MATCH za traženje više kriterijuma

    Ako ste imali priliku da pročitate naš vodič za Excel VLOOKUP, verovatno ste već testirali formulu za Vlookup sa više kriterijuma. Međutim, značajno ograničenje tog pristupa je neophodnost dodavanja pomoćne kolone. Dobra vijest je da Excelova funkcija INDEX MATCH može tražiti i sa dva ili više kriterija, bez modifikacije ili restrukturiranja vaših izvornih podataka!

    Evo generičke formule INDEX MATCH s više kriterija:

    {=INDEX( opseg_povrata, MATCH(1,

    Michael Brown je posvećen tehnološki entuzijasta sa strašću za pojednostavljenje složenih procesa pomoću softverskih alata. Sa više od decenije iskustva u tehnološkoj industriji, usavršio je svoje vještine u Microsoft Excelu i Outlooku, kao i Google Sheets i Docs. Michaelov blog je posvećen dijeljenju svog znanja i stručnosti s drugima, pružajući jednostavne savjete i tutorijale za poboljšanje produktivnosti i efikasnosti. Bilo da ste iskusni profesionalac ili početnik, Michaelov blog nudi vrijedne uvide i praktične savjete za izvlačenje maksimuma iz ovih osnovnih softverskih alata.