Obsah
V tomto návode sa pozrieme na to, ako používať ISERROR s VLOOKUP v programe Excel na produktívne spracovanie všetkých druhov chýb.
VLOOKUP je jednou z najzamotanejších funkcií Excelu, ktorú trápi množstvo problémov. Nech už hľadáte v akejkoľvek tabuľke, chyby #N/A sú bežným javom, pričom sa sem-tam objavia aj chyby #NAME a #VALUE. Použitie VLOOKUP s funkciou ISERROR vám pomôže zachytiť všetky možné chyby a spracovať ich spôsobom, ktorý je najvhodnejší pre vašu situáciu.
Prečo VLOOKUP hlási chybu?
Najčastejšou chybou vo vzorcoch VLOOKUP je #N/A keď sa hodnota vyhľadávania nenájde. Môže k tomu dôjsť z rôznych dôvodov:
- Hodnota vyhľadávania neexistuje v poli vyhľadávania.
- Hodnota vyhľadávania je nesprávne napísaná.
- V hodnote vyhľadávania alebo v stĺpci vyhľadávania sú úvodné alebo koncové medzery.
- Vyhľadávací stĺpec nie je najľavejším stĺpcom tabuľkového poľa.
Okrem toho môžete naraziť na #VALUE! chyba, napr. keď hodnota vyhľadávania obsahuje viac ako 255 znakov. V prípade, že je v názve funkcie pravopisná chyba, zobrazí sa #NAME? zobrazí sa chyba.
Úplný odkaz nájdete v našom predchádzajúcom príspevku na tému Prečo nefunguje Excel VLOOKUP.
Vzorec IF ISERROR VLOOKUP na nahradenie chýb vlastným textom
Ak chcete zamaskovať všetky možné chyby, ktoré môže VLOOKUP vyvolať, môžete ho umiestniť do vzorca IF ISERROR takto:
IF(ISERROR(VLOOKUP(...)), " text_if_error ", VLOOKUP(...))Ako príklad si vytiahnime názvy predmetov, z ktorých žiaci skupiny A neuspeli v testoch:
=VLOOKUP(A3, $D$3:$E$9, 2, FALSE)
Výsledkom je, že dostávate množstvo chýb #N/A, čo môže vzbudiť dojem, že vzorec je poškodený.
V skutočnosti tieto chyby len naznačujú, že niektoré z hodnôt vyhľadávania (A3:A14) sa nenachádzajú v zozname vyhľadávania (D3:D9). Ak chcete jasne vyjadriť túto myšlienku, vnorte svoj vzorec VLOOKUP do konštrukcie IF ISERROR:
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "Nie", VLOOKUP(A3, $D$3:$E$9, 2, FALSE))
Tým sa zachytia chyby a vráti sa vlastná textová správa:
Tipy a poznámky:
- Hlavnou výhodou tohto vzorca je, že funguje pekne v všetky verzie Excel 2000 až Excel 365. V moderných verziách sú k dispozícii jednoduchšie a kompaktnejšie alternatívy.
- Funkcia ISERROR zachytáva úplne všetky chyby , ako napríklad #N/A, #NAME, #VALUE atď. V prípade, že chcete zobraziť vlastnú správu len vtedy, keď sa hodnota vyhľadávania nenašla (chyba #N/A), použite IF ISNA VLOOKUP (vo všetkých verziách) alebo IFNA VLOOKUP (v programe Excel 2013 a novších).
ISERROR VLOOKUP na vrátenie prázdnej bunky v prípade chyby
Ak chcete, aby sa pri výskyte chyby zobrazila prázdna bunka, vráťte do vzorca namiesto vlastného textu prázdny reťazec (""):
IF(ISERROR(VLOOKUP(...)), "", VLOOKUP(...))V našom prípade má vzorec tento tvar:
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "", VLOOKUP(A3, $D$3:$E$9, 2, FALSE))
Výsledok je presne taký, ako sa očakáva - prázdna bunka, ak sa meno študenta nenachádza vo vyhľadávacej tabuľke.
Tip. Podobným spôsobom môžete chyby VLOOKUP nahradiť nulami, pomlčkami alebo akýmkoľvek iným znakom. Stačí použiť požadovaný znak namiesto prázdneho reťazca.
IF ISERROR VLOOKUP Áno/Nie vzorec
V niektorých situáciách sa môže stať, že niečo hľadáte, ale namiesto vyťahovania zápaliek chcete len vrátiť Áno (alebo iný text, ak sa nájde hodnota vyhľadávania) a Nie (ak sa hodnota vyhľadávania nenašla). Ak to chcete urobiť, môžete použiť tento všeobecný vzorec:
IF(ISERROR(VLOOKUP(...)), " text_if_not_found ", " text_if_found ")Predpokladajme, že v našom vzorovom súbore údajov chcete zistiť, ktorí študenti v teste neuspeli a ktorí nie. Ak to chcete dosiahnuť, nasaďte už známy vzorec ISERROR VLOOKUP na logický test IF a povedzte mu, aby vypisoval "Nie", ak sa hodnota nenašla (ISERROR VLOOKUP vráti TRUE), "Áno", ak sa našla (ISERROR VLOOKUP vráti FALSE):
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "Nie", "Áno")
Alternatívy ISERROR VLOOKUP
Kombinácia IF ISERROR je najstaršou časom overenou technikou na Vlookup bez chýb v programe Excel. Postupom času sa vyvinuli nové funkcie, ktoré poskytujú jednoduchšie spôsoby na vykonanie rovnakej úlohy. Nižšie si rozoberieme ďalšie možné riešenia a kedy je najlepšie použiť každé z nich.
IFERROR VLOOKUP
K dispozícii v programe Excel 2007 a novších verziách
Od verzie 2007 má Excel špeciálnu funkciu s názvom IFERROR, ktorá kontroluje vzorec na prítomnosť chýb a v prípade zistenia chyby vráti vlastný text (alebo spustí alternatívny vzorec).
IFERROR(VLOOKUP(...), " text_if_error ")Reálny vzorec je nasledovný:
=IFERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE), "Nie")
Na prvý pohľad vyzerá ako kratšia obdoba vzorca IF ISERROR VLOOKUP. Je tu však podstatný rozdiel:
- IFERROR VLOOKUP predpokladá, že vždy chcete výsledok VLOOKUP, ak nejde o chybu.
- IF ISERROR VLOOKUP umožňuje určiť, čo sa má vrátiť v prípade chyby a čo v prípade, že chyba nenastala.
Ďalšie podrobnosti nájdete v časti Používanie IFERROR s VLOOKUP v programe Excel.
AK JE VLOOKUP
Funguje v programe Excel 2000 a novšom
V situácii, keď chcete zachytiť len #N/A bez zachytenia iných chýb, príde vhod funkcia ISNA. Syntax je rovnaká ako pri IF ISERROR VLOOKUP:
IF(ISNA(VLOOKUP(...)), " text_if_error ", VLOOKUP(...))Za určitých okolností však tento zdanlivo rovnaký vzorec môže priniesť odlišné výsledky:
=IF(ISNA(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "Nie", VLOOKUP(A3, $D$3:$E$9, 2, FALSE))
Na nasledujúcom obrázku bunka A13 obsahuje veľa končiacich medzier, kvôli ktorým celková dĺžka vyhľadávanej hodnoty presahuje 255 znakov. Výsledkom je, že vzorec vyvolá chybu #VALUE!, ktorá vás upozorní na túto bunku a vyzve vás k preskúmaniu príčin. ISERROR VLOOKUP by v tomto prípade vrátil "No", čo by len zastrelo problém a prinieslo úplne nesprávny výsledok.
Kedy používať:
Tento vzorec funguje výborne v situácii, keď chcete zobraziť nejaký text len vtedy, keď sa hodnota vyhľadávania nenájde, a nechcete maskovať základné problémy so samotným vzorcom VLOOKUP, napr. keď je nesprávne zadaný názov funkcie (#NAME?) alebo nie je zadaná úplná cesta k zošitu vyhľadávania (#VALUE!).
Ďalšie informácie nájdete v časti Funkcia ISNA v programe Excel s príkladmi vzorcov.
IFNA VLOOKUP
K dispozícii v aplikácii Excel 2013 a vyšších verziách
Je to moderná náhrada kombinácie IF ISNA, ktorá umožňuje jednoduchšie spracovať chyby #N/A.
IFNA(VLOOKUP(...), " text_if_error ")Tu je skrátený ekvivalent nášho vzorca IF ISNA VLOOKUP:
=IFNA(VLOOKUP(A3, $D$3:$E$9, 2, FALSE), "Nie")
Kedy používať:
Je to ideálne riešenie na zachytávanie a spracovanie chýb #N/A v moderných verziách programu Excel (2013 - 365).
Podrobné informácie nájdete vo funkcii IFNA aplikácie Excel.
XLOOKUP
Podporované v aplikáciách Excel 2021 a Excel 365
Vďaka zabudovanej funkcii "if error" je funkcia XLOOKUP najjednoduchším spôsobom, ako v programe Excel vyhľadávať bez chýb #N/A. Stačí, ak do nepovinného 4. argumentu s názvom if_not_found .
Napríklad:
=XLOOKUP(A3, $D$3:$D$9, $E$3:$E$9, "Nie")
Obmedzenie: Zachytáva len chyby #N/A, ostatné typy ignoruje.
Ďalšie informácie nájdete v časti Funkcia XLOOKUP v programe Excel.
Ako vidíte, Excel poskytuje pomerne veľa rôznych možností, ako sa dostať k chybám VLOOKUP-u. Dúfam, že tento návod vám objasnil, ako ich efektívne používať. Ďakujem vám za prečítanie a dúfam, že sa uvidíme na našom blogu budúci týždeň!
Dostupné súbory na stiahnutie
ISERROR s príkladmi VLOOKUP (.xlsx súbor)