Excel INDEX MATCH vs. VLOOKUP - primeri formul

  • Deliti To
Michael Brown

V tem učbeniku je prikazano, kako v Excelu uporabljati INDEX in MATCH ter kako je boljši od VLOOKUP.

V nekaj nedavnih člankih smo se potrudili začetnikom razložiti osnove funkcije VLOOKUP, izkušenim uporabnikom pa ponuditi bolj zapletene primere formul VLOOKUP. Zdaj pa vam bom poskušal, če že ne odvrniti uporabo funkcije VLOOKUP, vam vsaj pokazati alternativni način za izvedbo navpičnega iskanja v Excelu.

"Za kaj to potrebujem?" se morda sprašujete. Ker ima VLOOKUP številne omejitve, zaradi katerih v številnih primerih ne morete doseči želenega rezultata. Po drugi strani je kombinacija INDEX MATCH bolj prilagodljiva in ima številne odlične funkcije, zaradi katerih je v številnih pogledih boljša od kombinacije VLOOKUP.

    Excelovi funkciji INDEX in MATCH - osnove

    Ker je cilj tega učbenika prikazati alternativni način za izvedbo vlookup v Excelu z uporabo kombinacije funkcij INDEX in MATCH, se ne bomo veliko ukvarjali z njuno sintakso in uporabo. Obravnavali bomo le najmanj, kar je potrebno za razumevanje splošne ideje, nato pa si bomo podrobno ogledali primere formul, ki razkrivajo vse prednosti uporabe INDEX MATCH namesto VLOOKUP.

    Funkcija INDEX - sintaksa in uporaba

    Excelova funkcija INDEX vrne vrednost v polju na podlagi številk vrstic in stolpcev, ki jih določite. Sintaksa funkcije INDEX je preprosta:

    INDEX(polje, številka vrstice, [številka stolpca])

    Tukaj je zelo preprosta razlaga posameznih parametrov:

    • polje - obseg celic, iz katerih želite vrniti vrednost.
    • vrstica_številka - številka vrstice v polju, iz katerega želite vrniti vrednost. Če je izpuščena, je potrebna številka stolpca.
    • številka_stolpca - številka stolpca v polju, iz katerega želite vrniti vrednost. Če je izpuščena, je potrebna številka vrstice_num.

    Za več informacij glejte Excelovo funkcijo INDEX.

    Tukaj je primer formule INDEX v najpreprostejši obliki:

    =INDEX(A1:C10,2,3)

    Formula išče v celicah od A1 do C10 in vrne vrednost celice v 2. vrstici in 3. stolpcu, tj. celice C2.

    Zelo preprosto, kajne? Vendar pri delu z resničnimi podatki skoraj nikoli ne veste, katero vrstico in stolpec želite, zato vam pride prav funkcija MATCH.

    Funkcija MATCH - sintaksa in uporaba

    Excelova funkcija MATCH išče iskano vrednost v območju celic in vrne relativni položaj te vrednosti v razponu.

    Sintaksa funkcije MATCH je naslednja:

    MATCH(lookup_value, lookup_array, [match_type])
    • lookup_value - številko ali besedilno vrednost, ki jo iščete.
    • lookup_array - območje celic, po katerih se išče.
    • match_type - določa, ali naj se vrne natančno ujemanje ali najbližje ujemanje:
      • 1 ali izpuščeno - poišče največjo vrednost, ki je manjša ali enaka vrednosti iskanja. Zahteva razvrščanje polja iskanja v naraščajočem vrstnem redu.
      • 0 - poišče prvo vrednost, ki je natančno enaka vrednosti iskanja. V kombinaciji INDEX / MATCH skoraj vedno potrebujete natančno ujemanje, zato tretji argument funkcije MATCH nastavite na 0.
      • -1 - poišče najmanjšo vrednost, ki je večja ali enaka vrednosti lookup_value. Zahteva razvrščanje polja lookup v padajočem vrstnem redu.

    Če na primer območje B1:B3 vsebuje vrednosti "New-York", "Paris", "London", spodnja formula vrne število 3, ker je "London" tretji vnos v območju:

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

    Za več informacij glejte Excelovo funkcijo MATCH.

    Na prvi pogled se zdi uporabnost funkcije MATCH vprašljiva. Koga zanima položaj vrednosti v območju? Kar želimo vedeti, je sama vrednost.

    Naj vas spomnim, da je relativni položaj vrednosti iskanja (tj. številke vrstic in stolpcev) točno to, kar morate posredovati programu vrstica_številka in . številka_stolpca Kot se spomnite, lahko Excelov INDEX poišče vrednost na stičišču določene vrstice in stolpca, ne more pa določiti, katero natančno vrstico in stolpec želite.

    Kako uporabljati funkcijo INDEX MATCH v Excelu

    Zdaj, ko poznate osnove, verjamem, da je že jasno, kako MATCH in INDEX delujeta skupaj. Na kratko, INDEX poišče vrednost iskanja s številkami stolpcev in vrstic, MATCH pa zagotovi te številke. To je to!

    Pri navpičnem iskanju uporabite funkcijo MATCH samo za določitev številke vrstice, razpon stolpcev pa posredujete neposredno funkciji INDEX:

    INDEX ( stolpec za vračanje vrednosti iz , MATCH ( vrednost iskanja , stolpec za pogled navzgor proti , 0))

    Še vedno imate težave z razumevanjem tega? Morda bo lažje razumeti na primeru. Predpostavimo, da imate seznam glavnih mest držav in njihovih prebivalcev:

    Če želite ugotoviti število prebivalcev določenega glavnega mesta, na primer glavnega mesta Japonske, uporabite naslednjo formulo INDEX MATCH:

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

    Zdaj pa analizirajmo, kaj dejansko počne vsaka sestavina te formule:

    • Funkcija MATCH išče iskano vrednost "Japan" v območju A2:A10 in vrne število 3, ker je "Japan" tretja v polju iskanja.
    • Številka vrstice je neposredno povezana z vrstica_številka argumenta INDEX, ki mu naroča, naj vrne vrednost iz te vrstice.

    Zgornja formula se torej spremeni v preprosto INDEX(C2:C,3), ki pravi, da je treba iskati v celicah od C2 do C10 in potegniti vrednost iz tretje celice v tem območju, tj. C4, ker začnemo šteti od druge vrstice.

    Ne želite v formulo natrdo vnesti mesta? Vnesite ga v kakšno celico, na primer F1, podajte referenco na celico za MATCH in dobili boste dinamično formulo za iskanje:

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

    Pomembno opozorilo! Število vrstic v polje argumenta INDEX se mora ujemati s številom vrstic v lookup_array argumenta MATCH, sicer bo formula dala napačen rezultat.

    Čakajte, čakajte... zakaj preprosto ne uporabimo naslednje formule Vlookup? Kakšen smisel ima izgubljati čas, da bi ugotovili skrivnostne zaplete Excelovega MATCH INDEX-a?

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

    V tem primeru to nima smisla :) Ta preprost primer je namenjen le predstavitvi, da boste dobili občutek, kako delujeta funkciji INDEX in MATCH. Drugi primeri, ki sledijo v nadaljevanju, vam bodo pokazali pravo moč te kombinacije, ki zlahka opravi s številnimi zapletenimi scenariji, ko se VLOOKUP zatakne.

    Nasveti:

    • V Excelu 365 in Excelu 2021 lahko uporabite sodobnejšo formulo INDEX XMATCH.
    • Za Google Sheets si oglejte primere formul z INDEX MATCH v tem članku.

    INDEX MATCH proti VLOOKUP

    Pri odločanju, katero funkcijo uporabiti za navpično iskanje, se večina Excelovih gurujev strinja, da je INDEX MATCH veliko boljši od VLOOKUP-a. Vendar veliko ljudi še vedno ostaja pri VLOOKUP-u, prvič, ker je preprostejši, in drugič, ker ne razumejo vseh prednosti uporabe formule INDEX MATCH v Excelu. Brez takšnega razumevanja nihče ni pripravljen vložiti svojega časa v učenje bolj zapletene formule INDEX MATCH.sintaksa.

    V nadaljevanju bom izpostavil ključne prednosti MATCH INDEX pred VLOOKUP, vi pa se odločite, ali je to vreden dodatek k vašemu arzenalu Excel.

    4 glavni razlogi za uporabo INDEX MATCH namesto VLOOKUP

    1. Iskanje od desne proti levi. Vsak izobražen uporabnik ve, da VLOOKUP ne more pogledati v levo, kar pomeni, da mora biti vrednost iskanja vedno v najbolj levem stolpcu tabele. INDEX MATCH lahko zlahka izvede iskanje v levo! Naslednji primer ga prikazuje v praksi: Kako v Excelu poiskati vrednost v levo.
    2. Varno vstavljanje ali brisanje stolpcev. Formule VLOOKUP se pokvarijo ali dajejo napačne rezultate, če je iz preglednice za iskanje izbrisan ali vanjo dodan nov stolpec, saj sintaksa VLOOKUP zahteva navedbo številke indeksa stolpca, iz katerega želite črpati podatke. Seveda se številka indeksa ob dodajanju ali brisanju stolpcev spremeni.

      Z INDEX MATCH določite območje vrnjenih stolpcev in ne številke indeksa. Tako lahko vstavite in odstranite poljubno število stolpcev, ne da bi vas skrbelo posodabljanje vsake povezane formule.

    3. Velikost vrednosti iskanja ni omejena. Pri uporabi funkcije VLOOKUP skupna dolžina meril iskanja ne sme presegati 255 znakov, sicer se bo pojavila napaka #VALUE!. Če vaš niz podatkov vsebuje dolge nize, je edina delujoča rešitev INDEX MATCH.
    4. Večja hitrost obdelave. Če so vaše tabele razmeroma majhne, ne bo skoraj nobene bistvene razlike v zmogljivosti programa Excel. Če pa vaši delovni listi vsebujejo na stotine ali tisoče vrstic in posledično na stotine ali tisoče formul, bo MATCH INDEX deloval veliko hitreje kot VLOOKUP, saj bo moral Excel obdelati samo stolpce za iskanje in vračanje, ne pa celotnega polja tabele.

      Vpliv funkcije VLOOKUP na delovanje programa Excel je še posebej opazen, če vaš delovni zvezek vsebuje zapletene formule v polju, kot sta VLOOKUP in SUM. Gre za to, da preverjanje vsake vrednosti v polju zahteva ločen klic funkcije VLOOKUP. Čim več vrednosti vsebuje polje in čim več formul v polju imate v delovnem zvezku, tem počasneje deluje Excel.

    Excel INDEX MATCH - primeri formul

    Ker poznamo razloge za učenje funkcije MATCH INDEX, se lotimo najbolj zanimivega dela in si oglejmo, kako lahko teoretično znanje uporabimo v praksi.

    Formula INDEX MATCH za iskanje od desne proti levi

    Kot smo že omenili, VLOOKUP ne more pogledati na levo. Če se torej vaše vrednosti iskanja ne nahajajo v najbolj levem stolpcu, ni možnosti, da bi formula Vlookup prinesla želeni rezultat. Funkcija INDEX MATCH v Excelu je bolj vsestranska in ji ni pomembno, kje sta stolpca iskanja in vračanja.

    V tem primeru bomo na levi strani naše vzorčne tabele dodali stolpec Rang in poskušali ugotoviti, kako se ruska prestolnica Moskva uvršča glede na število prebivalcev.

    Z iskano vrednostjo v G1 uporabite naslednjo formulo za iskanje v C2:C10 in vrnite ustrezno vrednost iz A2:A10:

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

    Nasvet: Če nameravate formulo INDEX MATCH uporabiti za več kot eno celico, ne pozabite zakleniti obeh obsegov z absolutnimi referencami celic (kot sta $A$2:$A$10 in $C$2:4C$10), da se pri kopiranju formule ne popačita.

    INDEX MATCH MATCH za iskanje v vrsticah in stolpcih

    V zgornjih primerih smo INDEX MATCH uporabili kot nadomestek za klasični VLOOKUP, da bi vrnili vrednost iz vnaprej določenega območja enega stolpca. Kaj pa, če morate iskati v več vrsticah in stolpcih? Z drugimi besedami, kaj če želite izvesti t. i. matrika ali dvosmerni iskanje?

    Morda se sliši zapleteno, vendar je formula zelo podobna osnovni Excelovi funkciji INDEX MATCH, le z eno razliko.

    Preprosto uporabite dve funkciji MATCH - z eno dobite številko vrstice, z drugo pa številko stolpca. In čestitam tistim, ki ste pravilno uganili :)

    INDEX (polje, MATCH ( vrednost pogleda vlookup , stolpec za pogled proti , 0), MATCH ( vrednost hlookup , vrstica za pogled navzgor proti , 0))

    Zdaj pa si oglejte spodnjo preglednico in sestavimo formulo INDEX MATCH MATCH, s katero bomo našli število prebivalcev (v milijonih) v določeni državi za določeno leto.

    S ciljno državo v G1 (vrednost vlookup) in ciljnim letom v G2 (vrednost hlookup) je formula takšna:

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

    Kako deluje ta formula

    Kadar želite razumeti zapleteno formulo programa Excel, jo razdelite na manjše dele in preverite, kaj počne posamezna funkcija:

    MATCH(G1,A2:A11,0) - poišče vrednost v celici G1 ("Kitajska") v A2:A11 in vrne njen položaj, ki je 2.

    MATCH(G2,B1:D1,0)) - išče po celicah B1:D1, da bi dobil položaj vrednosti v celici G2 ("2015"), ki je 3.

    Zgornje številke vrstic in stolpcev ustrezajo ustreznim argumentom funkcije INDEX:

    INDEX(B2:D11, 2, 3)

    Kot rezultat dobite vrednost na presečišču 2. vrstice in 3. stolpca v območju B2:D11, ki je vrednost v celici D3. Enostavno? Ja!

    Excel INDEX MATCH za iskanje več meril

    Če ste imeli priložnost prebrati naše Excelovo vodilo VLOOKUP, ste verjetno že preizkusili formulo za Vlookup z več merili. Vendar je pomembna omejitev tega pristopa potreba po dodajanju pomožnega stolpca. Dobra novica je, da lahko Excelova funkcija INDEX MATCH išče tudi z dvema ali več merili, brez spreminjanja ali prestrukturiranja vaših izvornih podatkov!

    Tukaj je splošna formula INDEX MATCH z več merili:

    {=INDEX( return_range , MATCH(1, ( merila1 = obseg1 ) * ( merila2 = obseg2 ), 0))}

    Opomba: To je formula polja, ki jo je treba dopolniti z bližnjico Ctrl + Shift + Enter.

    V spodnji vzorčni preglednici želite poiskati znesek na podlagi dveh meril, Stranka in . Izdelek .

    Naslednja formula INDEX MATCH deluje odlično:

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

    Pri čemer je C2:C10 območje, iz katerega se vrne vrednost, F1 je merilo 1, A2:A10 je območje za primerjavo z merilom 1, F2 je merilo 2, B2:B10 pa je območje za primerjavo z merilom 2.

    Ne pozabite pravilno vnesti formule s pritiskom Ctrl + Shift + Enter in Excel jo bo samodejno zaprl v oglate oklepaje, kot je prikazano na sliki zaslona:

    Če v svojih delovnih listih ne želite uporabljati formul z matrikami, dodajte formuli še eno funkcijo INDEX in jo zaključite z običajnim pritiskom Enter:

    Kako te formule delujejo

    Formule uporabljajo enak pristop kot osnovna funkcija INDEX MATCH, ki pregleduje en sam stolpec. Če želite oceniti več meril, ustvarite dve ali več polj z vrednostmi TRUE in FALSE, ki predstavljajo ujemanje in neujemanje za vsako posamezno merilo, in nato pomnožite ustrezne elemente teh polj. Operacija pomnoževanja pretvori vrednosti TRUE in FALSE v 1 in 0,Funkcija MATCH z vrednostjo iskanja 1 poišče prvo "1" v polju in njen položaj posreduje funkciji INDEX, ki vrne vrednost v tej vrstici iz določenega stolpca.

    Formula, ki ne vsebuje niza, se zanaša na sposobnost funkcije INDEX, da nativno obdeluje nize. Drugi INDEX je konfiguriran z 0 vrstica_številka tako da bo MATCH-u posredoval celotno polje stolpcev.

    To je razlaga logike formule na visoki ravni. Za vse podrobnosti glejte Excel INDEX MATCH z več merili.

    Excel INDEX MATCH s srednjo vrednostjo, največjo vrednostjo, najmanjšo vrednostjo

    Microsoft Excel ima posebne funkcije za iskanje najmanjše, največje in povprečne vrednosti v območju. Kaj pa, če morate dobiti vrednost iz druge celice, ki je povezana s temi vrednostmi? V tem primeru uporabite funkcijo MAX, MIN ali AVERAGE skupaj s funkcijo INDEX MATCH.

    INDEX MATCH z MAX

    Če želite poiskati največjo vrednost v stolpcu D in vrniti vrednost iz stolpca C v isti vrstici, uporabite to formulo:

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

    INDEX MATCH z MIN

    Če želite poiskati najmanjšo vrednost v stolpcu D in iz stolpca C potegniti povezano vrednost, uporabite to:

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

    INDEX MATCH s povprečno vrednostjo

    Če želite določiti vrednost, ki je najbližja povprečju v D2:D10, in dobiti ustrezno vrednost iz stolpca C, uporabite to formulo:

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

    Glede na to, kako so organizirani vaši podatki, v tretji argument (match_type) funkcije MATCH vnesite 1 ali -1:

    • Če je stolpec za iskanje (v našem primeru stolpec D) razvrščen naraščajoče , vstavite 1. Formula bo izračunala največjo vrednost, ki je manj kot ali enaka povprečni vrednosti.
    • Če je stolpec za iskanje razvrščen padajoče , vnesite -1. Formula bo izračunala najmanjšo vrednost, ki je večji od ali enaka povprečni vrednosti.
    • Če polje za iskanje vsebuje vrednost popolnoma enako za natančno ujemanje lahko vnesete 0. Razvrščanje ni potrebno.

    V našem primeru so populacije v stolpcu D razvrščene v padajočem vrstnem redu, zato za vrsto ujemanja uporabimo -1. Kot rezultat dobimo "Tokio", saj je njegova populacija (13 189 000) najbližje ujemanje, ki je večje od povprečja (12 269 006).

    Morda vas bo zanimalo, da lahko tudi VLOOKUP izvede takšne izračune, vendar v obliki formule z matriko: VLOOKUP z AVERAGE, MAX, MIN.

    Uporaba INDEX MATCH z IFNA / IFERROR

    Kot ste verjetno opazili, če formula INDEX MATCH v Excelu ne more najti vrednosti iskanja, se izpiše napaka #N/A. Če želite standardni zapis napake zamenjati z nečim bolj smiselnim, zavijte formulo INDEX MATCH v funkcijo IFNA. Na primer:

    =IFNA(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Ni najdeno ujemanje")

    Če nekdo vnese tabelo za iskanje, ki ne obstaja v območju iskanja, bo formula izrecno obvestila uporabnika, da ni bilo najdeno ujemanje:

    Če želite zajeti vse napake, ne le #N/A, uporabite funkcijo IFERROR namesto IFNA:

    =IFERROR(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Ups, nekaj je šlo narobe!")

    Upoštevajte, da v številnih primerih morda ni pametno prikriti vseh napak, saj vas opozorijo na morebitne napake v vaši formuli.

    To je način uporabe INDEX-a in MATCH-a v Excelu. Upam, da vam bodo naši primeri formul v pomoč, in veselim se, da se naslednji teden vidimo na našem blogu!

    Praktični delovni zvezek za prenos

    Excelovi primeri INDEX MATCH (.xlsx datoteka)

    Michael Brown je predan tehnološki navdušenec s strastjo do poenostavljanja kompleksnih procesov z uporabo programskih orodij. Z več kot desetletnimi izkušnjami v tehnološki industriji je svoje veščine izpopolnil v Microsoft Excelu in Outlooku ter Google Preglednicah in Dokumentih. Michaelov blog je namenjen deljenju svojega znanja in strokovnega znanja z drugimi ter ponuja preproste nasvete in vadnice za izboljšanje produktivnosti in učinkovitosti. Ne glede na to, ali ste izkušen strokovnjak ali začetnik, Michaelov blog ponuja dragocene vpoglede in praktične nasvete, kako kar najbolje izkoristiti ta osnovna programska orodja.