Tartalomjegyzék
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ő:
- Jelölje ki a teljes táblázatot (esetünkben A1:E4).
- 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.
- 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_nameVagy fordítva:
= column_name row_namePé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:
- Írja be az egyenlőségjelet (=) abba a cellába, ahol az eredményt szeretné megjeleníteni.
- 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:
- A sor neve után írja be a űr , amely úgy működik, mint a metszéspont operátor ebben az esetben.
- Adja meg a céloszlop nevét ( _1990 a mi esetünkben).
- 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