Obsah
Když potřebujete v listu najít data, která odpovídají určitému klíčovému záznamu, obvykle se obracíte na VLOOKUP v tabulkách Google. Ale vidíte: VLOOKUP vás téměř okamžitě udeří omezeními. Proto raději zvyšte prostředky pro tento úkol tím, že se naučíte INDEX MATCH.
INDEX MATCH v Tabulkách Google je kombinací dvou funkcí: INDEX a MATCH. Při použití v tandemu fungují jako lepší alternativa pro VLOOKUP v Tabulkách Google. Pojďme se o jejich schopnostech přesvědčit společně v tomto příspěvku na blogu. Nejprve bych vás ale rád krátce seznámil s jejich vlastními rolemi v tabulkách.
Funkce MATCH v tabulkách Google
Rád bych začal s nástrojem MATCH v tabulkách Google, protože je opravdu jednoduchý. Prohledá vaše data a vrátí jejich pozici:
=MATCH(search_key, range, [search_type])- search_key je ten záznam, který hledáte. Požadováno.
- rozsah je buď řádek, nebo sloupec, ve kterém se má hledat. Požadováno.
Poznámka: MATCH přijímá pouze jednorozměrná pole: buď řádková, nebo sloupcová.
- search_type je nepovinná a určuje, zda má být shoda přesná nebo přibližná. Pokud je vynechána, je výchozí hodnota 1:
- 1 znamená, že rozsah je seřazen vzestupně. Funkce získá největší hodnotu menší nebo rovnou vaší hodnotě. search_key .
- 0 přiměje funkci hledat přesnou shodu v případě, že váš rozsah není seřazen.
- -1 napovídá, že záznamy jsou řazeny sestupně. V tomto případě funkce získá nejmenší hodnotu větší nebo rovnou vaší hodnotě. search_key .
Zde je příklad: chci-li získat pozici určité bobule v seznamu všech bobulí, potřebuji v tabulkách Google následující vzorec MATCH:
=MATCH("Blueberry", A1:A10, 0)
Funkce INDEX v tabulkách Google
Zatímco funkce MATCH ukazuje, kde hledat hodnotu (její umístění v rozsahu), funkce INDEX v Tabulkách Google načte samotnou hodnotu na základě jejího řádkového a sloupcového posunu:
=INDEX(reference, [řádek], [sloupec])- odkaz je rozsah, který je třeba hledat. Požadováno.
- řádek je počet řádků, které mají být odsazeny od první buňky rozsahu. Nepovinné, pokud není uvedeno, je to 0.
- sloupec , stejně jako řádek , je počet odsazených sloupců. Rovněž nepovinné, pokud je vynecháno, také 0.
Pokud zadáte oba nepovinné argumenty (řádek a sloupec), vrátí nástroj Google Sheets INDEX záznam z cílové buňky:
=INDEX(A1:C10, 7, 1)
Pokud jeden z těchto argumentů vynecháte, funkce vám odpovídajícím způsobem zobrazí celý řádek nebo sloupec:
=INDEX(A1:C10, 7)
Jak používat INDEX MATCH v Tabulkách Google - příklady vzorců
Když se INDEX a MATCH používají v tabulkách společně, jsou nejmocnější. Mohou naprosto nahradit VLOOKUP v tabulkách Google a načíst požadovaný záznam z tabulky na základě klíčové hodnoty.
Vytvoření prvního vzorce INDEX MATCH pro Tabulky Google
Předpokládejme, že byste chtěli získat informace o zásobách brusinek ze stejné tabulky, kterou jsem použil výše. Pouze jsem prohodil sloupce B a C (proč, to se dozvíte o něco později).
- Nyní jsou všechny bobule uvedeny ve sloupci C. Funkce MATCH v tabulkách Google vám pomůže najít přesný řádek brusinky: 8
=MATCH("Brusinka", C1:C10, 0)
- Celý vzorec MATCH vložte do řádek argument ve funkci INDEX:
=INDEX(A1:C10, MATCH("Brusinka", C1:C10, 0))
Ten vrátí celou řadu s brusinkami.
- Protože však potřebujete pouze informace o zásobách, zadejte také číslo sloupce pro vyhledávání: 3
=INDEX(A1:C10, MATCH("Brusinka", C1:C10,0), 2)
- Voila!
- Můžete jít ještě dál a vzdát se posledního sloupcového indikátoru ( 2 ). Pokud používáte pouze sloupec pro vyhledávání ( B1:B10 ), nikoliv celé tabulky ( A1:C10 ) jako první argument:
=INDEX(B1:B10, MATCH("Brusinka", C1:C10, 0))
Tip. Pohodlnějším způsobem, jak zkontrolovat dostupnost různých bobulí, by bylo umístit je do rozevíracího seznamu ( E2 ) a odkažte funkci MATCH na buňku s tímto seznamem:
=INDEX(B1:B10, MATCH(E2, C1:C10, 0))
Po výběru bobulí se odpovídajícím způsobem změní související hodnota:
Proč je INDEX MATCH v Tabulkách Google lepší než VLOOKUP
Už víte, že INDEX MATCH v Tabulkách Google vyhledá vaši hodnotu v tabulce a vrátí jiný související záznam ze stejného řádku. A víte, že VLOOKUP v Tabulkách Google dělá přesně totéž. Tak proč se tím zabývat?
Jde o to, že, INDEX MATCH má adresu některé hlavní výhody nad VLOOKUP:
- Je možné vyhledávání na levé straně . pro ilustraci jsem dříve změnil místa sloupců: funkce INDEX MATCH v Google Sheets může hledat a hledá nalevo od hledaného sloupce. VLOOKUP vždy hledá úplně první sloupec rozsahu a hledá shody napravo od něj - jinak dostane pouze chyby #N/A:
- Žádné zmatené odkazy při přidávání nových sloupců a přesouvání stávajících. Pokud přidáte nebo přesunete sloupce, INDEX MATCH tyto změny automaticky zohlední, aniž by zasahoval do výsledku. Protože používáte odkazy na sloupce, Tabulky Google je okamžitě upraví:
Klidně to zkuste udělat pomocí VLOOKUP: vyžaduje číslo objednávky, nikoli odkaz na buňku pro vyhledávací sloupec. Tím pádem nakonec jen získáte špatnou hodnotu, protože na stejném místě je jiný sloupec - sloupec 2 v mém příkladu:
- Zvažuje případ textu v případě potřeby (více o tom níže).
- Lze použít pro vertikální vyhledávání na základě více kritérií.
Vyzývám vás, abyste se na poslední dva body podívali podrobněji níže.
Vyhledávání v s rozlišováním malých a velkých písmen pomocí INDEX MATCH v Tabulkách Google
INDEX MATCH je vhodný, pokud jde o citlivost na velká a malá písmena.
Předpokládejme, že všechny bobule se prodávají dvěma způsoby - volně (vážené u pultu) a balené v krabicích. Proto jsou v seznamu dva výskyty každé bobule zapsané v různých případech, každý s vlastním ID, které se v případech také liší:
Jak tedy můžete vyhledat informace o zásobách bobulí prodávaných určitým způsobem? VLOOKUP vrátí první nalezený název bez ohledu na jeho velikost.
Naštěstí to INDEX MATCH pro Tabulky Google umí správně. Stačí použít jednu další funkci - FIND nebo EXACT.
Příklad 1. FIND pro Vlookup s rozlišováním velkých a malých písmen
Funkce FIND rozlišuje v tabulkách Google velká a malá písmena, takže se skvěle hodí pro vertikální vyhledávání podle velikosti písmen:
=ArrayFormula(INDEX(B2:B19, MATCH(1, FIND(E2, C2:C19)), 0))
Podívejme se, co se stane v tomto vzorci:
- FIND prohledá sloupec C ( C2:C19 ) pro záznam z E2 ( cherry ) s ohledem na velikost písmen. Po nalezení vzorec "označí" danou buňku číslem - 1 .
- MATCH vyhledává tuto značku - 1 - ve stejném sloupci ( C ) a předá číslo jeho řádku do INDEXu.
- INDEX přejde na tento řádek ve sloupci B ( B2:B19 ) a načte požadovaný záznam.
- Po dokončení sestavení vzorce stiskněte kombinaci kláves Ctrl+Shift+Enter, abyste na začátek přidali ArrayFormula. Je to nutné, protože bez něj nebude FIND schopen vyhledávat v polích (ve více než jedné buňce). Nebo můžete zadat ' ArrayFormula ' z klávesnice.
Příklad 2. EXACT pro Vlookup s rozlišováním velkých a malých písmen
Pokud nahradíte funkci FIND funkcí EXACT, bude tato funkce vyhledávat záznamy s přesně stejnými znaky, včetně velikosti písmen v textu.
Jediný rozdíl je v tom, že EXACT "označí" shodu pomocí TRUE spíše než počet 1 . Proto by první argument pro MATCH měl být TRUE :
=ArrayFormula(INDEX(B2:B19, MATCH(TRUE, EXACT(E2, C2:C19), 0)))
INDEX MATCH v tabulkách Google s více kritérii
Co když existuje několik podmínek, na jejichž základě chcete záznam načíst?
Zkontrolujme cenu cherry která se prodává v Vědra z PP a je již vyčerpání :
Všechna kritéria jsem uspořádal do rozevíracích seznamů ve sloupci F. A právě INDEX MATCH v tabulkách Google podporuje více kritérií, nikoli VLOOKUP. Zde je vzorec, který budete muset použít:
=ArrayFormula(INDEX(B2:B24, MATCH(CONCATENATE(F2:F4), A2:A24&C2:C24&D2:D24, 0),))
Nepropadejte panice! :) Jeho logika je vlastně docela jednoduchá:
- CONCATENATE(F2:F4) spojí všechny tři záznamy z buněk s kritérii do jednoho řetězce takto:
CherryPP bucketDochází
Jedná se o search_key pro MATCH, jinými slovy, co hledáte v tabulce.
- A2:A24&C2:C24&D2:D24 představují rozsah pro funkci MATCH. Protože všechna tři kritéria probíhají ve třech samostatných sloupcích, tímto způsobem je jakoby spojíte:
CherryKartonový podnosSkladem
Obal CherryFilmNení skladem
CherryPP bucketDochází
atd.
- Poslední argument v MATCH - 0 - umožňuje najít přesnou shodu pro CherryPP bucketDochází mezi všemi těmi řádky kombinovaných sloupců. Jak vidíte, je to ve 3. řádku.
- A pak INDEX provede svou práci: načte záznam ze 3. řádku sloupce B.
- ArrayFormula slouží k tomu, aby ostatní funkce mohly pracovat s poli.
Tip: Pokud vzorec nenajde shodu, vrátí chybu. Chcete-li se tomu vyhnout, můžete celý vzorec obalit IFERROR (aby byl prvním argumentem) a jako druhý argument zadat cokoli, co chcete v buňce vidět místo chyb:
=IFERROR(ArrayFormula(INDEX(B2:B27, MATCH(CONCATENATE(F2:F4), A2:A27&C2:C27&D2:D27, 0),)), "Not found")
Lepší alternativa k INDEX MATCH v tabulkách Google - vícenásobné shody VLOOKUP
Ať už dáváte přednost funkci VLOOKUP nebo INDEX MATCH, k oběma existuje lepší alternativa.
Multiple VLOOKUP Matches je speciální doplněk pro Tabulky Google určený k:
- vyhledávání bez vzorců
- vyhledávání ve všech směrech
- vyhledávání podle více podmínek pro různé typy dat: text, čísla, data, čas, atd.
- načíst několik zápalek, tolik, kolik potřebujete (samozřejmě za předpokladu, že jich je v tabulce tolik, kolik potřebujete).
Rozhraní je jednoduché, takže nemusíte pochybovat, zda vše děláte správně:
- Vyberte rozsah zdroje.
- Nastavení počtu shod a sloupců, které se mají vrátit.
- Dolaďte podmínky pomocí předdefinovaných operátorů ( obsahuje, =, není prázdný , mezi , atd.).
Budete také umět:
- náhled výsledku
- rozhodnout, kam ji umístit.
- a jak: jako vzorec nebo jen hodnoty
Nenechte si ujít příležitost vyzkoušet tento doplněk. Pusťte se do jeho instalace z Google Workspace Marketplace. Na jeho stránce s návodem vám budou všechny možnosti podrobně vysvětleny.
Připravili jsme také speciální instruktážní video:
Uvidíme se v komentářích níže nebo v dalším článku ;)