INDEX-MATCH s více shodami v aplikaci Excel (6 příkladů)

  • Sdílet Toto
Hugh West

Excel nabízí různé funkce a způsoby získávání odpovídajících hodnot. V závislosti na situaci si uživatelé mohou zvolit své preference. Tento návod vám ukáže, jak získat výsledky pomocí funkce INDEX MATCH s více shodami v aplikaci Excel.

Nejprve se seznámíme s dnešním pracovním sešitem.

V listech dnešního sešitu najdete produkty a jejich cenový vztah. Pomocí tohoto vztahu si ukážeme několik příkladů na získání hodnoty pomocí více kritérií .

V reálném světě může být nutné zpracovávat datové sady o několika vztazích a nastavit různá kritéria pro získání výsledků. Abychom to zatím zjednodušili, získáme cenu produktu odpovídající názvu a velikosti.

Stáhnout cvičebnici

Sešit použitý pro ukázku se všemi vzorci si můžete stáhnout z níže uvedeného odkazu.

INDEX-MATCH s více shodami.xlsx

Základy funkce INDEX-MATCH

Základy funkce INDEX

Funkce INDEX vrací hodnotu nebo odkaz na hodnotu z tabulky nebo rozsahu. Lze ji použít k získání jednotlivých hodnot nebo celých řádků a sloupců. Podívejme se na syntaxi funkce INDEX.

INDEX(pole/odkaz, číslo_řádku, číslo_sloupce,číslo_oblasti)

pole nebo odkaz: Buňka nebo rozsah buněk, na které se chcete podívat

row_number: Řádek v poli, ze kterého se má vrátit hodnota

column_number: Sloupec v poli, ze kterého se má vrátit hodnota

area_number: Vybere rozsah v referenci, z něhož se vrátí průsečík hodnot row_num a column_num Jedná se o nepovinné pole.

Při psaní vzorce můžete zvolit, zda chcete uvést číslo_řádku nebo column_number Pokud poskytnete číslo_řádku pak je použití volitelné column_number a naopak.

Můžete si prohlédnout Podpora společnosti Microsoft pro hlubší rozpis syntaxe.

Základy funkce MATCH

V praxi se častěji setkáte s jednou funkcí, která je INDEX je funkce funkce MATCH . MATCH Funkce slouží k vyhledání pozice zadané položky v rozsahu buněk. Vrací relativní pozici konkrétní položky v rozsahu.

Syntaxe MATCH je funkce

MATCH(lookup_value, lookup_array, match_type)

lookup_value: Hodnota, která se má vyhledat v poli lookup_array.

lookup_array: Rozsah hledaných buněk.

match_type: Jedná se o nepovinné pole. Můžete vložit 3 hodnoty.

1 = Menší nebo rovno hodnotě lookup_value

0 = Exact lookup_value

-1 = Větší nebo rovno hodnotě lookup_value

Pro hlubší pochopení se můžete podívat na stránku Podpora společnosti Microsoft na místě.

6 Vhodné příklady použití vzorce INDEX-MATCH s více shodami

Nyní tyto vzorce a teorie uplatníme v naší datové sadě. Řešili jsme různé scénáře s využitím metody INDEX-MATCH s více shodami v Excelu a pro lepší pochopení jsme je zařadili do různých oddílů. Sledujte, jak je můžeme použít v různých scénářích, nebo pokud dáváte přednost konkrétnímu, najdete ho v tabulce výše.

1. INDEX-MATCH s více kritérii

Pro načítání hodnot pomocí více kritérií nejprve nastavte kritéria. Například pokud chcete získat cenu košile malé velikosti (v našem sešitě), musíte nastavit Název produktu - Košile a Velikost - Malá.

Nyní postupujte podle následujících kroků a zjistěte, jak můžeme v aplikaci Excel použít vzorec pro nalezení indexové shody s těmito vícenásobnými shodami.

Kroky:

  • Nejprve vyberte buňku G6 .
  • Pak si zapište následující vzorec.

=INDEX(D5:D15,MATCH(1,(G4=B5:B15)*(G5=C5:C15),0))

🔎 Rozdělení vzorce

