XLOOKUP jako lepší verze funkce SVYHLEDAT

xlookup

Funkce XLOOKUP je poměrně nová funkce, dostupná v MS Office 365. Funkce není přeložena, proto ji v české i anglické verzi Excelu najdete pod stejným názvem XLOOKUP.

V základu je podobná funkci SVYHLEDAT, o které se více dozvíte v tomto článku, má oproti ní ale pár vychytávek, takže věřím, že si také najde své oblíbence 😊. Oproti funkci SVYHLEDAT je podle mě:

  • jednodušší na zadávání (má jen 3 povinné argumenty),
  • snazší na pochopení,
  • zároveň nabízí několik rozšíření v podobě 3 nepovinných argumentů, které jsme s SVYHLEDAT museli složitěji obcházet.

Funkce slouží k vyhledání položek v tabulce a vrácení hodnoty z jiného sloupce. Na rozdíl od funkce SYVHLEDAT, ale nemusí být hledaná hodnota VPRAVO od hodnoty, která propojuje obě tabulky! Je tedy jedno, na které straně je hledaný sloupec a jak jsou sloupce uspořádané. Navíc funkce umí hledat hodnotu i horizontálně ve sloupcích, díky tomu nahrazuje i další vyhledávací funkce (příklad 6).

Další velkou výhodou je, že ve funkci je již zakomponována funkce IFERROR pro ošetření toho, že v některém řádku nebude hodnota dohledána. V ideálním světe a databázi by se nám tohle moc dít nemělo, ale řekněme si na rovinu, že v reálném světě je kombinace SVYHLEDAT a IFERROR úplně běžná, ne-li nutná, a proto nás i Microsoft touto vychytávkou přímo ve funkci vybavil 😊 (příklad 2).

Jak tedy funkci vytvoříme?

Funkce obsahuje 3 povinné a 3 volitelné argumenty:

  • CO
    • povinný argument
    • Co hledám?
  • PROHLEDAT
    • povinný argument
    • Označím sloupec, ve kterém je hledaná hodnota v druhé/prohledávané tabulce.
  • VRÁTIT
    • povinný argument
    • Označím sloupec, ze kterého chci vrátit hodnotu.
    • POZOR! Můžeme zde označit a vrátit současně i více sloupců (příklad 3).
  • Pokud_nenalezeno
    • nepovinný argument
    • Co má funkce vrátit, pokud nic nenajde (může to být hodnota, text, chybová hláška …). Zde je zakomponována již zmiňovaná funkce IFERROR.
    • Pokud tento argument nezadáme, funkce vrátí v případě nenalezení hodnoty chybovou hlášku #NENÍ_K_DISPOZICI.
  • Režim_shody (příklad 4)
    • nepovinný argument
    • Známe z funkce SVYHLEDAT. Většinou (i defaultně) je nastavena přesná shoda = 0.
    • Typy shod:
      • 0 = přesná shoda
      • -1 = nejbližší nižší číslo
      • 1 = nejbližší vyšší číslo
      • 2 = shoda se zástupnými znaky (příklad 5):
        • * = libovolný počet znaků
        • ? = libovolný jeden znak
  • Režim _vyhledávání
    • nepovinný argument
    • V jakém směru budeme vyhledávat (shora nebo odspodu).
    • Defaultně je nastaveno od první po poslední hodnotu.
    • Typy režimů:
      •  1 = vyhledává od začátku
      • -1 = vyhledává od konce
      •  2 = vzestupně seřazené
      • -2 = sestupně seřazené

Kouzlo je především v argumentu PROHLEDAT a VRÁTIT. Na rozdíl od funkce SVYHLEDAT(VLOOKUP) nemusíme označovat v argumentu PROHLEDAT celou tabulku, nemusíme řešit pořadí sloupců a ani počítat kolikátý sloupec chceme vrátit 😊. Jednoduše v XLOOKUP nejprve označíme společný sloupec pro obě tabulky a potom sloupec, ze kterého chceme hodnotu vrátit.

Připravila jsem si pro vás i několik praktických příkladů, které najdete ve video návodu níže:

1. Z tabulky níže doplňte pomocí XLOOKUP ID produktu.

Stačí nám vyplnit první 3 argumenty a máme výsledek.

2. Přímo ve funkci ošetřete chybovou hlášku.

Postel v tabulce nemáme. Pokud nechceme zobrazovat chybovou hlášku #NENÍ_K_DISPOZICI, nastavíme 4. argument POKUD NENALEZENO. Toto je praktická ukázka nahrazení funkce IFERROR, kterou bychom museli použít u funkce SVYHLEDAT.

3. Vraťte současně oba sloupce: ID i Cenu za kus.

V argumentu VRÁTIT označíme OBA SLOUPCE. Ve výsledné tabulce stačí napsat funkci do prvního z nich (v našem příkladu ID) a automaticky se funkce vloží i do dalších sloupců.

4. Do sloupce Množstevní sleva doplňte výši slevy podle počtu kusů (nejbližší nižší číslo).

Všimněme si, že hledaná hodnota POČET KUSŮ je VLEVO od % slevy, kterou funkcí XLOOKUP vracíme. To bychom s funkcí SVYHLEDAT nedokázali.

Pokud chceme vrátit nejbližší nižší číslo, nezapomeneme nastavit 5. argument REŽIM SHODY = -1.

5. Použijte zástupný znak, abychom našli v tabulce Česko = Česká republika.

Pokud používáme zástupné znaky, musíme nastavit 5. argument REŽIM SHODY =2. V tomto příklady je předchozí argument POKUD NENALAZENO prázdný.

6. Pomocí XLOOKUP najděte v tabulce vlevo počet kusů pro vybranou kombinaci (Novák + komoda) :

Druhá XLOOKUP funkce je argumentem VRÁTIT první XLOOKUP funkce. V tomto příkladu jsme nahradili kombinaci funkcí POZVYHLEDAT a INDEX funkcí XLOOKUP.

Když si to ještě jednou shrneme – proč se naučit používat XLOOKUP?

  1. Nezáleží na pořadí sloupců – nemusíme tabulku upravovat.
  2. Nemusíme zvlášť ošetřovat funkcí IFERROR.
  3. Můžeme vrátit více sloupců současně.
  4. Funkce umí pracovat se zástupnými znaky (například * a ?).
  5. Funkce umí hledat i horizontálně -> můžeme s ní nahradit i dříve používanou kombinaci funkcí INDEX a POZVYHLEDAT.

Diskuze

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Přehled ochrany osobních údajů
Excel hrou

Tyto webové stránky používají soubory cookies, abychom vám mohli poskytnout co nejlepší uživatelský zážitek. Informace o souborech cookie se ukládají ve vašem prohlížeči a plní funkce, jako je rozpoznání, když se na naše webové stránky vrátíte, a pomáhají našemu týmu pochopit, které části webových stránek považujete za nejzajímavější a nejužitečnější.

Nezbytně nutné soubory cookies

Nezbytně nutný soubor cookie by měl být vždy povolen, abychom mohli uložit vaše preference nastavení souborů cookie.

Soubory cookies třetích stran

Tyto webové stránky používají službu Google Analytics ke shromažďování anonymních informací, jako je počet návštěvníků webu a nejoblíbenější stránky.

Povolení tohoto souboru cookie nám pomáhá zlepšovat naše webové stránky.