INDEX MATCH MATCH v aplikaci Excel pro dvourozměrné vyhledávání

  • Sdílet Toto
Michael Brown

Výukový program představuje několik různých vzorců pro provádění dvourozměrného vyhledávání v Excelu. Stačí si prohlédnout alternativy a vybrat si svého favorita :)

Když něco hledáte v tabulkách aplikace Excel, většinou hledáte vertikálně ve sloupcích nebo horizontálně v řádcích. Někdy však potřebujete hledat napříč řádky i sloupci. Jinými slovy, snažíte se najít hodnotu v průsečíku určitého řádku a sloupce. Tomuto postupu se říká vyhledávání matic (aka Dvourozměrné nebo 2-cestné vyhledávání ) a tento návod ukazuje, jak to udělat čtyřmi různými způsoby.

    Vzorec Excel INDEX MATCH MATCH

    Nejoblíbenějším způsobem, jak v Excelu provést obousměrné vyhledávání, je použití funkce INDEX MATCH MATCH. Jedná se o variantu klasického vzorce INDEX MATCH, ke kterému přidáte ještě jednu funkci MATCH, abyste získali čísla řádků i sloupců:

    INDEX ( data_array , MATCH ( vlookup_value , lookup_column_range , 0), MATCH ( hodnota hlookup , lookup_row_range , 0))

    Jako příklad si vytvoříme vzorec, který z níže uvedené tabulky vytáhne populaci určitého zvířete v daném roce. Pro začátek definujeme všechny argumenty:

    • Data_array - B2:E4 (datové buňky bez záhlaví řádků a sloupců)
    • Vlookup_value - H1 (cílové zvíře)
    • Lookup_column_range - A2:A4 (záhlaví řádků: názvy zvířat) - A3:A4
    • Hlookup_value - H2 (cílový rok)
    • Lookup_row_range - B1:E1 (záhlaví sloupců: roky)

    Spojením všech argumentů získáte tento vzorec pro obousměrné vyhledávání:

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

    Jak tento vzorec funguje

    Ačkoli vzorec vypadá na první pohled poněkud složitě, jeho logika je ve skutečnosti jednoduchá a snadno pochopitelná. Funkce INDEX získá hodnotu z datového pole na základě čísel řádků a sloupců a dvě funkce MATCH tato čísla dodají:

    INDEX(B2:E4, číslo_řádku, číslo_sloupce)

    Zde využíváme schopnost funkce MATCH(lookup_value, lookup_array, [match_type]) vrátit hodnotu. relativní poloha z lookup_value na adrese lookup_array .

    Abychom tedy získali číslo řádku, vyhledáme zvíře, které nás zajímá (H1), v záhlavích řádků (A2:A4):

    MATCH(H1, A2:A4, 0)

    Číslo sloupce získáme tak, že v záhlavích sloupců (B1:E1) vyhledáme cílový rok (H2):

    MATCH(H2, B1:E1, 0)

    V obou případech hledáme přesnou shodu nastavením 3. argumentu na hodnotu 0.

    V tomto příkladu první MATCH vrátí 2, protože naše hodnota vlookup (Polární medvěd) se nachází v A3, což je 2. buňka v A2:A4. Druhý MATCH vrátí 3, protože hodnota hlookup (2000) se nachází v D1, což je 3. buňka v B1:E1.

    Vzhledem k výše uvedenému se vzorec redukuje na:

    INDEX(B2:E4, 2, 3)

    A vrátí hodnotu v průsečíku 2. řádku a 3. sloupce v datovém poli B2:E4, což je hodnota v buňce D3.

    Vzorec VLOOKUP a MATCH pro dvoucestné vyhledávání

    Dalším způsobem, jak v aplikaci Excel provést dvourozměrné vyhledávání, je použití kombinace funkcí VLOOKUP a MATCH:

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

    Pro naši ukázkovou tabulku má vzorec následující tvar:

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

    Kde:

    • Table_array - A2:E4 (datové buňky včetně záhlaví řádků)
    • Vlookup_value - H1 (cílové zvíře)
    • Hlookup_value - H2 (cílový rok)
    • Lookup_row_range - A1:E1 (záhlaví sloupců: roky)

    Jak tento vzorec funguje

    Jádrem vzorce je funkce VLOOKUP nakonfigurovaná pro přesnou shodu (poslední argument nastaven na FALSE), která vyhledá hodnotu vyhledávání (H1) v prvním sloupci pole tabulky (A2:E4) a vrátí hodnotu z jiného sloupce ve stejném řádku. Pro určení, ze kterého sloupce se má vrátit hodnota, se použije funkce MATCH, která je rovněž nakonfigurována pro přesnou shodu (poslední argument nastaven na 0):

    MATCH(H2, A1:E1, 0)

    MATCH hledá hodnotu v H2 napříč záhlavími sloupců (A1:E1) a vrací relativní pozici nalezené buňky. V našem případě je cílový rok (2010) nalezen v E1, která je pátá v poli vyhledávání. Číslo 5 tedy přejde do buňky. col_index_num argument VLOOKUP:

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

    VLOOKUP ji odtud převezme, najde přesnou shodu pro svou vyhledávací hodnotu v A2 a vrátí hodnotu z 5. sloupce téhož řádku, což je buňka E2.

    Důležité upozornění! Aby vzorec správně fungoval, table_array (A2:E4) VLOOKUP a lookup_array MATCH (A1:E1) musí mít stejný počet sloupců, jinak by se počet předaný MATCH na col_index_num bude nesprávný (nebude odpovídat pozici sloupce v tabulce). table_array ).

    Funkce XLOOKUP pro vyhledávání v řádcích a sloupcích

    Nedávno Microsoft představil v Excelu ještě jednu funkci, která má nahradit všechny stávající vyhledávací funkce, jako jsou VLOOKUP, HLOOKUP a INDEX MATCH. Funkce XLOOKUP umí mimo jiné vyhledat průnik určitého řádku a sloupce:

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

    Pro náš vzorový soubor dat platí následující vzorec:

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

    Poznámka: V současné době je funkce XLOOKUP beta verzí, která je dostupná pouze pro předplatitele Office 365, kteří jsou součástí programu Office Insiders.

    Jak tento vzorec funguje

    Vzorec využívá možnosti funkce XLOOKUP vrátit celý řádek nebo sloupec. Vnitřní funkce vyhledá cílový rok v řádku záhlaví a vrátí všechny hodnoty pro tento rok (v tomto příkladu pro rok 1980). Tyto hodnoty se přenesou do řádku. return_array argumentu vnějšího XLOOKUP:

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

    Vnější funkce XLOOKUP vyhledá cílové zvíře v záhlaví sloupců a vrátí hodnotu na stejné pozici z pole return_array.

    Vzorec SUMPRODUCT pro obousměrné vyhledávání

    Funkce SUMPRODUCT je v Excelu jako švýcarský nůž - dokáže mnoho věcí nad rámec svého určení, zejména pokud jde o vyhodnocení více kritérií.

    Chcete-li vyhledat dvě kritéria v řádcích a sloupcích, použijte tento obecný vzorec:

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

    Pro provedení dvoucestného vyhledávání v našem souboru dat se použije následující vzorec:

    =SOUČIN((A2:A4=H1) * (B1:E1=H2), B2:E4)

    Níže uvedená syntaxe bude také fungovat:

    =SOUČIN((A2:A4=H1) * (B1:E1=H2) * B2:E4)

    Jak tento vzorec funguje

    V jádru vzorce porovnáváme dvě vyhledávací hodnoty se záhlavími řádků a sloupců (cílové zvíře v H1 se všemi názvy zvířat v A2:A4 a cílový rok v H2 se všemi roky v B1:E1):

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

    Výsledkem jsou 2 pole hodnot TRUE a FALSE, kde hodnoty TRUE představují shody:

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

    Operace násobení rozdělí hodnoty TRUE a FALSE na 1 a 0 a vytvoří dvourozměrné pole o 4 sloupcích a 3 řádcích (řádky jsou odděleny středníkem a jednotlivé sloupce dat čárkou):

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

    Funkce SUMPRODUCT vynásobí prvky výše uvedeného pole položkami B2:E4 na stejných pozicích:

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

    A protože vynásobením nulou získáme nulu, zůstane zachována pouze položka odpovídající 1 v prvním poli:

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

    Nakonec funkce SUMPRODUCT sečte prvky výsledného pole a vrátí hodnotu 2000.

    Poznámka: Pokud má vaše tabulka více řádků a/nebo záhlaví sloupců se stejným názvem, bude výsledné pole obsahovat více než jedno číslo jiné než nula a všechna tato čísla budou sečtena. Jako výsledek dostanete součet hodnot, které splňují obě kritéria. Tím se vzorec SUMPRODUCT liší od vzorců INDEX MATCH MATCH a VLOOKUP, které vracejí první nalezenou shodu.

    Vyhledávání matic s pojmenovanými rozsahy (explicitní průnik)

    Dalším úžasně jednoduchým způsobem, jak v aplikaci Excel provádět maticové vyhledávání, je použití pojmenovaných rozsahů. Zde je návod, jak na to:

    Část 1: Pojmenování sloupců a řádků

    Nejrychlejší způsob, jak pojmenovat každý řádek a každý sloupec v tabulce, je tento:

    1. Vyberte celou tabulku (v našem případě A1:E4).
    2. Na Vzorce na kartě Definované názvy klikněte na tlačítko Vytvořit z výběru nebo stiskněte klávesovou zkratku Ctrl + Shift + F3.
    3. V Vytvoření názvů z výběru dialogového okna vyberte možnost Horní řada a Levý sloupec, a klikněte na tlačítko OK.

    Tím se automaticky vytvoří názvy na základě záhlaví řádků a sloupců. Existuje však několik výhrad:

    • Pokud jsou záhlaví vašich sloupců a/nebo řádků tvořena čísly nebo obsahují specifické znaky, které nejsou v názvech aplikace Excel povoleny, názvy pro takové sloupce a řádky nebudou vytvořeny. Chcete-li zobrazit seznam vytvořených názvů, otevřete Správce názvů ( Ctrl + F3 ). Pokud některé názvy chybí, definujte je ručně, jak je vysvětleno v části Jak pojmenovat rozsah v aplikaci Excel.
    • Pokud některá záhlaví řádků nebo sloupců obsahují mezery, budou nahrazeny například podtržítky, Polar_bear .

    Pro naši ukázkovou tabulku Excel automaticky vytvořil pouze názvy řádků. Názvy sloupců je třeba vytvořit ručně, protože záhlaví sloupců jsou čísla. Chcete-li to překonat, můžete jednoduše před čísla předřadit podtržítka, např. _1990 .

    Výsledkem jsou následující pojmenované rozsahy:

    Část 2: Vytvoření vyhledávacího vzorce matice

    Chcete-li vytáhnout hodnotu v průsečíku daného řádku a sloupce, stačí do prázdné buňky zadat jeden z následujících obecných vzorců:

    = název_řádku column_name

    Nebo naopak:

    = column_name název_řádku

    Například pro zjištění populace modrých velryb v roce 1990 je vzorec jednoduchý:

    =Blue_whale _1990

    Pokud někdo potřebuje podrobnější pokyny, následující kroky vás provedou celým procesem:

    1. Do buňky, ve které chcete zobrazit výsledek, zadejte znak rovnosti (=).
    2. Začněte psát název cílového řádku, například, Blue_whale . Po zadání několika znaků Excel zobrazí všechny existující názvy, které odpovídají zadání. Dvojitým kliknutím na požadovaný název jej zadáte do vzorce:
    3. Za název řádku zadejte a prostor , který funguje jako operátor křížení v tomto případě.
    4. Zadejte název cílového sloupce ( _1990 v našem případě).
    5. Jakmile zadáte názvy řádků a sloupců, Excel zvýrazní odpovídající řádek a sloupec v tabulce a stisknutím klávesy Enter vzorec dokončíte:

    Vaše maticové vyhledávání je dokončeno a výsledek je zobrazen na následujícím snímku obrazovky:

    Takto vypadá vyhledávání v řádcích a sloupcích v Excelu. Děkuji vám za přečtení a doufám, že se příští týden uvidíme na našem blogu!

    Dostupné soubory ke stažení

    Ukázka sešitu s dvourozměrným vyhledáváním

    Michael Brown je oddaný technologický nadšenec s vášní pro zjednodušování složitých procesů pomocí softwarových nástrojů. S více než desetiletými zkušenostmi v technologickém průmyslu zdokonalil své dovednosti v aplikacích Microsoft Excel a Outlook a také v Tabulkách a Dokumentech Google. Michaelův blog je věnován sdílení jeho znalostí a odborných znalostí s ostatními a poskytuje snadno pochopitelné tipy a návody pro zlepšení produktivity a efektivity. Ať už jste zkušený profesionál nebo začátečník, Michaelův blog nabízí cenné postřehy a praktické rady, jak tyto základní softwarové nástroje co nejlépe využít.