Excel INDEX MATCH vs. VLOOKUP - képlet példák

  • Ossza Meg Ezt
Michael Brown

Ez a bemutató megmutatja, hogyan kell használni az INDEX-et és a MATCH-ot az Excelben, és hogyan jobb, mint a VLOOKUP.

Néhány közelmúltbeli cikkünkben igyekeztünk a kezdőknek elmagyarázni a VLOOKUP függvény alapjait, a power felhasználóknak pedig összetettebb VLOOKUP képlet példákat mutattunk. Most pedig megpróbálom, ha nem is lebeszélni Önt a VLOOKUP használatáról, de legalább megmutatni egy alternatív módját a függőleges keresés elvégzésének az Excelben.

"Miért van erre szükségem?" - kérdezheted. Mert a VLOOKUP-nak számos korlátja van, amelyek sok helyzetben megakadályozhatják, hogy a kívánt eredményt kapd. Másrészt az INDEX MATCH kombináció rugalmasabb és számos fantasztikus funkcióval rendelkezik, amelyek miatt sok tekintetben jobb, mint a VLOOKUP.

    Excel INDEX és MATCH funkciók - az alapok

    Mivel ennek a bemutatónak az a célja, hogy bemutasson egy alternatív módot a vlookup Excelben az INDEX és MATCH függvények kombinációjának használatával, nem fogunk sokat foglalkozni a szintaxisukkal és a használatukkal. Csak az általános ötlet megértéséhez szükséges minimumot fogjuk tárgyalni, majd részletesen megvizsgáljuk azokat a képletpéldákat, amelyek megmutatják az INDEX MATCH használatának összes előnyét a VLOOKUP helyett.

    INDEX funkció - szintaxis és használat

    Az Excel INDEX függvénye a megadott sor- és oszlopszámok alapján egy tömbben lévő értéket ad vissza. Az INDEX függvény szintaxisa egyszerű:

    INDEX(array, row_num, [column_num])

    Az alábbiakban az egyes paraméterek nagyon egyszerű magyarázata következik:

    • array - egy olyan cellatartomány, amelyből értéket szeretne visszaadni.
    • row_num - a sorszám a tömbben, amelyből vissza akarja adni az értéket. Ha elhagyja, az column_num megadása kötelező.
    • column_num - az oszlop száma a tömbben, amelyből vissza akarjuk adni az értéket. Ha elhagyjuk, a row_num érték megadása kötelező.

    További információért lásd az Excel INDEX funkcióját.

    Íme egy példa az INDEX-képlet legegyszerűbb formájára:

    =INDEX(A1:C10,2,3)

    A képlet az A1-től C10-ig terjedő cellákban keres, és a 2. sor és a 3. oszlop cellájának értékét adja vissza, azaz a C2 cellát.

    Nagyon egyszerű, nem igaz? Amikor azonban valódi adatokkal dolgozunk, aligha tudjuk, hogy melyik sort és oszlopot szeretnénk, és itt jön jól a MATCH függvény.

    MATCH függvény - szintaxis és használat

    Az Excel MATCH függvény egy keresési értéket keres egy cellatartományban, és visszaadja a következő értéket relatív pozíció az adott értéknek a tartományban.

    A MATCH függvény szintaxisa a következő:

    MATCH(lookup_value, lookup_array, [match_type])
    • lookup_value - a keresett szám vagy szöveges érték.
    • lookup_array - a keresett cellák tartománya.
    • match_type - megadja, hogy pontos egyezést vagy a legközelebbi egyezést adja-e vissza:
      • 1 vagy elhagyható - megtalálja a legnagyobb értéket, amely kisebb vagy egyenlő a keresési értékkel. A keresési tömb növekvő sorrendbe rendezését igényli.
      • 0 - megtalálja az első olyan értéket, amely pontosan megegyezik a keresési értékkel. Az INDEX / MATCH kombinációban szinte mindig pontos egyezésre van szükség, ezért a MATCH függvény harmadik argumentumát 0-ra állítja.
      • -1 - megtalálja a legkisebb értéket, amely nagyobb vagy egyenlő a lookup_value értékkel. A lookup tömb csökkenő sorrendbe rendezését igényli.

    Például, ha a B1:B3 tartomány a "New-York", "Párizs", "London" értékeket tartalmazza, az alábbi képlet a 3-as számot adja vissza, mivel a "London" a harmadik bejegyzés a tartományban:

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

    További információért lásd az Excel MATCH funkcióját.

    Első pillantásra a MATCH függvény hasznossága megkérdőjelezhető. Kit érdekel egy érték pozíciója egy tartományban? Amit tudni akarunk, az maga az érték.

    Hadd emlékeztessem önöket, hogy a keresési érték relatív pozícióját (azaz a sor- és oszlopszámokat) pontosan meg kell adniuk a row_num és column_num Mint emlékszik, az Excel INDEX funkciója meg tudja találni az adott sor és oszlop találkozásánál lévő értéket, de nem tudja meghatározni, hogy pontosan melyik sort és oszlopot szeretné.

    Az INDEX MATCH funkció használata az Excelben

    Most, hogy ismered az alapokat, azt hiszem, már kezd értelmet nyerni, hogyan működik együtt a MATCH és az INDEX. Dióhéjban összefoglalva, az INDEX az oszlop- és sorszámok alapján találja meg a keresési értéket, a MATCH pedig ezeket a számokat adja meg. Ennyi!

    Függőleges keresés esetén a MATCH függvényt csak a sorszám meghatározására használja, és az oszloptartományt közvetlenül az INDEX-nek adja meg:

    INDEX ( oszlopban, hogy visszaadjon egy értéket a , MATCH ( keresési érték , oszlop, hogy felnézzenek , 0))

    Még mindig nehéz ezt megérteni? Egy példán keresztül talán könnyebb megérteni. Tegyük fel, hogy van egy listánk a nemzeti fővárosokról és lakosságukról:

    Ha egy bizonyos főváros, például Japán fővárosának lakosságát szeretné megtudni, használja a következő INDEX MATCH képletet:

    =INDEX(C2:C10, MATCH("Japán", A2:A10, 0))

    Most pedig elemezzük, hogy valójában mit is csinálnak a képlet egyes összetevői:

    • A MATCH függvény a "Japán" keresési értéket keresi az A2:A10 tartományban, és a 3 számot adja vissza, mivel a "Japán" a harmadik a keresési tömbben.
    • A sorszám közvetlenül a row_num argumentummal az INDEX-et arra utasítja, hogy az adott sorból adjon vissza egy értéket.

    Tehát a fenti képletből egy egyszerű INDEX(C2:C,3) lesz, amely azt mondja, hogy a C2-től C10-ig terjedő cellákban keressük, és a tartomány 3. cellájából, azaz a C4-ből húzzuk ki az értéket, mivel a második sorból kezdjük a számolást.

    Nem akarja a várost a képletbe kódolni? Írja be egy cellába, mondjuk az F1-be, adja meg a cellahivatkozást a MATCH-nak, és egy dinamikus keresési képletet kap:

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

    Fontos megjegyzés! A sorok száma a array az INDEX argumentumának meg kell egyeznie a sorok számával a lookup_array argumentumát, különben a képlet helytelen eredményt ad.

    Várj, várj... miért nem használjuk egyszerűen a következő Vlookup képletet? Mi értelme időt pazarolni arra, hogy megpróbáljuk kitalálni az Excel MATCH INDEX titkos csavarjait?

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

    Ebben az esetben egyáltalán nincs értelme :) Ez az egyszerű példa csak demonstrációs célokat szolgál, hogy érezhesse, hogyan működik együtt az INDEX és a MATCH funkció.Az alább következő példák megmutatják ennek a kombinációnak a valódi erejét, amely könnyen megbirkózik számos összetett forgatókönyvvel, amikor a VLOOKUP megbicsaklik.

    Tippek:

    • Az Excel 365 és az Excel 2021 programban egy modernebb INDEX XMATCH képletet használhat.
    • A Google Sheets esetében lásd az INDEX MATCH-t tartalmazó képletpéldákat ebben a cikkben.

    INDEX MATCH vs. VLOOKUP

    Amikor eldöntjük, hogy melyik függőleges keresésekhez melyik függvényt használjuk, a legtöbb Excel-guru egyetért abban, hogy az INDEX MATCH sokkal jobb, mint a VLOOKUP. Sokan azonban még mindig a VLOOKUP mellett maradnak, egyrészt, mert egyszerűbb, másrészt, mert nem értik teljesen az INDEX MATCH képlet használatának minden előnyét az Excelben. Ilyen megértés nélkül senki sem hajlandó időt áldozni arra, hogy megtanuljon egy összetettebb formulát.szintaxis.

    Az alábbiakban rámutatok a MATCH INDEX legfontosabb előnyeire a VLOOKUP-pal szemben, és Ön eldöntheti, hogy érdemes-e kiegészíteni az Excel-arzenálját.

    4 fő ok a VLOOKUP helyett az INDEX MATCH használatára

    1. Jobbra-balra keresés. Mint minden képzett felhasználó tudja, a VLOOKUP nem tud balra nézni, ami azt jelenti, hogy a keresési értéknek mindig a táblázat legbal oldali oszlopában kell lennie. Az INDEX MATCH könnyedén képes balra nézni! A következő példa mutatja be működés közben: Hogyan lehet balra nézni egy értéket az Excelben.
    2. Az oszlopok biztonságos beszúrása vagy törlése. A VLOOKUP képletek megszakadnak, vagy helytelen eredményeket adnak, ha egy új oszlopot törölnek a keresőtáblából vagy hozzáadnak egy új oszlopot, mivel a VLOOKUP szintaxisában meg kell adni annak az oszlopnak az indexszámát, amelyből az adatokat le kívánja hívni. Természetesen, amikor oszlopokat ad hozzá vagy töröl, az indexszám megváltozik.

      Az INDEX MATCH használatával a visszatérő oszloptartományt adja meg, nem pedig egy indexszámot. Ennek eredményeképpen annyi oszlopot illeszthet be és távolíthat el, amennyit csak akar, anélkül, hogy aggódnia kellene az összes kapcsolódó képlet frissítése miatt.

    3. Nincs korlát a keresési értékek méretére. A VLOOKUP függvény használatakor a keresési feltételek teljes hossza nem haladhatja meg a 255 karaktert, különben a #VALUE! hibát kapja. Ha tehát az adatállomány hosszú karakterláncokat tartalmaz, az INDEX MATCH az egyetlen működő megoldás.
    4. Nagyobb feldolgozási sebesség. Ha a táblázatok viszonylag kicsik, aligha lesz jelentős különbség az Excel teljesítményében. Ha azonban a munkalapok több száz vagy ezer sort tartalmaznak, és ennek következtében több száz vagy ezer képletet, a MATCH INDEX sokkal gyorsabban fog működni, mint a VLOOKUP, mivel az Excelnek csak a keresési és visszatérési oszlopokat kell feldolgoznia, nem pedig a teljes táblatömböt.

      A VLOOKUP hatása az Excel teljesítményére különösen akkor lehet észrevehető, ha a munkafüzet olyan összetett tömbképleteket tartalmaz, mint a VLOOKUP és a SUM. A lényeg az, hogy a tömb minden egyes értékének ellenőrzése a VLOOKUP függvény külön hívását igényli. Tehát minél több értéket tartalmaz a tömb, és minél több tömbképlet van a munkafüzetben, annál lassabban teljesít az Excel.

    Excel INDEX MATCH - képlet példák

    A MATCH INDEX függvény megtanulásának okait ismerve térjünk rá a legérdekesebb részre, és nézzük meg, hogyan lehet az elméleti tudást a gyakorlatban alkalmazni.

    INDEX MATCH formula, hogy jobbról balra nézzen felfelé

    Mint már említettük, a VLOOKUP nem tud balra nézni. Tehát, hacsak a keresési értékek nem a legbaloldali oszlopban vannak, nincs esély arra, hogy a Vlookup képlet a kívánt eredményt hozza. Az Excel INDEX MATCH funkciója sokoldalúbb, és nem igazán érdekli, hogy a keresési és visszatérési oszlopok hol helyezkednek el.

    Ebben a példában a mintatáblázatunk bal oldalán a Rangsor oszlopot adjuk hozzá, és megpróbáljuk kideríteni, hogy az orosz főváros, Moszkva hogyan áll a népesség számát tekintve.

    A G1-ben lévő keresési értékkel a következő képlet segítségével keressen a C2:C10 között, és adja vissza a megfelelő értéket az A2:A10 között:

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

    Tipp: Ha az INDEX MATCH képletet egynél több cellára kívánja használni, akkor mindkét tartományt abszolút cellahivatkozásokkal rögzítse (például $A$2:$A$10 és $C$2:4C$10), hogy a képlet másolásakor ne torzuljanak.

    INDEX MATCH MATCH a sorokban és oszlopokban való kereséshez

    A fenti példákban a klasszikus VLOOKUP helyettesítésére az INDEX MATCH-ot használtuk, hogy egy előre meghatározott egy oszlopos tartományból adjunk vissza egy értéket. De mi van akkor, ha több sorban és oszlopban kell keresni? Más szóval, mi van akkor, ha az ún. mátrix vagy kétirányú keresés?

    Talán trükkösnek hangzik, de a képlet nagyon hasonlít az Excel INDEX MATCH alapfunkciójához, egyetlen különbséggel. Találd ki, mi az?

    Egyszerűen használj két MATCH függvényt - az egyiket a sorszám, a másikat az oszlopszám megadásához. És gratulálok azoknak, akik jól tippeltek :)

    INDEX (tömb, MATCH ( vlookup érték , oszlop, hogy felnézzenek , 0), MATCH ( hlookup érték , sor, hogy felnézzenek , 0))

    És most kérjük, vessünk egy pillantást az alábbi táblázatra, és készítsünk egy INDEX MATCH MATCH képletet, hogy megtaláljuk egy adott ország lakosságát (milliókban) egy adott évben.

    Ha a célország a G1-ben (vlookup érték) és a célév a G2-ben (hlookup érték) van, a képlet a következő formát ölti:

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

    Hogyan működik ez a képlet

    Amikor egy összetett Excel-képletet kell megértenie, bontsa azt kisebb részekre, és nézze meg, mit csinálnak az egyes függvények:

    MATCH(G1,A2:A11,0) - az A2:A11 cellában keresi a G1 cellában ("Kína") lévő értéket, és visszaadja a pozícióját, ami 2.

    MATCH(G2,B1:D1,0))) - átnézi a B1:D1 cellákat, hogy megkapja a G2 cellában ("2015") lévő érték pozícióját, ami 3.

    A fenti sor- és oszlopszámok az INDEX függvény megfelelő argumentumaihoz tartoznak:

    INDEX(B2:D11, 2, 3)

    Az eredmény a B2:D11 tartomány 2. sorának és 3. oszlopának metszéspontjában lévő érték, a D3 cellában lévő érték. Könnyű? Igen!

    Excel INDEX MATCH több kritérium kereséséhez

    Ha volt alkalma elolvasni az Excel VLOOKUP bemutatót, akkor valószínűleg már kipróbált egy több kritériummal rendelkező Vlookup képletet. Ennek a megközelítésnek azonban jelentős korlátja, hogy szükség van egy segédoszlop hozzáadására. A jó hír az, hogy az Excel INDEX MATCH funkciója két vagy több kritériummal is képes keresni, anélkül, hogy módosítaná vagy átstrukturálná a forrásadatokat!

    Íme az általános INDEX MATCH formula több kritériummal:

    {=INDEX( return_range , MATCH(1, ( kritériumok1 = range1 ) * ( kritérium2 = range2 ), 0))}

    Megjegyzés: Ez egy tömbképlet, amelyet a Ctrl + Shift + Enter billentyűkombinációval kell kitölteni.

    Az alábbi mintatáblázatban, tegyük fel, hogy az összeget 2 kritérium alapján szeretné megtalálni, Ügyfél és Termék .

    A következő INDEX MATCH formula remekül működik:

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

    Ahol C2:C10 a tartomány, amelyből értéket kell visszaadni, F1 az 1. kritérium, A2:A10 az 1. kritériummal való összehasonlítás tartománya, F2 a 2. kritérium, és B2:B10 a 2. kritériummal való összehasonlítás tartománya.

    Ne feledje, hogy a képletet helyesen adja meg a Ctrl + Shift + Enter billentyűkombinációval, és az Excel automatikusan görbe zárójelbe teszi, ahogy a képernyőképen látható:

    Ha nem szeretne tömbképleteket használni a munkalapjain, akkor adjon még egy INDEX függvényt a képlethez, és fejezze be a szokásos Enter leütéssel:

    Hogyan működnek ezek a képletek

    A képletek ugyanazt a megközelítést használják, mint az INDEX MATCH alapfüggvény, amely egyetlen oszlopot vizsgál. Több kritérium kiértékeléséhez két vagy több TRUE és FALSE értékű tömböt hoz létre, amelyek az egyes kritériumok egyezését és nem egyezését jelölik, majd megszorozza e tömbök megfelelő elemeit. A szorzás a TRUE és FALSE értékeket 1-re és 0-ra alakítja át,illetve egy olyan tömböt hoz létre, amelyben az 1-es értékek olyan soroknak felelnek meg, amelyek megfelelnek az összes kritériumnak. A MATCH függvény 1 keresési értékkel megkeresi az első "1-est" a tömbben, és átadja a pozícióját az INDEX-nek, amely visszaadja a megadott oszlopban lévő értéket ebben a sorban.

    A nem tömbös formula az INDEX függvény azon képességére támaszkodik, hogy natívan tudja kezelni a tömböket. A második INDEX-et a 0 row_num hogy a teljes oszloptömböt átadja a MATCH-nak.

    Ez a képlet logikájának magas szintű magyarázata. A teljes részleteket lásd: Excel INDEX MATCH több kritériummal.

    Excel INDEX MATCH az AVERAGE, MAX és MIN értékekkel

    A Microsoft Excel rendelkezik speciális függvényekkel, amelyekkel egy tartományban a minimum, a maximum és az átlagértéket keresheti meg. De mi van akkor, ha egy másik cellából olyan értéket kell megkapnia, amely ezekhez az értékekhez kapcsolódik? Ebben az esetben használja a MAX, MIN vagy AVERAGE függvényt az INDEX MATCH funkcióval együtt.

    INDEX MATCH a MAX-szal

    A D oszlop legnagyobb értékének megkereséséhez és a C oszlop értékének visszaadásához ugyanabban a sorban használja ezt a képletet:

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

    INDEX MATCH a MIN-tel

    A D oszlopban található legkisebb értéket keresse meg, és a hozzá tartozó értéket húzza ki a C oszlopból:

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

    INDEX MATCH és AVERAGE

    A D2:D10 átlaghoz legközelebbi érték kiszámításához és a C oszlop megfelelő értékének kiszámításához a következő képletet kell használni:

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

    Attól függően, hogy az adatok hogyan vannak megszervezve, a MATCH függvény harmadik argumentumába (match_type) 1 vagy -1 értéket kell beírni:

    • Ha a keresési oszlop (esetünkben a D oszlop) rendezett felmenő , tegye be az 1. A képlet kiszámítja a legnagyobb értéket, ami kevesebb, mint vagy egyenlő az átlagértékkel.
    • Ha a keresési oszlop rendezett ereszkedő , írja be a -1-et. A képlet kiszámítja a legkisebb értéket, ami nagyobb, mint vagy egyenlő az átlagértékkel.
    • Ha a keresési tömb tartalmaz egy értéket pontosan egyenlő az átlaghoz, a pontos egyezéshez megadhatja a 0-t. Nincs szükség rendezésre.

    Példánkban a D oszlopban szereplő népességszámok csökkenő sorrendben vannak rendezve, ezért az egyezés típusára -1-et használunk. Eredményként a "Tokió" eredményt kapjuk, mivel a lakossága (13 189 000) a legközelebbi egyezés, amely nagyobb, mint az átlag (12 269 006).

    Kíváncsi lehet arra, hogy a VLOOKUP is képes ilyen számításokat végezni, de tömbképletként: VLOOKUP az AVERAGE, MAX, MIN értékekkel.

    INDEX MATCH használata IFNA / IFERROR használatával

    Mint valószínűleg már észrevette, ha egy INDEX MATCH képlet az Excelben nem talál egy keresési értéket, akkor #N/A hibát produkál. Ha a standard hiba jelölést valami értelmesebbel szeretné helyettesíteni, akkor az INDEX MATCH képletet csomagolja be az IFNA függvénybe. Például:

    =IFNA(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Nincs találat")

    És most, ha valaki olyan keresési táblázatot ad be, amely nem létezik a keresési tartományban, a képlet kifejezetten tájékoztatja a felhasználót, hogy nem talált egyezést:

    Ha nem csak az #N/A hibákat, hanem az összes hibát el akarod kapni, akkor az IFNA helyett használd az IFERROR függvényt:

    =IFERROR(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Hoppá, valami elromlott!")

    Kérjük, tartsa szem előtt, hogy sok helyzetben nem biztos, hogy okos dolog minden hibát elrejteni, mert ezek figyelmeztetnek a képlet lehetséges hibáira.

    Így használhatjuk az INDEX és a MATCH formulákat az Excelben. Remélem, hogy a képletpéldák hasznosnak bizonyulnak az Ön számára, és várjuk a jövő heti blogunkon!

    Gyakorlati munkafüzet letölthető

    Excel INDEX MATCH példák (.xlsx fájl)

    Michael Brown elkötelezett technológiai rajongó, aki szenvedélyesen egyszerűsíti a bonyolult folyamatokat szoftvereszközök segítségével. A technológiai iparban szerzett több mint egy évtizedes tapasztalatával a Microsoft Excel és az Outlook, valamint a Google Táblázatok és a Dokumentumok területén fejlesztette tudását. Michael blogja célja, hogy megossza tudását és szakértelmét másokkal, könnyen követhető tippeket és oktatóanyagokat adva a termelékenység és a hatékonyság javításához. Akár tapasztalt szakember, akár kezdő, Michael blogja értékes betekintést és gyakorlati tanácsokat kínál, amelyek segítségével a legtöbbet hozhatja ki ezekből az alapvető szoftvereszközökből.