Ako riešiť, keď VLOOKUP vypisuje chybu
Úloha:
Zistiť názov obchodného reťazca prislúchajúceho obchodníkovi, ktorého meno sme zapísali do béžovej bunky.
Ak zapíšeme do béžovej bunky meno obchodníka, ktoré sa v zozname nenachádza, alebo ho napíšeme nesprávne, funkcia VLOOKUP vypíše, že hľadaný údaj je nedostupný. Excel nevie, že Michal je Mišo. V bunke vypíše chybové hlásenie #NEDOSTUPNÝ a hotovo.
Používateľa nepoteší omrežované chybové hlásenie už len preto, že ruší estetiku vytvorených tabuliek. Tento oznam však bežnému užívateľovi nehovorí nič a už vôbec o ďalších možnostiach ako sa dopracovať k výsledku.
Ak pracujeme s číslami, môže takáto chybová hláška viesť dokonca k zreťazeniu chýb. V prípade, že VLOOKUP hľadanú hodnotu nenájde, vráti chybové hlásenie a ďalšie funkcie (napríklad SUM pre súčet stĺpca) nemôžu uskutočniť výpočty s chybovými bunkami. Tiež vypíšu chybu.
Excel našťastie ponúka viacero možností ako upraviť zápis tak, aby výsledok dopadol úplne inak. Tu je jedna z nich.
Pomocou ďalšej funkcie doplníme VLOOKUP tak, aby aj menej skúsený používateľ nehádzal po výsledku #NEDOSTUPNÝ flintu do žita.
V prípade, že chceme chybové hlásenie obísť a nahradiť ho zmysluplným oznamom, vnoríme v našom príklade funkciu VLOOKUP do funkcie IFERROR a nastavíme oznam, ktorý sa objaví v prípade zlyhania pri vyhľadávaní.
Funkcia IFERROR je tým pomocníkom, ktorý vypíše zvolené oznámenie namiesto chyby. V slovenskej verzii Excelu považuje funkcia za chybové hlásenia výsledky #NEDOSTUPNÝ, #HODNOTA!, #ODKAZ!, #DELENIENULOU!, #ČÍSLO!, #NÁZOV? a #NEPLATNÝ!.
Zápis funkcie vyzerá nasleodvne:
=IFERROR(hodnota;hodnota_ak_chyba)
Ak funkcia zistí, že hodnota je chyba, vypíše druhý argument. Inak prvý. Takto môžeme chybové hlášky Excelu nahradiť ľubovoľným textom alebo číslom. ktoré uvedieme v druhom argumente funkcie. Napríklad „Údaj nie je k dispozícii“, „Nemáme!“, alebo aj zložitejším „Hľadaný údaj nie je k dispozícii. Skontrolujte správnosť zápisu hľadaného mena a zdrojových údajov.“ V prípade číselných hodnôt sa používa – ak to má zmysel – nahradenie chyby nulou.
Takto jednoducho (alebo zložito) môže vyzerať zápis vzorca pre náš príklad:
=IFERROR(VLOOKUP(F3;$B$3:$C$14;2;FALSE);“Nie je k dispozícii.“)
alebo
=IFERROR(VLOOKUP(F3;$B$3:$C$14;2;FALSE);“Hľadaný údaj nie je k dispozícii. Skontrolujte správnosť zápisu hľadaného mena a zdrojových údajov.“)
Funkcia IFERROR skontroluje, či je hodnota vrátená prvým argumentom (v tomto prípade funkciou VLOOKUP) chyba, alebo nie. Ak nie je, vypíše výsledok hľadania VLOOKUPom, ak je, v bunke sa objaví obsah druhého argumentu.