INDEX MATCH MATCH az Excelben kétdimenziós kereséshez

  • Ossza Meg Ezt
Michael Brown

A bemutató néhány különböző képletet mutat be a kétdimenziós keresés Excelben történő elvégzéséhez. Csak nézze át az alternatívákat, és válassza ki a kedvencét :)

Amikor keres valamit az Excel táblázatokban, a legtöbbször függőlegesen az oszlopokban vagy vízszintesen a sorokban keres. Néha azonban mind a sorokban, mind az oszlopokban keresni kell. Más szóval, egy adott sor és oszlop metszéspontjában lévő értéket kell keresni. Ezt hívják mátrix keresés (más néven 2 dimenziós vagy 2-utas keresés ), és ez a bemutató 4 különböző módon mutatja be, hogyan kell ezt megtenni.

    Excel INDEX MATCH MATCH képlet

    Az Excelben a kétirányú keresés legnépszerűbb módja az INDEX MATCH MATCH használata. Ez a klasszikus INDEX MATCH képlet egy változata, amelyhez még egy MATCH függvényt adunk hozzá, hogy megkapjuk a sor- és oszlopszámokat is:

    INDEX ( data_array , MATCH ( vlookup_value , lookup_column_range , 0), MATCH ( hlookup érték , lookup_row_range , 0))

    Példaként készítsünk egy képletet, amely az alábbi táblázatból egy adott évben egy adott állat populációját húzza ki. Kezdetnek definiáljuk az összes argumentumot:

    • Data_array - B2:E4 (adatcellák, a sor- és oszlopfejlécek nélkül)
    • Vlookup_value - H1 (célállat)
    • Lookup_column_range - A2:A4 (sorcímek: állatnevek) - A3:A4
    • Hlookup_value - H2 (célév)
    • Lookup_row_range - B1:E1 (oszlopcímek: évek)

    Az összes érvet összeadva ezt a képletet kapjuk a kétirányú kereséshez:

    =INDEX(B2:E4, MATCH(H1, A2:A4, 0), MATCH(H2, B1:E1, 0))

    Hogyan működik ez a képlet

    Bár első pillantásra kissé bonyolultnak tűnhet, a képlet logikája valójában egyszerű és könnyen érthető. Az INDEX függvény a sor- és oszlopszámok alapján keres ki egy értéket az adattömbből, és két MATCH függvény szolgáltatja ezeket a számokat:

    INDEX(B2:E4, sorszám, oszlopszám)

    Itt kihasználjuk a MATCH(lookup_value, lookup_array, [match_type]) azon képességét, hogy visszaadjon egy relatív pozíció a lookup_value a oldalon. lookup_array .

    A sorszám megadásához tehát a sorok fejlécében (A2:A4) megkeressük a keresett állatot (H1):

    MATCH(H1, A2:A4, 0)

    Az oszlopszám megadásához a célévre (H2) kell keresni az oszlopok fejlécében (B1:E1):

    MATCH(H2, B1:E1, 0)

    Mindkét esetben a pontos egyezést keressük a 3. argumentum 0-ra állításával.

    Ebben a példában az első MATCH 2-t ad vissza, mert a vlookup érték (jegesmedve) az A3-ban található, amely az A2:A4 2. cellája. A második MATCH 3-t ad vissza, mert a hlookup érték (2000) a D1-ben található, amely a B1:E1 3. cellája.

    A fentiek alapján a képlet a következőre redukálódik:

    INDEX(B2:E4, 2, 3)

    És adja vissza a B2:E4 adattömb 2. sorának és 3. oszlopának metszéspontjában lévő értéket, amely a D3 cellában lévő érték.

    VLOOKUP és MATCH formula 2-utas kereséshez

    A kétdimenziós keresés másik módja az Excelben a VLOOKUP és a MATCH függvények kombinációjának használata:

    VLOOKUP( vlookup_value , table_array , MATCH( hlookup_value , lookup_row_range , 0), FALSE)

    A mintatáblázatunk esetében a képlet a következő alakot veszi fel:

    =VLOOKUP(H1, A2:E4, MATCH(H2, A1:E1, 0), FALSE)

    Hol:

    • Table_array - A2:E4 (adatcellák, beleértve a sorfejléceket is)
    • Vlookup_value - H1 (célállat)
    • Hlookup_value - H2 (célév)
    • Lookup_row_range - A1:E1 (oszlopcímek: évek)

    Hogyan működik ez a képlet

    A képlet lényege a pontos egyezésre konfigurált VLOOKUP függvény (az utolsó argumentum FALSE-ra van állítva), amely a keresési értéket (H1) a táblázat tömbjének első oszlopában (A2:E4) keresi, és ugyanannak a sornak egy másik oszlopából ad vissza egy értéket. Annak meghatározásához, hogy melyik oszlopból adjon vissza egy értéket, a MATCH függvényt használja, amely szintén pontos egyezésre van konfigurálva (az utolsó argumentum 0-ra van állítva):

    MATCH(H2, A1:E1, 0)

    A MATCH a H2-ben lévő értéket keresi az oszlopfejléceken (A1:E1) keresztül, és a talált cella relatív pozícióját adja vissza. Esetünkben a célév (2010) az E1-ben található, amely az 5. a keresési tömbben. Így az 5. szám a következő cellába kerül. col_index_num a VLOOKUP argumentuma:

    VLOOKUP(H1, A2:E4, 5, FALSE)

    A VLOOKUP innen veszi át, pontos egyezést talál az A2-ben lévő keresési értékre, és visszaad egy értéket ugyanannak a sornak az 5. oszlopából, amely az E2 cella.

    Fontos megjegyzés! Ahhoz, hogy a képlet helyesen működjön, table_array (A2:E4) a VLOOKUP és a lookup_array a MATCH (A1:E1) oszlopok számának meg kell egyeznie, különben a MATCH által a col_index_num helytelen lesz (nem fog megfelelni az oszlop pozíciójának a table_array ).

    XLOOKUP függvény a sorok és oszlopok kereséséhez

    A Microsoft nemrégiben bevezetett még egy olyan funkciót az Excelben, amely az összes létező keresőfüggvényt, például a VLOOKUP-ot, a HLOOKUP-ot és az INDEX MATCH-ot hivatott helyettesíteni. Az XLOOKUP többek között egy adott sor és oszlop metszéspontját is meg tudja vizsgálni:

    XLOOKUP( vlookup_value , vlookup_column_range , XLOOKUP( hlookup_value , hlookup_row_range , data_array ))

    A mintaadathalmazunk esetében a képlet a következőképpen néz ki:

    =XLOOKUP(H1, A2:A4, XLOOKUP(H2, B1:E1, B2:E4))

    Megjegyzés: Az XLOOKUP jelenleg egy bétafunkció, amely csak az Office 365 előfizetők számára érhető el, akik az Office Insiders programban vesznek részt.

    Hogyan működik ez a képlet

    A képlet kihasználja az XLOOKUP képességét egy teljes sor vagy oszlop visszaadására. A belső függvény megkeresi a célévet a fejléc sorában, és visszaadja az adott év összes értékét (ebben a példában az 1980-as évét). Ezek az értékek a return_array a külső XLOOKUP argumentuma:

    XLOOKUP(H1, A2:A4, {22000;25000;700})))

    A külső XLOOKUP függvény megkeresi a célállatot az oszlopfejléceken keresztül, és a return_array-ból visszaadja az azonos pozícióban lévő értéket.

    SUMPRODUCT formula kétirányú kereséshez

    A SUMPRODUCT függvény olyan, mint egy svájci kés az Excelben - nagyon sok mindenre képes a rendeltetési célján túl, különösen, ha több kritérium értékeléséről van szó.

    Két kritérium kereséséhez, sorokban és oszlopokban, használja ezt az általános képletet:

    SUMPRODUCT( vlookup_column_range = vlookup_value ) * ( hlookup_row_range = hlookup_value ), data_array )

    Az adathalmazunkban a 2-irányú keresés elvégzéséhez a képlet a következőképpen néz ki:

    =SUMPRODUCT((A2:A4=H1) * (B1:E1=H2), B2:E4)

    Az alábbi szintaxis is működik:

    =SUMPRODUCT((A2:A4=H1) * (B1:E1=H2) * B2:E4)

    Hogyan működik ez a képlet

    A képlet középpontjában két keresési értéket hasonlítunk össze a sor- és oszlopcímekkel (a H1-ben szereplő célállatot az A2:A4-ben szereplő összes állatnévvel, a H2-ben szereplő célévet pedig a B1:E1-ben szereplő összes évvel):

    (A2:A4=H1) * (B1:E1=H2)

    Ez 2 TRUE és FALSE értékeket tartalmazó tömböt eredményez, ahol a TRUE értékek egyezéseket jelentenek:

    {FALSE;FALSE;FALSE;TRUE} * {FALSE,TRUE,FALSE,FALSE,FALSE}

    A szorzási művelet a TRUE és FALSE értékeket 1-es és 0-s értékekre kényszeríti, és egy 4 oszlopból és 3 sorból álló kétdimenziós tömböt hoz létre (a sorokat pontosvesszővel, az egyes oszlopokat vesszővel választjuk el):

    {0,0,0,0;0,0,0,0;0,1,0,0}

    A SUMPRODUCT függvény megszorozza a fenti tömb elemeit a B2:E4 elemek azonos pozícióiban lévő elemeivel:

    {0,0,0,0;0,0,0,0;0,1,0,0} * {22000,13800,8500,3500;25000,23000,22000,20000;700,2000,2300,2500}

    És mivel a nullával való szorzás nullát ad, csak az első tömbben lévő 1-nek megfelelő elem marad meg:

    SUMPRODUCT({0,0,0,0;0,0,0,0;0,2000,0,0})

    Végül a SUMPRODUCT összeadja a kapott tömb elemeit, és 2000-es értéket ad vissza.

    Megjegyzés: Ha a táblában több azonos nevű sor- és/vagy oszlopfejléc van, a végső tömb a nullától eltérő több számot fog tartalmazni, és ezek a számok összeadódnak. Eredményként a két feltételnek megfelelő értékek összegét kapjuk. Ez különbözteti meg a SUMPRODUCT képletet az INDEX MATCH MATCH és a VLOOKUP képletektől, amelyek az első talált egyezést adják vissza.

    Mátrix keresés megnevezett tartományokkal (explicit Intersection)

    Egy további elképesztően egyszerű módja a mátrixkeresésnek az Excelben a névleges tartományok használata. Íme, hogyan:

    1. rész: Az oszlopok és sorok megnevezése

    A leggyorsabb módja a táblázat minden sorának és oszlopának elnevezésének a következő:

    1. Jelölje ki a teljes táblázatot (esetünkben A1:E4).
    2. A Képletek lapon, a Meghatározott nevek csoport, kattintson a Létrehozás kiválasztásból vagy nyomja meg a Ctrl + Shift + F3 billentyűkombinációt.
    3. A Nevek létrehozása a kiválasztásból párbeszédpanelen válassza a Felső sor és Bal oldali oszlop, és kattintson az OK gombra.

    Ez automatikusan létrehozza a neveket a sor- és oszlopfejlécek alapján. Van azonban néhány fenntartás:

    • Ha az oszlopok és/vagy sorok fejlécei számok, vagy olyan karaktereket tartalmaznak, amelyek nem engedélyezettek az Excel nevekben, akkor az ilyen oszlopok és sorok nevei nem jönnek létre. A létrehozott nevek listájának megtekintéséhez nyissa meg a Névkezelőt ( Ctrl + F3 ). Ha néhány név hiányzik, határozza meg őket kézzel a Hogyan nevezzünk el egy tartományt az Excelben című fejezetben leírtak szerint.
    • Ha néhány sor- vagy oszlopfejléc szóközöket tartalmaz, akkor a szóközöket például aláhúzásokkal helyettesíti, Polar_bear .

    A mintatáblánk esetében az Excel automatikusan csak a sorok nevét hozta létre. Az oszlopneveket kézzel kell létrehozni, mivel az oszlopcímek számok. Ennek kiküszöbölésére a számokat egyszerűen aláhúzással kezdhetjük, mint például _1990 .

    Ennek eredményeképpen a következő nevesített tartományokat kapjuk:

    2. rész: Mátrix keresési képlet készítése

    Ha egy adott sor és oszlop metszéspontjában lévő értéket szeretne kihúzni, csak írja be az alábbi általános képletek egyikét egy üres cellába:

    = row_name column_name

    Vagy fordítva:

    = column_name row_name

    Például a kék bálnák 1990-es populációjának kiszámításához a képlet a következő egyszerű:

    =Blue_whale _1990

    Ha valakinek részletesebb utasításokra van szüksége, a következő lépések végigvezetik a folyamaton:

    1. Írja be az egyenlőségjelet (=) abba a cellába, ahol az eredményt szeretné megjeleníteni.
    2. Kezdje el beírni a célsor nevét, mondjuk, Blue_whale Miután beírt néhány karaktert, az Excel megjeleníti az összes létező nevet, amely megfelel a bevitelének. Kattintson duplán a kívánt névre, hogy beírja azt a képletbe:
    3. A sor neve után írja be a űr , amely úgy működik, mint a metszéspont operátor ebben az esetben.
    4. Adja meg a céloszlop nevét ( _1990 a mi esetünkben).
    5. Amint a sor- és oszlopnevek beírásra kerülnek, az Excel kiemeli a megfelelő sort és oszlopot a táblázatban, és az Enter billentyűvel befejezi a képletet:

    A mátrixkeresés elkészült, és az alábbi képernyőkép mutatja az eredményt:

    Így kell keresni az Excelben a sorokban és oszlopokban. Köszönöm, hogy elolvastad, és remélem, jövő héten találkozunk a blogon!

    Elérhető letöltések

    2 dimenziós keresési minta munkafüzet

    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.