INDEX(D5:D15,MATCH(1,(G4=B5:B15)*(G5=C5:C15),0))

👉 (G4=B5:B15) a (G5=C5:C15) jsou obě podmínky a vracejí buď TRUE nebo FALSE v závislosti na tom, zda jsou podmínky pravdivé nebo ne. Číselně jsou 1 nebo 0. Takže násobení vrátí 1, pokud jsou obě podmínky pravdivé.

👉 MATCH(1,(G4=B5:B15)*(G5=C5:C15),0) vrátí pozici, kde jsou obě podmínky pravdivé. V tomto případě je to 1.

👉 INDEX(D5:D15,MATCH(1,(G4=B5:B15)*(G5=C5:C15),0)) vrátí hodnotu na pozici, kterou vrátila předchozí část vzorce.

  • Nakonec stiskněte Vstupte na .

Takto můžeme v Excelu použít INDEX MATCH pro více kritérií nebo shod.

Přečtěte si více: Jak v aplikaci Excel porovnat více kritérií z různých polí

2. INDEX-MATCH s více kritérii patřícími k řádkům a sloupcům

V této části se budeme zabývat tím, jak provést vyhledávání pomocí testování dvou nebo více kritérií v. řádky a sloupce . Může se to zdát trochu složité a komplikované.

V našem příkladu jsme provedli malou změnu, naše tabulka je nyní uspořádána tak, že hodnoty Velikost (Malý, Velký, M, XL) představují jednotlivé sloupce.

Podobně jako v předchozí části nastavte jako hodnoty kritérií produkt a požadovanou velikost.

Postupujte podle následujících kroků, abyste viděli, jak můžeme vzorec pro tento oddíl použít.

Kroky:

  • Nejprve vyberte buňku I6 .
  • Pak do něj zapište následující vzorec.

=INDEX(C5:F7,MATCH(I4,B5:B7,0),MATCH(I5,C4:F4,0))

🔎 Rozdělení vzorce

👉 MATCH(I4,B5:B7,0) vrátí přesnou shodu s hodnotou I4 v rozsahu B5:B7 .

👉 Podobně, MATCH(I5,C4:F4,0) vrátí přesnou shodu s hodnotou I5 v rozsahu C4:F4 .

👉 Nakonec, INDEX(C5:F7,MATCH(I4,B5:B7,0),MATCH(I5,C4:F4,0)) vezme výstup první funkce jako číslo řádku a druhé funkce jako číslo sloupce a vrátí hodnotu, která je na pozici z rozsahu C5:F7 .

  • Poté stiskněte tlačítko Vstupte na .

Můžeme tedy použít INDEX-MATCH s více kritérii náležejícími k řádkům a sloupcům.

Přečtěte si více: Excel Index Shoda jednoho/více kritérií s jedním/více výsledky

Podobná čtení

  • INDEX MATCH se 3 kritérii v Excelu (4 příklady)
  • INDEX MATCH na více listech v aplikaci Excel (s alternativou)
  • Součet s funkcemi INDEX-MATCH v aplikaci Excel podle více kritérií
  • Součet indexů více řádků v aplikaci Excel (3 způsoby)
  • Vzorec INDEX-MATCH pro vyhledání minimální hodnoty v aplikaci Excel (4 vhodné způsoby)

3. INDEX-MATCH z nesousedních sloupců

V této části si ukážeme příklad, jak načíst shodné hodnoty pomocí dvou nesousedících sloupců. Navíc potřebujeme funkce IFERROR pro tento scénář.

Toto bude soubor dat pro ukázku.

Postupujte podle následujících kroků, abyste zjistili, jak můžeme použít INDEX-MATCH pro nesousedící sloupce (produkt a množství) v tomto souboru dat.

Kroky:

  • Nejprve vyberte buňku G6 .
  • Pak do něj zapište následující vzorec.

=IFERROR(INDEX(B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)), "Žádná hodnota")

🔎 Rozdělení vzorce

IFERROR(INDEX(B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)), "Žádná hodnota")

👉 MATCH(G5,B4:B7,0) najde přesnou shodu hodnoty buňky G5 v rozsahu B4:B7 .

