Obsah
Keď potrebujete vo svojom hárku nájsť údaje, ktoré zodpovedajú určitému kľúčovému záznamu, zvyčajne sa obraciate na VLOOKUP v tabuľke Google Sheets. Ale vidíte: VLOOKUP vás takmer okamžite udrie do očí obmedzeniami. Preto si radšej zvýšte prostriedky na túto úlohu tým, že sa naučíte INDEX MATCH.
INDEX MATCH v Tabuľkách Google je kombináciou dvoch funkcií: INDEX a MATCH. Keď sa používajú v tandeme, fungujú ako lepšia alternatíva pre VLOOKUP v Tabuľkách Google. Poďme sa o ich schopnostiach dozvedieť spoločne v tomto príspevku na blogu. Najprv by som vás však rád stručne oboznámil s ich vlastnými úlohami v tabuľkách.
Funkcia MATCH v tabuľkách Google
Rád by som začal s nástrojom MATCH z hárkov Google, pretože je naozaj jednoduchý. Vyhľadá vaše údaje pre konkrétnu hodnotu a vráti jej pozíciu:
=MATCH(search_key, range, [search_type])- search_key je ten záznam, ktorý hľadáte.
- rozsah je buď riadok, alebo stĺpec, v ktorom sa má hľadať. Požadované.
Poznámka: MATCH akceptuje len jednorozmerné polia: buď riadkové, alebo stĺpcové.
- search_type je nepovinný a určuje, či má byť zhoda presná alebo približná. Ak sa vynechá, je predvolená hodnota 1:
- 1 znamená, že rozsah je zoradený vzostupne. Funkcia získa najväčšiu hodnotu menšiu alebo rovnú vašej search_key .
- 0 spôsobí, že funkcia bude hľadať presnú zhodu v prípade, že váš rozsah nie je zoradený.
- -1 naznačuje, že záznamy sú zoradené pomocou zostupného triedenia. V tomto prípade funkcia získa najmenšiu hodnotu väčšiu alebo rovnú vašej search_key .
Tu je príklad: ak chcem získať pozíciu určitého bobuľovitého ovocia v zozname všetkých bobuľovitých plodov, potrebujem v tabuľkách Google nasledujúci vzorec MATCH:
=MATCH("Blueberry", A1:A10, 0)
Funkcia INDEX v tabuľkách Google
Zatiaľ čo funkcia MATCH ukazuje, kde sa má hodnota hľadať (jej umiestnenie v rozsahu), funkcia Google Sheets INDEX načíta samotnú hodnotu na základe jej posunu v riadku a stĺpci:
=INDEX(odkaz, [riadok], [stĺpec])- odkaz je rozsah, ktorý treba vyhľadať. Požadované.
- riadok je počet riadkov, ktoré sa majú odsadiť od prvej bunky vášho rozsahu. Nepovinné, ak sa vynechá, je to 0.
- stĺpec , rovnako ako riadok , je počet odsadených stĺpcov. Tiež nepovinné, ak sa vynechá, tiež 0.
Ak zadáte oba nepovinné argumenty (riadok a stĺpec), Google Sheets INDEX vráti záznam z cieľovej bunky:
=INDEX(A1:C10, 7, 1)
Ak jeden z týchto argumentov vynecháte, funkcia vám podľa toho zobrazí celý riadok alebo stĺpec:
=INDEX(A1:C10, 7)
Ako používať INDEX MATCH v hárkoch Google - príklady vzorcov
Keď sa INDEX a MATCH používajú v tabuľkách spoločne, sú najmocnejšie. Dokážu absolútne nahradiť VLOOKUP v tabuľkách Google a načítať požadovaný záznam z tabuľky na základe kľúčovej hodnoty.
Zostavte svoj prvý vzorec INDEX MATCH pre hárky Google
Predpokladajme, že by ste chceli získať informácie o zásobách brusníc z tej istej tabuľky, ktorú som použil vyššie. Vymenil som len stĺpce B a C (o niečo neskôr zistíte prečo).
- Teraz sú všetky bobule uvedené v stĺpci C. Funkcia Google Sheets MATCH vám pomôže nájsť presný riadok brusníc: 8
=MATCH("Brusnica", C1:C10, 0)
- Celý vzorec MATCH vložte do riadok argument vo funkcii INDEX:
=INDEX(A1:C10, MATCH("Brusnica", C1:C10, 0))
Tento riadok vráti celý riadok s brusnicami.
- Keďže však potrebujete iba informácie o zásobách, zadajte aj číslo stĺpca vyhľadávania: 3
=INDEX(A1:C10, MATCH("Brusnica", C1:C10,0), 2)
- Voila!
- Môžete ísť ďalej a vzdať sa posledného stĺpcového indikátora ( 2 ). Nebudete ho vôbec potrebovať, ak budete používať iba stĺpec vyhľadávania ( B1:B10 ) a nie celú tabuľku ( A1:C10 ) ako prvý argument:
=INDEX(B1:B10, MATCH("Brusnica", C1:C10, 0))
Tip. Pohodlnejším spôsobom kontroly dostupnosti rôznych bobúľ by bolo umiestniť ich do rozbaľovacieho zoznamu ( E2 ) a odkážte funkciu MATCH na bunku s týmto zoznamom:
=INDEX(B1:B10, MATCH(E2, C1:C10, 0))
Po výbere bobule sa príslušná hodnota zmení:
Prečo je INDEX MATCH v hárkoch Google lepší ako VLOOKUP
Už viete, že INDEX MATCH v hárkoch Google vyhľadá vašu hodnotu v tabuľke a vráti ďalší súvisiaci záznam z toho istého riadku. A viete, že VLOOKUP v hárkoch Google robí presne to isté. Tak prečo sa tým zaoberať?
Ide o to, INDEX MATCH má niektoré hlavné výhody nad VLOOKUP:
- Vyhľadávanie na ľavej strane je možné . predtým som zmenil miesta stĺpcov, aby som ilustroval toto: funkcia INDEX MATCH v Google Sheets môže a hľadá naľavo od hľadaného stĺpca. VLOOKUP vždy hľadá úplne prvý stĺpec rozsahu a hľadá zhody napravo od neho - inak dostane len chyby #N/A:
- Pri pridávaní nových stĺpcov a presúvaní existujúcich stĺpcov nedochádza k žiadnym zmätkom. Ak pridáte alebo presuniete stĺpce, INDEX MATCH automaticky zohľadní zmeny bez zásahu do výsledku. Keďže používate odkazy na stĺpce, Google Sheets ich okamžite upraví:
Pokúste sa to urobiť pomocou VLOOKUP: vyžaduje poradové číslo a nie odkazy na bunky pre vyhľadávací stĺpec. Takto nakoniec dostanete len nesprávnu hodnotu, pretože na rovnakom mieste je iný stĺpec - stĺpec 2 v mojom príklade:
- Uvažuje o textovom prípade v prípade potreby (viac o tom nižšie).
- Môže sa použiť na vertikálne vyhľadávanie na základe viacerých kritérií.
Vyzývam vás, aby ste sa podrobne pozreli na posledné dva body.
Vyhľadávanie v s rozlišovaním veľkých a malých písmen pomocou INDEX MATCH v tabuľkách Google
INDEX MATCH je vhodný, pokiaľ ide o citlivosť na veľkosť písmen.
Predpokladajme, že všetky bobule sa predávajú dvoma spôsobmi - voľne (vážené pri pulte) a balené v škatuliach. Preto sa v zozname vyskytujú dva výskyty každej bobule zapísanej v rôznych prípadoch, pričom každá má svoje ID, ktoré sa tiež líši v prípadoch:
Ako teda môžete vyhľadať informácie o zásobách bobúľ predávaných určitým spôsobom? VLOOKUP vráti prvý nájdený názov bez ohľadu na jeho veľkosť.
Našťastie, INDEX MATCH pre Google Sheets to dokáže správne. Budete musieť použiť len jednu ďalšiu funkciu - FIND alebo EXACT.
Príklad 1. FIND pre Vlookup s rozlišovaním veľkých a malých písmen
Funkcia FIND rozlišuje veľké a malé písmená v tabuľkách Google, vďaka čomu sa výborne hodí na vertikálne vyhľadávanie s rozlišovaním veľkých a malých písmen:
=ArrayFormula(INDEX(B2:B19, MATCH(1, FIND(E2, C2:C19)), 0))
Pozrime sa, čo sa stane v tomto vzorci:
- FIND prehľadá stĺpec C ( C2:C19 ) pre záznam z E2 ( čerešňa ) s ohľadom na veľkosť písmen. Po lokalizácii vzorec "označí" danú bunku číslom - 1 .
- MATCH vyhľadáva túto značku - 1 - v tom istom stĺpci ( C ) a odovzdá číslo jeho riadku INDEX.
- INDEX prichádza do tohto riadku v stĺpci B ( B2:B19 ) a vyhľadá požadovaný záznam.
- Po dokončení vytvárania vzorca stlačte klávesovú skratku Ctrl+Shift+Enter, aby ste na začiatok pridali ArrayFormula. Je potrebná, pretože bez nej FIND nebude môcť vyhľadávať v poliach (vo viac ako jednej bunke). Alebo môžete zadať ArrayFormula ' z klávesnice.
Príklad 2. EXACT pre Vlookup s rozlišovaním veľkých a malých písmen
Ak nahradíte položku FIND položkou EXACT, táto položka vyhľadá záznamy s presne rovnakými znakmi, vrátane veľkosti písmen v texte.
Jediný rozdiel je v tom, že EXACT "označí" zápas pomocou TRUE skôr ako počet 1 . Preto by mal byť prvý argument pre MATCH TRUE :
=ArrayFormula(INDEX(B2:B19, MATCH(TRUE, EXACT(E2, C2:C19), 0))
Tabuľky Google INDEX MATCH s viacerými kritériami
Čo ak existuje niekoľko podmienok, na základe ktorých chcete získať záznam?
Skontrolujme cenu čerešňa ktorá sa predáva v Vedrá z PP a už je dochádza :
Všetky kritériá som usporiadal do rozbaľovacích zoznamov v stĺpci F. A práve Google Sheets INDEX MATCH podporuje viacero kritérií, nie VLOOKUP. Tu je vzorec, ktorý budete musieť použiť:
=ArrayFormula(INDEX(B2:B24, MATCH(CONCATENATE(F2:F4), A2:A24&C2:C24&D2:D24, 0),))
Nepodliehajte panike! :) Jeho logika je vlastne celkom jednoduchá:
- CONCATENATE(F2:F4) spojí všetky tri záznamy z buniek s kritériami do jedného reťazca takto:
CherryPP bucketRunning out
Toto je search_key pre MATCH, alebo inými slovami, čo hľadáte v tabuľke.
- A2:A24&C2:C24&D2:D24 predstavujú rozsah keďže všetky tri kritériá sa nachádzajú v troch samostatných stĺpcoch, takýmto spôsobom ich môžete akoby spojiť:
CherryKartónový podnosSkladom
Balenie CherryFilmNie je na sklade
CherryPP bucketRunning out
atď.
- Posledný argument v MATCH - 0 - umožňuje nájsť presnú zhodu pre CherryPP bucketRunning out medzi všetkými týmito riadkami kombinovaných stĺpcov. Ako vidíte, nachádza sa v 3. riadku.
- A potom INDEX vykoná svoju činnosť: vyhľadá záznam z 3. riadku stĺpca B.
- ArrayFormula sa používa na to, aby iné funkcie mohli pracovať s poliami.
Tip. Ak váš vzorec nenájde zhodu, vráti chybu. Ak sa tomu chcete vyhnúť, môžete celý tento vzorec zabaliť do IFERROR (aby bol prvým argumentom) a ako druhý argument zadať čokoľvek, čo chcete vidieť v bunke namiesto chyby:
=IFERROR(ArrayFormula(INDEX(B2:B27, MATCH(CONCATENATE(F2:F4), A2:A27&C2:C27&D2:D27, 0),)), "Not found")
Lepšia alternatíva k INDEX MATCH v hárkoch Google - viacnásobné zhody VLOOKUP
Nech už preferujete akúkoľvek funkciu vyhľadávania, VLOOKUP alebo INDEX MATCH, k obom existuje lepšia alternatíva.
Multiple VLOOKUP Matches je špeciálny doplnok pre tabuľky Google určený na:
- vyhľadávanie bez vzorcov
- vyhľadávanie vo všetkých smeroch
- vyhľadávanie podľa viacerých podmienok pre rôzne typy údajov: text, čísla, dátumy, čas, atď.
- načítajte niekoľko zápaliek, koľko potrebujete (samozrejme, za predpokladu, že ich je v tabuľke toľko, koľko potrebujete).
Rozhranie je jednoduché, takže nemusíte pochybovať, či všetko robíte správne:
- Vyberte rozsah zdroja.
- Nastavenie počtu zhod a stĺpcov, ktoré sa majú vrátiť.
- Dolaďte podmienky pomocou preddefinovaných operátorov ( obsahuje, =, nie je prázdny , medzi , atď.).
Budete tiež vedieť:
- náhľad výsledku
- rozhodnúť, kam ho umiestniť.
- a ako: ako vzorec alebo len hodnoty
Nepremeškajte príležitosť vyskúšať tento doplnok. Kľudne si ho nainštalujte z obchodu Google Workspace Marketplace. Na jeho stránke s návodom vám budú podrobne vysvetlené všetky možnosti.
Pripravili sme aj špeciálne inštruktážne video:
Uvidíme sa v komentároch nižšie alebo v ďalšom článku ;)