INDEX MATCH a Google Sheetsben - egy másik módja a függőleges keresésnek

  • Ossza Meg Ezt
Michael Brown

Amikor olyan adatokat kell keresned a lapodon, amelyek megfelelnek egy bizonyos kulcsrekordnak, általában a Google Sheets VLOOKUP-hoz fordulsz. De tessék: a VLOOKUP szinte azonnal korlátok közé csap. Ezért jobb, ha az INDEX MATCH megtanulásával növeled a feladathoz szükséges erőforrásokat.

Az INDEX MATCH a Google Sheets-ben két funkció kombinációja: INDEX és MATCH. Tandemben használva a Google Sheets VLOOKUP jobb alternatívájaként működnek. Ismerjük meg a képességeiket együtt ebben a blogbejegyzésben. De előbb szeretnék egy gyors túrát adni a saját szerepükről a táblázatokban.

    Google Sheets MATCH funkció

    Szeretném a Google Sheets MATCH-csal kezdeni, mert nagyon egyszerű. Átvizsgálja az adatokat egy adott érték után, és visszaadja a pozícióját:

    =MATCH(search_key, range, [search_type])
    • search_key ez az a lemez, amit keresel. Kötelező.
    • tartomány vagy egy sor vagy egy oszlop, amelyben keresni kell. Kötelező.

      Megjegyzés: A MATCH csak egydimenziós tömböket fogad el: sor vagy oszlop.

    • search_type opcionális, és meghatározza, hogy az egyezés pontos vagy közelítő legyen-e. Ha elhagyja, akkor alapértelmezés szerint 1 lesz:
      • 1 azt jelenti, hogy a tartományt növekvő sorrendbe rendezi. A függvény a legnagyobb értéket kapja meg, amelyik kisebb vagy egyenlő az Ön search_key .
      • 0 a függvény a pontos egyezést keresi abban az esetben, ha a tartomány nincs rendezve.
      • -1 arra utal, hogy a rekordok rangsorolása csökkenő rendezéssel történik. Ebben az esetben a függvény a legkisebb értéket kapja meg, amely nagyobb vagy egyenlő a search_key .

    Íme egy példa: egy bizonyos bogyós gyümölcs pozíciójának megadásához az összes bogyós gyümölcs listáján a következő MATCH képletre van szükségem a Google Sheets-emben:

    =MATCH("Blueberry", A1:A10, 0)

    Google Sheets INDEX funkció

    Míg a MATCH megmutatja, hogy hol keresse az értéket (a tartományon belüli helyét), addig a Google Sheets INDEX funkciója magát az értéket keresi a sor- és oszlopeltolódások alapján:

    =INDEX(referencia, [sor], [oszlop])
    • hivatkozás a keresendő tartomány. Kötelező.
    • sor a tartomány legelső cellájától eltolandó sorok száma. Nem kötelező, 0, ha elhagyja.
    • oszlop , akárcsak sor , az eltolt oszlopok száma. Szintén opcionális, szintén 0, ha elhagyja.

    Ha mindkét választható argumentumot (sor és oszlop) megadja, a Google Sheets INDEX egy rekordot fog visszaadni a célcellából:

    =INDEX(A1:C10, 7, 1)

    Ha kihagyja az egyik argumentumot, a függvény ennek megfelelően a teljes sort vagy oszlopot kapja meg:

    =INDEX(A1:C10, 7)

    Az INDEX MATCH használata a Google Sheetsben - képletpéldák

    Amikor az INDEX és a MATCH együtt használatosak a táblázatokban, akkor a leghatalmasabbak. Teljesen helyettesíthetik a Google Sheets VLOOKUP-ot, és a kulcsérték alapján lekérhetik a kívánt rekordot egy táblázatból.

    Az első INDEX MATCH képlet elkészítése a Google Sheets számára

    Tegyük fel, hogy a tőzegáfonya készletadatait ugyanabból a táblázatból szeretné megkapni, mint amit fentebb használtam. Csak a B és C oszlopot cseréltem fel (később megtudja, miért).

    1. Most az összes bogyós gyümölcs a C oszlopban szerepel. A Google Sheets MATCH funkciója segít megtalálni az áfonya pontos sorát: 8

      =MATCH("Cranberry", C1:C10, 0)

    2. Az egész MATCH képletet egy sor argumentum az INDEX függvényben:

      =INDEX(A1:C10, MATCH("Cranberry", C1:C10, 0))

      Ez az egy visszaadja az egész sor áfonyát.

    3. De mivel csak a készletinformációra van szüksége, adja meg a keresési oszlop számát is: 3

      =INDEX(A1:C10, MATCH("Cranberry", C1:C10,0), 2)

    4. Voila!

    5. Tovább is mehetsz, és lemondhatsz az utolsó oszlopjelzőről ( 2 ). Erre egyáltalán nem lesz szükséged, ha csak a kereső oszlopot használod ( B1:B10 ) a teljes táblázat helyett ( A1:C10 ) mint első argumentum:

      =INDEX(B1:B10, MATCH("Cranberry", C1:C10, 0))

      Tipp. A különböző bogyók elérhetőségének ellenőrzésére kényelmesebb lenne, ha egy legördülő listában ( E2 ), és a MATCH függvényt a listát tartalmazó cellára hivatkozzuk:

      =INDEX(B1:B10, MATCH(E2, C1:C10, 0))

      Amint kiválasztja a bogyót, a kapcsolódó érték ennek megfelelően változik:

    Miért jobb az INDEX MATCH a Google Sheets-ben, mint a VLOOKUP

    Azt már tudja, hogy a Google Sheets INDEX MATCH megnézi az értékét egy táblázatban, és visszaad egy másik kapcsolódó rekordot ugyanabból a sorból. És azt is tudja, hogy a Google Sheets VLOOKUP pontosan ugyanezt teszi. Akkor miért is bajlódna?

    A helyzet az, INDEX MATCH van néhány jelentős előny a VLOOKUP felett:

    1. Bal oldali keresés lehetséges Korábban megváltoztattam az oszlopok helyét, hogy ezt szemléltessem: a Google Sheets INDEX MATCH funkciója a keresési oszlop bal oldalán is kereshet és keres is. A VLOOKUP mindig a tartomány legelső oszlopában keres, és a jobb oldalán keres egyezéseket - különben csak #N/A hibákat kap:

    2. Nincsenek kusza hivatkozások új oszlopok hozzáadásakor és a meglévők áthelyezésekor. Ha oszlopokat ad hozzá vagy mozgat, az INDEX MATCH automatikusan tükrözi a változásokat anélkül, hogy beavatkozna az eredménybe. Mivel oszlophivatkozásokat használ, a Google Sheets azonnal kiigazítja azokat:

      Próbálja meg ezt a VLOOKUP segítségével: a kereső oszlophoz a cellahivatkozások helyett a sorszámot kéri. Így a végén csak rossz értéket kap, mert egy másik oszlop veszi át ugyanazt a helyet - oszlop 2 a példámban:

    3. Tekintettel a szöveges esetre ha szükséges (erről bővebben alább).
    4. Több kritériumon alapuló függőleges keresésre használható.

    Arra kérem Önöket, hogy az alábbiakban részletesen vizsgálják meg az utolsó két pontot.

    Nagy- és kisbetű-érzékeny v-keresés INDEX MATCH segítségével a Google Sheetsben

    Az INDEX MATCH a legmegfelelőbb, ha az eset-érzékenységről van szó.

    Tegyük fel, hogy az összes bogyót kétféleképpen árulják - lazán (a pultnál mérve) és dobozokba csomagolva. Ezért minden bogyónak két előfordulása van a listában különböző esetekben írva, mindegyiknek saját azonosítója van, amely szintén esetenként változik:

    Tehát hogyan lehet megnézni egy bizonyos módon értékesített bogyó készletinformációit? A VLOOKUP az első megtalált nevet adja vissza, függetlenül attól, hogy milyen esetről van szó.

    Szerencsére az INDEX MATCH for Google Sheets ezt helyesen tudja elvégezni. Csak egy további funkciót kell használnia - FIND vagy EXACT.

    Példa 1. FIND a nagy- és kisbetű-érzékeny Vlookuphoz

    A FIND egy nagy- és kisbetű-érzékeny funkció a Google Sheetsben, ami nagyszerűvé teszi a nagy- és kisbetű-érzékeny függőleges keresést:

    =ArrayFormula(INDEX(B2:B19, MATCH(1, FIND(E2, C2:C19)), 0))

    Lássuk, mi történik ebben a képletben:

    1. A FIND a C oszlopot vizsgálja ( C2:C19 ) a rekordot a E2 ( cseresznye ), figyelembe véve annak betűjelét. Miután megtalálta, a képlet "megjelöli" a cellát egy számmal - 1 .
    2. MATCH keres erre a jelre - 1 - ugyanabban az oszlopban ( C ), és átadja sorának számát az INDEX-nek.
    3. Az INDEX a B oszlopban lévő sorba kerül ( B2:B19 ), és elhozza a kívánt rekordot.
    4. Amikor befejezted a képlet felépítését, nyomd meg a Ctrl+Shift+Enter billentyűkombinációt, hogy az elején hozzáadd az ArrayFormula-t. Erre azért van szükség, mert nélküle a FIND nem fog tudni tömbökben (egynél több cellában) keresni. Vagy beírhatod a ' ArrayFormula ' a billentyűzetről.

    Példa 2. EXACT az eset-érzékeny Vlookuphoz

    Ha a FIND helyett EXACT-ot használ, akkor ez utóbbi a pontosan azonos karakterekkel rendelkező rekordokat keresi, beleértve a szöveg nagy- és kisbetűit is.

    Az egyetlen különbség az, hogy az EXACT "megjelöli" a mérkőzést a TRUE szám helyett 1 Ezért a MATCH első argumentumának a következőnek kell lennie TRUE :

    =ArrayFormula(INDEX(B2:B19, MATCH(TRUE, EXACT(E2, C2:C19), 0))))

    Google Sheets INDEX MATCH több kritériummal

    Mi van akkor, ha több olyan feltétel van, amely alapján szeretné lekérni a rekordot?

    Nézzük meg az árát a cseresznye amelyet a PP vödrök és már kifogyóban :

    Az összes kritériumot a legördülő listákban rendeztem el az F oszlopban. És a Google Sheets INDEX MATCH támogatja a több kritériumot, nem a VLOOKUP. Itt van a formula, amit használnia kell:

    =ArrayFormula(INDEX(B2:B24, MATCH(CONCATENATE(F2:F4), A2:A24&C2:C24&D2:D24, 0),)))

    Ne ess pánikba! :) A logika valójában nagyon egyszerű:

    1. CONCATENATE(F2:F4) a kritériumokkal rendelkező cellákból származó mindhárom rekordot egyetlen karakterlánccá egyesíti, így:

      CherryPP vödörKifutó

      Ez egy search_key a MATCH, vagy más szóval, amit a táblázatban keres.

    2. A2:A24&C2:C24&D2:D24 egy tartomány Mivel mindhárom kritérium három külön oszlopban szerepel, így mintegy összekapcsolja őket:

      CherryKarton tálcaKészleten

      CherryFilm csomagolásKészleten kívül

      CherryPP vödörKifutó

      stb.

    3. A MATCH utolsó argumentuma - 0 - lehetővé teszi a pontos egyezés megtalálását a CherryPP vödörKifutó a kombinált oszlopok sorai között. Amint láthatod, a 3. sorban van.
    4. Ezután az INDEX elvégzi a dolgát: a rekordot a B oszlop 3. sorából hozza ki.
    5. Az ArrayFormula arra szolgál, hogy más függvények is dolgozhassanak a tömbökkel.

    Tipp: Ha a képlet nem talál egyezést, hibát ad vissza. Ennek elkerülése érdekében az egész képletet IFERROR-ba csomagolhatja (legyen ez az első argumentum), és második argumentumként megadhatja, amit a hibák helyett egy cellában látni szeretne:

    =IFERROR(ArrayFormula(INDEX(B2:B27, MATCH(CONCATENATE(F2:F4), A2:A27&C2:C27&D2:D27, 0),)), "Nem találtuk"))

    Jobb alternatíva az INDEX MATCH-nak a Google Sheetsben - Több VLOOKUP egyezés

    Bármelyik keresési funkciót is választja, a VLOOKUP-ot vagy az INDEX MATCH-ot, mindkettőnek van egy jobb alternatívája.

    A Multiple VLOOKUP Matches egy speciális kiegészítés a Google Sheets számára, amelynek célja:

    • keresés képletek nélkül
    • keresés minden irányban
    • keresés több feltétel alapján különböző adattípusok esetén: szöveg, számok, dátumok, idő, stb.
    • több gyufát hozhatsz, annyit, amennyire szükséged van (feltéve persze, hogy a táblázatodban van belőlük annyi).

    A kezelőfelület egyszerű, így nem kell kételkednie abban, hogy mindent helyesen csinál-e:

    1. Válassza ki a forrástartományt.
    2. Állítsa be a visszaadandó találatok és oszlopok számát.
    3. A feltételek finomhangolása az előre definiált operátorokkal ( tartalmazza, =, nem üres , a között. stb.).

    Képes leszel továbbá:

    • az eredmény előnézetének megtekintése
    • eldönteni, hogy hova helyezzük el
    • és hogyan: képletként vagy csak értékekként

    Ne hagyja ki a lehetőséget, hogy kipróbálja a kiegészítőt. Menjen és telepítse a Google Workspace Marketplace-ről. Az oktatóoldalán minden lehetőséget részletesen elmagyaráz.

    Készítettünk egy speciális oktatóvideót is:

    Találkozunk az alábbi kommentekben vagy a következő cikkben ;)

    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.