👉 a MATCH(F6,B4:D4,0) najde přesnou shodu se zadáním F6 je rozsah B4:D4 .

👉 Pak INDEX(B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)) bere první hodnotu funkce jako číslo řádku a druhou hodnotu funkce jako číslo sloupce a vrací hodnotu na dané pozici v rozsahu B4:D7 .

👉 Nakonec, IFERROR(INDEX(B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)), "Žádná hodnota") vrátí řetězec "No Value", pokud při provádění vzorce došlo k chybě. V opačném případě vrátí obvyklou hodnotu.

  • Poté stiskněte tlačítko Vstupte na na klávesnici.

Díky tomu můžeme v Excelu najít požadovanou shodu pomocí funkce INDEX-MATCH z nesousedních sloupců pro vybraná kritéria, a to i pro více kritérií.

4. INDEX-MATCH z více tabulek

Pro nalezení shody z více tabulek můžeme použít příkaz INDEX-MATCH Vedle této funkce budeme potřebovat také SMALL , ISNUMBER , ROW , COUNTIF a IFERROR také funkce.

V ukázkovém listu máme 2 produkty obchodu. Pomocí tohoto listu si ukážeme, jak úlohu provést.

Podle následujících kroků zjistíte, jak můžeme v aplikaci Excel použít kombinaci těchto funkcí spolu s funkcí INDEX-MATCH s více shodami z této sady tabulek.

Kroky:

  • Nejprve vyberte buňku C14 .
  • Nyní si zapište následující vzorec.

=IFERROR(INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1))), INDEX($F$6:$F$10, SMALL(IF(ISNUMBER(MATCH($E$6:$E$10, $C$12, 0)), MATCH(ROW($E$6:$E$10), ROW($E$6:$E$10)), ""), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12))))

🔎 Rozdělení vzorce

IFERROR(INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1))), INDEX($F$6:$F$10, SMALL(IF(ISNUMBER(MATCH($E$6:$E$10, $C$12, 0)), MATCH(ROW($E$6:$E$10), ROW($E$6:$E$10)), ""), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12))))

👉 MATCH($B$6:$B$10, $C$12, 0) najde přesnou shodu se zadáním C12 v rozsahu B6:B10 .

👉 ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)) kontroluje, zda je hodnota ve funkci číslo.

👉 IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), "") ROW($B$6:$B$10)) zkontroluje, zda je předchozí funkce číslem, nebo ne. Pokud ano, vrátí výstupní hodnotu funkce. MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)) což je pozice, na které se shoduje pole čísel řádků v prvním a druhém řádku. ROW V opačném případě vrací prázdný řetězec.

👉 SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1)) vrací ROWS($A$1:A1) -tá nejmenší hodnota z pole.

👉 Nakonec. INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1))) vrátí hodnotu na dané pozici v rozsahu C6:C10 .

👉 INDEX($F$6:$F$10, SMALL(IF(ISNUMBER(MATCH($E$6:$E$10, $C$12, 0)), MATCH(ROW($E$6:$E$10), ROW($E$6:$E$10)), ""), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12)))) dělá totéž, ale z druhé tabulky, protože rozsahy jsou v této části vzorce zjevně odlišné.

👉 Nakonec celá funkce přebírá celou funkci a vrací hodnotu INDEX-MATCH kombinace. Dopad IFERROR funkce je, že pokud by při provádění vzorce došlo k chybám, nevrátila by žádnou hodnotu.

  • Pak stiskněte tlačítko Vstupte na .

  • Poté znovu vyberte buňku a kliknutím a přetažením ikony úchytu výplně dolů pro více buněk vyhledejte zbytek hodnot z tabulek. Můžete přetáhnout další buňky, Excel zastaví hodnoty, jakmile jich nebude více.

Takto můžeme použít funkci INDEX-MATCH s použitím kritérií z více tabulek v aplikaci Excel.

Přečtěte si více: Více kritérií v aplikaci Excel pomocí funkcí INDEX, MATCH a COUNTIF

5. INDEX-MATCH z více pracovních listů

