Sadržaj
Ovaj vodič pokazuje kako koristiti INDEX i MATCH u Excelu i kako je bolji od VLOOKUP-a.
U nekoliko nedavnih članaka potrudili smo se objasniti osnove funkcije VLOOKUP početnicima i ponuditi složenije primjere formule VLOOKUP naprednim korisnicima. A sada ću vas pokušati, ako ne odgovoriti od korištenja VLOOKUP-a, onda vam barem pokazati alternativni način okomitog pretraživanja u Excelu.
"Što mi to treba?" možda se pitate. Budući da VLOOKUP ima brojna ograničenja koja vas mogu spriječiti da dobijete željeni rezultat u mnogim situacijama. S druge strane, kombinacija INDEX MATCH je fleksibilnija i ima mnogo izvrsnih značajki koje je čine superiornom u odnosu na VLOOKUP u mnogim aspektima.
Excel INDEX i MATCH funkcije - osnove
Budući da je cilj ovog vodiča demonstrirati alternativni način za vlookup u Excelu korištenjem kombinacije funkcija INDEX i MATCH, nećemo se puno zadržavati na njihovoj sintaksi i koristi. Obuhvatit ćemo samo minimum koji je potreban za razumijevanje opće ideje, a zatim ćemo detaljno pogledati primjere formula koji otkrivaju sve prednosti korištenja INDEX MATCH umjesto VLOOKUP-a.
Funkcija INDEX - sintaksa i upotreba
Funkcija Excel INDEX vraća vrijednost u nizu na temelju brojeva redaka i stupaca koje navedete. Sintaksa funkcije INDEX je jednostavna:
( kriterij1= raspon1) * ( kriterij2= raspon2), 0))}Napomena. Ovo je formula polja koja se mora dovršiti prečacem Ctrl + Shift + Enter.
U primjeru tablice u nastavku, pretpostavimo da želite pronaći iznos na temelju 2 kriterija, Kupac i Proizvod .
Sljedeća formula INDEX MATCH je dobra:
=INDEX(C2:C10, MATCH(1, (F1=A2:A10) * (F2=B2:B10), 0))
Gdje je C2:C10 raspon iz kojeg se vraća vrijednost, F1 je kriterij1, A2:A10 je raspon za usporedbu s kriterijem1, F2 je kriterij 2, a B2:B10 je raspon za usporedbu s kriterijem2.
Ne zaboravite unijeti formulu ispravno pritiskom na Ctrl + Shift + Enter , a Excel će ga automatski staviti u vitičaste zagrade kao što je prikazano na snimci zaslona:
Ako radije ne biste koristili formule polja u svojim radnim listovima, dodajte još jednu funkciju INDEX u formulu i dovršite je uobičajenim pogotkom Enter:
Kako ove formule rade
Formule koriste isti pristup kao osnovna funkcija INDEX MATCH koja gleda kroz jedan stupac. Za procjenu višestrukih kriterija, kreirate dva ili više nizova vrijednosti TRUE i FALSE koje predstavljaju podudaranja i nepoklapanja za svaki pojedinačni kriterij, a zatim množite odgovarajuće elemente tih nizova. Operacija množenja pretvara TRUE i FALSE u 1 odnosno 0 i proizvodi niz u kojem 1 odgovaraju recima koji odgovaraju svim kriterijima.Funkcija MATCH s vrijednošću traženja 1 pronalazi prvi "1" u nizu i prosljeđuje njegovu poziciju INDEX-u, koji vraća vrijednost u ovom retku iz navedenog stupca.
Formula bez niza oslanja se na sposobnost funkcije INDEX da nativno rukuje nizovima. Drugi INDEX je konfiguriran s 0 row_num tako da će cijeli niz stupaca proslijediti MATCH-u.
To je objašnjenje logike formule na visokoj razini. Za sve pojedinosti pogledajte Excel INDEKS MATCH s više kriterija.
Excel INDEX MATCH s AVERAGE, 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 s INDEX MATCH.
INDEX MATCH s MAX
Da biste pronašli najveću vrijednost u stupcu D i vratili vrijednost iz stupca C u isti redak, upotrijebite ovu formulu:
=INDEX(C2:C10, MATCH(MAX(D2:D10), D2:D10, 0))
INDEX MATCH s MIN
Da biste locirali najmanju vrijednost u stupcu D i izvukli pridruženu vrijednost iz stupca C, upotrijebite ovaj :
=INDEX(C2:C10, MATCH(MIN(D2:D10), D2:D10, 0))
INDEX MATCH s AVERAGE
Za izračunavanje vrijednosti najbliže prosjeku u D2:D10 i dobivanje odgovarajuće vrijednosti iz stupca C, ovo je formula koristiti:
=INDEX(C2:C10, MATCH(AVERAGE(D2:D10), D2:D10, -1 ))
Ovisno o tome kako su vaši podaci organizirani, unesite 1 ili -1 trećem argumentu (match_type) odfunkcija MATCH:
- Ako je vaš stupac pretraživanja (stupac D u našem slučaju) poredan uzlazno , stavite 1. Formula će izračunati najveću vrijednost koja je manja od ili jednako prosječnoj vrijednosti.
- Ako je vaš stupac pretraživanja poredan silazno , 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 točno jednaku prosjeku, možete unijeti 0 za točno podudaranje. Nije potrebno razvrstavanje.
U našem primjeru, populacije u stupcu D poredane su silaznim redoslijedom, tako da koristimo -1 za vrstu podudaranja. Kao rezultat, dobili smo "Tokio" jer je njegova populacija (13.189.000) najbliža populacija koja je veća od prosjeka (12.269.006).
Možda će vas zanimati da VLOOKUP također može izvoditi takve izračune, ali kao formula polja: VLOOKUP s AVERAGE, MAX, MIN.
Korištenje INDEX MATCH s IFNA / IFERROR
Kao što ste vjerojatno primijetili, ako INDEX MATCH formula u Excelu ne može pronaći traženu vrijednost, proizvodi pogrešku #N/A. Ako želite zamijeniti standardnu notaciju pogreške s nečim smislenijim, zamotajte svoju formulu INDEX MATCH u funkciju IFNA. Na primjer:
=IFNA(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "No match is found")
A sada, ako netko unese tablicu pretraživanja koja ne postoji u rasponu pretraživanja, formula će izričito obavijestiti korisnika da nema podudaranjapronađeno:
Ako želite uhvatiti sve pogreš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že biti nerazborito prikrivati sve pogreške jer vas one upozoravaju na moguće greške u vašoj formuli.
Evo kako koristiti INDEX i MATCH u Excelu. Nadam se da će vam naši primjeri formula biti od pomoći i veselimo se što ćemo vas vidjeti na našem blogu sljedeći tjedan!
Radna knjiga za vježbe za preuzimanje
Excel INDEX MATCH primjeri (.xlsx datoteka)
INDEX(array, row_num, [column_num])Ovdje je vrlo jednostavno objašnjenje svakog parametra:
- niz - raspon ćelija koje želite vratiti value from.
- row_num - broj retka 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 funkciju Excel INDEX.
A ovdje je primjer formule INDEX u najjednostavnijem obliku:
=INDEX(A1:C10,2,3)
Formula pretražuje ćelije od A1 do C10 i vraća vrijednost ćelije u 2. retku i 3. stupcu, tj. ćeliju C2.
Vrlo jednostavno, zar ne? Međutim, kada radite sa stvarnim podacima teško da biste ikada znali koji redak i stupac želite, tu je funkcija MATCH korisna.
Funkcija MATCH - sintaksa i upotreba
Funkcija MATCH programa Excel traži traženu vrijednost u rasponu ćelija i vraća relativni položaj te vrijednosti u rasponu.
Sintaksa funkcije MATCH je sljedeća:
MATCH(lookup_value , lookup_array, [match_type])- lookup_value - broj ili tekstualna vrijednost koju tražite.
- lookup_array - raspon ćelija koje pretraženo.
- match_type - određuje hoće li se vratiti točno ili najbliže podudaranje:
- 1 ili izostavljeno - pronalazi najveću vrijednost koja je manja ili jednaka vrijednosti pretraživanja. Zahtijeva sortiranje niza pretraživanja uzlaznim redoslijedom.
- 0 - pronalazi prvu vrijednost koja je točno jednaka vrijednosti pretraživanja. U kombinaciji INDEX / MATCH gotovo uvijek vam je potrebno točno podudaranje, pa postavljate treći argument vaše funkcije MATCH na 0.
- -1 - pronalazi najmanju vrijednost koja je veća ili jednaka lookup_value. Zahtijeva razvrstavanje niza pretraživanja silaznim redoslijedom.
Na primjer, ako raspon B1:B3 sadrži vrijednosti "New-York", "Pariz", "London", formula u nastavku vraća broj 3, jer je "London" treći unos u rasponu:
=MATCH("London",B1:B3,0)
Za više informacija pogledajte Excel funkciju MATCH.
Na Na prvi pogled, korisnost funkcije MATCH može se činiti upitnom. Koga briga za položaj vrijednosti u rasponu? Ono što želimo znati je sama vrijednost.
Dopustite mi da vas podsjetim da je relativna pozicija vrijednosti pretraživanja (tj. brojeva redaka i stupaca) upravo ono što trebate unijeti u row_num i column_num argumenti funkcije INDEX. Kao što se sjećate, Excel INDEX može pronaći vrijednost na spoju određenog retka i stupca, ali ne može odrediti koji točno redak i stupac želite.
Kako koristiti funkciju INDEX MATCH u Excelu
Sada kada znate osnove, vjerujem da jestveć počeo shvaćati kako MATCH i INDEX rade zajedno. Ukratko, INDEX pronalazi traženu vrijednost prema brojevima stupaca i redaka, a MATCH daje te brojeve. To je to!
Za okomito pretraživanje, koristite funkciju MATCH samo za određivanje broja retka i dostavljanje raspona stupaca izravno u INDEX:
INDEX ( stupac za vraćanje vrijednosti iz, MATCH ( vrijednost traženja, stupac za traženje, 0))I dalje imate poteškoća da to shvatite? Moglo bi se lakše razumjeti iz primjera. Pretpostavimo da imate popis nacionalnih prijestolnica i njihovog stanovništva:
Da biste pronašli stanovništvo određenog glavnog grada, recimo glavnog grada Japana, upotrijebite sljedeću formulu INDEX MATCH:
=INDEX(C2:C10, MATCH("Japan", A2:A10, 0))
A sada, analizirajmo što svaka komponenta ove formule zapravo radi:
- Funkcija MATCH traži vrijednost pretraživanja "Japan" u rasponu A2: A10, i vraća broj 3, jer je "Japan" treći u nizu pretraživanja.
- Broj retka ide izravno u row_num argument INDEX-a dajući mu upute da vrati vrijednost iz tog redak.
Dakle, gornja se formula pretvara u jednostavan INDEX(C2:C,3) koji kaže da pretražite ćelije od C2 do C10 i povučete vrijednost iz 3. ćelije u tom rasponu, tj. C4 jer počinjemo brojati od drugog retka.
Ne želite čvrsto kodirati grad u formuli? Unesite ga u neku ćeliju, recimo F1, opskrbite ćelijureferenca na MATCH, i dobit ćete formulu dinamičkog pretraživanja:
=INDEX(C2:C10, MATCH(F1,A2:A10,0))
Važna napomena! Broj redaka u array argument od INDEX treba odgovarati broju redaka u lookup_array argumentu od MATCH, inače će formula dati netočan rezultat.
Čekaj, čekaj… zašto ne Zar jednostavno ne koristimo sljedeću Vlookup formulu? Koja je svrha gubljenja vremena pokušavajući shvatiti tajanstvene preokrete Excel MATCH INDEX-a?
=VLOOKUP(F1, A2:C10, 3, FALSE)
U ovom slučaju, nema smisla :) Ovaj jednostavan primjer je samo u svrhu demonstracije, tako da dobijete osjećaj kako funkcije INDEX i MATCH rade zajedno. Drugi primjeri koji slijede u nastavku pokazat će vam stvarnu snagu ove kombinacije koja se lako nosi s mnogim složenim scenarijima kada VLOOKUP zapne.
Savjeti:
- U Excelu 365 i Excelu 2021, može koristiti moderniju formulu INDEX XMATCH.
- Za Google tablice, pogledajte primjere formula s INDEX MATCH u ovom članku.
INDEX MATCH u odnosu na VLOOKUP
Kada odlučujući koju će funkciju koristiti za vertikalno traženje, većina Excel gurua slaže se da je INDEX MATCH daleko bolji od VLOOKUP-a. Međutim, mnogi ljudi i dalje ostaju uz VLOOKUP, prvo zato što je jednostavniji, a drugo zato što ne razumiju u potpunosti sve prednosti korištenja formule INDEX MATCH u Excelu. Bez takvog razumijevanja nitko nije spreman uložiti svoje vrijeme u učenjesloženiju sintaksu.
U nastavku ću istaknuti ključne prednosti MATCH INDEX-a u odnosu na VLOOKUP, a vi odlučite je li to vrijedan dodatak vašem Excel arsenalu.
4 glavna razloga za korištenje INDEX MATCH umjesto VLOOKUP-a
- Traženje zdesna nalijevo. Kao što svaki obrazovani korisnik zna, VLOOKUP ne može gledati lijevo, što znači da bi vaša vrijednost pretraživanja uvijek trebala biti u krajnjem lijevom stupcu stol. INDEX MATCH može s lakoćom tražiti lijevo! Sljedeći primjer pokazuje to na djelu: Kako VLOOKUP vrijednost lijevo u Excelu.
- Sigurno umetanje ili brisanje stupaca. VLOOKUP formule se kvare ili daju netočne rezultate kada je novi stupac izbrisani ili dodani u tablicu pretraživanja jer VLOOKUP-ova sintaksa zahtijeva navođenje broja indeksa stupca iz kojeg želite povući podatke. Naravno, kada dodate ili izbrišete stupce, indeksni broj se mijenja.
S INDEX MATCH navodite raspon povratnog stupca, a ne broj indeksa. Kao rezultat toga, slobodni ste umetati i uklanjati onoliko stupaca koliko želite bez brige o ažuriranju svake povezane formule.
- Nema ograničenja za veličinu vrijednosti pretraživanja. Kada koristite funkciju VLOOKUP, ukupna duljina vaših kriterija pretraživanja ne smije premašiti 255 znakova, inače ćete imati #VALUE ! greška. Dakle, ako vaš skup podataka sadrži dugačke nizove, jedino funkcionira INDEX MATCHrješenje.
- Veća brzina obrade. Ako su vaše tablice relativno male, teško da će biti značajne razlike u performansama programa Excel. Ali ako vaši radni listovi sadrže stotine ili tisuće redaka, a posljedično i stotine ili tisuće formula, MATCH INDEX će raditi mnogo brže od VLOOKUP-a jer će Excel morati obraditi samo stupce za traženje i povrat, a ne cijeli niz tablice.
Utjecaj VLOOKUP-a na izvedbu Excela može biti posebno uočljiv ako vaša radna knjiga sadrži složene formule polja kao što su VLOOKUP i SUM. Radi se o tome 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 polja imate u radnoj knjizi, to Excel radi sporije.
EXCEL INDEX MATCH - primjeri formula
Poznavanje razloga da naučite funkciju MATCH INDEX, prijeđimo na najzanimljiviji dio i vidimo kako teoretsko znanje možete primijeniti u praksi.
FORMULA INDEX MATCH za gledanje s desna na lijevo
Kao već spomenuto, VLOOKUP ne može gledati lijevo. Dakle, osim ako su vaše vrijednosti traženja krajnji lijevi stupac, nema šanse da će vam Vlookup formula donijeti rezultat koji želite. Funkcija INDEX MATCH u Excelu je svestranija i zapravo je ne zanima gdje se nalaze stupci pretraživanja i povrata.
Za ovaj primjer,dodat ćemo stupac Rang lijevo od naše tablice uzorka i pokušati shvatiti kako je ruski glavni grad, Moskva, rangiran u smislu broja stanovnika.
S vrijednošću pretraživanja u G1, upotrijebite sljedeću formulu za pretraživanje u C2:C10 i vrati odgovarajuću vrijednost iz A2:A10:
=INDEX(A2:A10,MATCH(G1,C2:C10,0))
Savjet. Ako svoju formulu INDEX MATCH planirate koristiti za više od jedne ćelije, obavezno zaključajte oba raspona s apsolutnim referencama ćelije (kao što su $A$2:$A$10 i $C$2:4C$10) kako se ne bi iskrivila kada kopiranje formule.
INDEX MATCH MATCH za pretraživanje u recima i stupcima
U gornjim primjerima koristili smo INDEX MATCH kao zamjenu za klasični VLOOKUP za vraćanje vrijednosti iz unaprijed definiranog jednog stupca domet. Ali što ako trebate tražiti u više redaka i stupaca? Drugim riječima, što ako želite izvesti takozvanu matricu ili dvosmjernu pretragu?
Ovo može zvučati lukavo, ali formula je vrlo slična osnovnoj Excel funkciji INDEX MATCH, sa samo jednom razlikom. Pogodite što?
Jednostavno, upotrijebite dvije funkcije MATCH – jednu za dobivanje broja retka, a drugu za dobivanje broja stupca. I čestitam onima od vas koji ste dobro pogodili :)
INDEX (niz, MATCH ( vlookup vrijednost, kolona za traženje, 0), MATCH ( hlookup vrijednost, redak za traženje u odnosu na, 0))A sada, pogledajte donju tablicu i napravimo INDEX MATCH MATCHformula za pronalaženje stanovništva (u milijunima) u određenoj zemlji za određenu godinu.
S ciljnom zemljom u G1 (vrijednost vlookupa) i ciljnom godinom u G2 (vrijednost hlookupa), formula ima 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 što radi svaka pojedinačna funkcija:
MATCH(G1,A2:A11,0)
– traži kroz A2:A11 vrijednost u ćeliji G1 ("Kina") i vraća njen položaj, koji je 2.
MATCH(G2,B1:D1,0))
– traži kroz B1:D1 da biste dobili poziciju vrijednosti u ćeliji G2 ("2015"), koja je 3.
Gornji brojevi redaka i stupaca idu na odgovarajuće argumente funkcije INDEX:
INDEX(B2:D11, 2, 3)
Kao rezultat, dobivate vrijednost na sjecištu 2. retka i 3. stupca u rasponu B2:D11, što je vrijednost u ćeliji D3. Lako? Da!
Excel INDEX MATCH za traženje više kriterija
Ako ste imali priliku pročitati naš vodič za Excel VLOOKUP, vjerojatno ste već testirali formulu za Vlookup s više kriterija. Međutim, značajno ograničenje tog pristupa je potreba za dodavanjem pomoćnog stupca. Dobra vijest je da Excelova funkcija INDEX MATCH također može tražiti s dva ili više kriterija, bez izmjene ili restrukturiranja vaših izvornih podataka!
Ovdje je generička formula INDEX MATCH s više kriterija:
{=INDEX( povratni_raspon, MATCH(1,