Vzorec INDEX-MATCH můžeme použít nad různými listy. Zde máme tyto dvě tabulky nad dvěma různými listy.

List dílny 1 pro dílnu 1 a list dílny 2 pro dílnu 2.

Pro vytvoření výsledku stačí zadat název listu před odkazem na buňku. Pro více informací postupujte podle následujících kroků.

Kroky:

  • Nejprve vyberte buňku C14 z listu "Obchod 1".
  • Pak si zapište následující vzorec.

=IFERROR(INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1))), INDEX('Shop 2'!$C$6:$C$10, SMALL(IF(ISNUMBER(MATCH('Shop 2'!$B$6:$B$10, $C$12, 0)), MATCH(ROW('Shop 2'!$B$6:$B$10), ROW('Shop 2'!$B$6:$B$10)), ""), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12))))

🔎 Rozdělení vzorce

IFERROR(INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), “”), ROWS($A$1:A1))), INDEX(‘Shop 2’!$C$6:$C$10, SMALL(IF(ISNUMBER(MATCH(‘Shop 2’!$B$6:$B$10, $C$12, 0)), MATCH(ROW(‘Shop 2’!$B$6:$B$10), ROW(‘Shop 2’!$B$6:$B$10)), “”), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12))))

👉 MATCH($B$6:$B$10, $C$12, 0) hledá přesnou shodu s hodnotou buňky C12 v rozsahu B6:B10 .

👉 ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)) kontroluje, zda výstupem předchozí funkce je číslo, nebo ne. Což určuje, zda došlo ke shodě, nebo ne. Jedná se pouze o převod číselné hodnoty na logickou.

👉 Pak IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), "") zkontroluje hodnotu boolean a vrátí MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)) pokud je hodnota true. V opačném případě vrátí prázdný řetězec. MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)) část je řada čísel, kde ŘÁDEK($B$6:$B$10) a ŘÁDEK($B$6:$B$10) To je jen šikovný trik, jak omezit celkový počet řádků ve vybrané sekci.

👉 Poté, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1) hledá ROWS($A$1:A1) -tá nejmenší hodnota z výstupu příkazu IF část.

👉 Nakonec, INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1))) přebírá výstup předchozí funkce jako číslo řádku a ROWS($A$1:A1) jako číslo sloupce a vrátí hodnotu, která se nachází na této pozici v rozsahu C6:C10 .

👉 Podobně, INDEX('Shop 2'!$C$6:$C$10, SMALL(IF(ISNUMBER(MATCH('Shop 2'!$B$6:$B$10, $C$12, 0)), MATCH(ROW('Shop 2'!$B$6:$B$10), ROW('Shop 2'!$B$6:$B$10)), "") provede totéž, ale z druhého listu. Protože název listu je "Obchod 2", přidali jsme jej před výběrem rozsahů/buňek. Není nutné je přidávat na list, na kterém provádíte výpočty. Proto jsme to v předchozí části vzorce pro "Obchod 1" neudělali.

👉 Nakonec jsme celou funkci přidali do souboru IFERROR Důvodem je vrácení prázdného pole v případě, že při provádění vzorce dojde k chybě.

  • Nakonec stiskněte Vstupte na .

  • Nyní opět vyberte buňku. Poté klikněte na ikonu úchytu výplně a přetáhněte ji u některých buněk směrem dolů (více, než je odhadovaná velikost výstupní buňky, by mělo být v pořádku).

Následně najdeme všechny shody pomocí INDEX-MATCH z více listů v aplikaci Excel.

6. INDEX-MATCH pro více kritérií bez pole

INDEX-MATCH můžeme použít také pro více shod nebo kritérií bez pole. Vezměme si například následující datovou sadu.

K tomu však nejprve potřebujeme pomocný sloupec. Použijeme funkce CONCATENATE kromě daných funkcí. Úplný návod získáte podle těchto kroků.

Kroky:

  • Nejprve vyberte buňku F5 a zapište následující vzorec.

=CONCATENATE(C5,",",D5,",",E5)

  • Pak stiskněte tlačítko Vstupte na .

  • Nyní opět vyberte buňku a kliknutím a přetažením ikony rukojeti výplně na konec sloupce zkopírujte vzorec pro ostatní buňky.

  • Dále zjistíme INDEX-MATCH pro všech 100 v původním souboru dat. Za tímto účelem vyberte buňku, do které se uloží hodnota ( H5 v tomto případě).
  • Pak vložte následující vzorec.

=INDEX(B5:B19,MATCH("100,100,100",F5:F19,0))

🔎 Rozdělení vzorce

👉 MATCH(“100,100,100”,F5:F19,0) hledá přesnou shodu 100,100,100 v rozsahu F5:F19 .

👉 Pak INDEX(B5:B19,MATCH(“100,100,100”,F5:F19,0)) vrátí hodnotu na pozici, kde se hodnota shoduje.

  • Nakonec stiskněte Vstupte na .

Tímto způsobem můžeme v Excelu použít INDEX-MATCH pro více kritérií nebo shod bez pole.

Jak vrátit více hodnot vertikálně pomocí vzorce INDEX-MATCH v aplikaci Excel

Pokud chcete vrátit více hodnot vertikálně pomocí INDEX-MATCH, podívejme se na následující příklad.

Postupujte podle následujících kroků a zjistěte, jak toho můžeme dosáhnout pro datovou sadu.

Kroky:

  • Nejprve vyberte buňku F5 .
  • Za druhé si zapište následující vzorec.

=IFERROR(INDEX($C$5:$C$14,SMALL(IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1),ROW(1:1))),"")

🔎 Rozdělení vzorce

👉 ŘÁDEK($B$5:$B$14) vrací pole obsahující čísla řádků rozsahu B5:B14 .

👉 ŘÁDEK($B$5:$B$14)-ŘÁDEK($B$5)+1 vrací rozdíl mezi polem a číslem řádku buňky B5 což je v tomto případě pole 1 až 10.

👉 IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1) kontroluje, kde je hodnota buňky E5 se rovná v rozmezí B5:B14 a vrátí číslo v poli, kde je true z předchozího pole.

👉 SMALL(IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1),ROW(1:1)) vrátí nejmenší číslo z pole.

👉 INDEX($C$5:$C$14,SMALL(IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1)),ROW(1:1))) pak vrátí hodnotu na dané pozici v rozsahu C5:C14 .

👉 Nakonec, IFERROR(INDEX($C$5:$C$14,SMALL(IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1),ROW(1:1))),"") zajistí, že pokud hodnota ve vzorci způsobí chybu, vrátí prázdný řetězec.

  • Za třetí stiskněte Vstupte na .

  • Poté buňku znovu vyberte. Nakonec klikněte na ikonu rukojeti výplně a přetáhněte ji u některých buněk dolů, abyste získali všechny hodnoty.

Tímto způsobem můžeme vrátit více hodnot vertikálně pomocí funkce INDEX-MATCH v aplikaci Excel.

Přečtěte si více: INDEX MATCH s více kritérii na jiném listu (2 způsoby)

Závěr

To je pro dnešek vše. Pokusili jsme se vám ukázat několik způsobů INDEX MATCH s více shodami. Doufáme, že vám to bude užitečné. Neváhejte se vyjádřit, pokud se vám bude zdát něco obtížně pochopitelné. Můžete nás upozornit na další způsoby řešení této úlohy.

Další podobné průvodce najdete na adrese Exceldemy.com .

Hugh West je velmi zkušený školitel a analytik Excelu s více než 10 lety zkušeností v oboru. Má bakalářský titul v oboru Účetnictví a finance a magisterský titul v oboru Business Administration. Hugh má vášeň pro výuku a vyvinul jedinečný přístup k výuce, který lze snadno sledovat a pochopit. Jeho odborné znalosti Excelu pomohly tisícům studentů a profesionálů po celém světě zlepšit své dovednosti a vyniknout ve své kariéře. Prostřednictvím svého blogu Hugh sdílí své znalosti se světem a nabízí bezplatné výukové programy Excelu a online školení, které jednotlivcům a firmám pomohou dosáhnout jejich plného potenciálu.