Funkce ISERROR v aplikaci Excel s příklady vzorců

  • Sdílet Toto
Michael Brown

Výukový program se zabývá praktickým využitím funkce ISERROR aplikace Excel a ukazuje, jak testovat různé vzorce na výskyt chyb.

Když napíšete vzorec, kterému Excel nerozumí nebo jej nedokáže vypočítat, upozorní vás na problém zobrazením chybové zprávy. Funkce ISERROR vám pomůže chyby zachytit a v případě nalezení chyby poskytne alternativu.

    Funkce ISERROR v aplikaci Excel

    Funkce ISERROR aplikace Excel zachytí všechny druhy chyb, včetně #CALC!, #DIV/0!, #N/A, #NAME?, #NUM!, #NULL!, #REF!, #VALUE! a #SPILL!. Výsledkem je logická hodnota: TRUE, pokud byla zjištěna chyba, FALSE v opačném případě.

    Funkce je k dispozici ve všech verzích aplikace Excel 2000 až 2021 a v aplikaci Excel 365.

    Syntaxe funkce ISERROR je jednoduchá:

    ISERROR(value)

    Kde: hodnota je hodnota buňky nebo vzorce, u kterého se mají hledat chyby.

    Vzorec ISERROR aplikace Excel

    Chcete-li vytvořit vzorec ISERROR v jeho nejjednodušší podobě, zadejte odkaz na buňku, kterou chcete testovat na chyby. Například:

    =ISERROR(A2)

    V případě nalezení chyby se zobrazí TRUE. Pokud v testované buňce není žádná chyba, zobrazí se FALSE:

    Vzorec IF ISERROR v aplikaci Excel

    Chcete-li při výskytu chyby vrátit vlastní zprávu nebo provést jiný výpočet, použijte funkci ISERROR spolu s funkcí IF. Obecný vzorec vypadá následovně:

    IF(ISERROR( vzorec (...), text_or_calculation_if_error , vzorec ())

    Přeloženo do lidského jazyka říká: pokud hlavní vzorec vede k chybě, zobrazte zadaný text nebo spusťte jiný výpočet, jinak vraťte normální výsledek vzorce.

    Na obrázku níže vydělením celkového počtu množstvím vznikne několik chyb v tabulce. Cena sloupec:

    Chcete-li nahradit všechny různé chybové kódy vlastním textem, můžete použít následující vzorec IF ISERROR:

    =IF(ISERROR(A2/B2), "Neznámý", A2/B2)

    V aplikaci Excel 2007 a novějších verzích lze stejného výsledku dosáhnout pomocí vestavěné funkce IFERROR:

    =IFERROR(A2/B2, "Unknown")

    Je třeba poznamenat, že vzorec IFERROR běží o něco rychleji, protože provádí výpočet A2/B2 pouze jednou. Zatímco IF ISERROR jej počítá dvakrát - nejprve zjišťuje, zda generuje chybu, a poté znovu, pokud je test FALSE.

    IF ISERROR Vzorec VLOOKUP

    Použití funkce ISERROR s funkcí VLOOKUP je vlastně zvláštním případem výše popsaného vzorce IF ISERROR. Pokud funkce VLOOKUP nemůže najít hledanou hodnotu nebo selže z jiného důvodu, zobrazíte pomocí této syntaxe vlastní textovou zprávu:

    IF(ISERROR(VLOOKUP(...)), " custom_text ", VLOOKUP(...))

    Pro tento příklad vytáhneme časy z vyhledávací tabulky (D3:E10) do hlavní tabulky (A3:B15). Pokud hodnota vyhledávání (jméno účastníka) v tabulce vyhledávání neexistuje, vrátíme "Not qualified".

    =IF(ISERROR(VLOOKUP(A3, $D$3:$E$10, 2, FALSE)), "Nekvalifikovaný", VLOOKUP(A3, $D$3:$E$10, 2, FALSE))

    Tip. Pokud chcete zobrazit vlastní text pouze v případě, že se zobrazí hodnota vyhledávání nebyla nalezena (chyba #N/A) a ignoruje ostatní chyby, pak použijte vzorec IFNA VLOOKUP v Excelu 2013 a novějších verzích nebo IF ISNA VLOOKUP ve starších verzích.

    IF ISERROR INDEX MATCH vzorec

    Při vyhledávání pomocí kombinace INDEX MATCH (nebo vzorce INDEX XMATCH v aplikaci Excel 365) můžete pomocí stejné techniky zachytit a ošetřit případné chyby - funkce ISERROR kontroluje, zda nedošlo k chybě, a při výskytu chyby zobrazí zadaný text.

    IF(ISERROR(INDEX ( return_column , MATCH ( lookup_value , lookup_column , 0)))), " custom_text ", INDEX ( return_column , MATCH ( lookup_value , lookup_column , 0)))

    Předpokládejme, že vyhledávací tabulka má v prvním sloupci časy. Protože VLOOKUP se neumí podívat doleva, použijeme vzorec INDEX MATCH, abychom vytáhli časy ze sloupce D:

    =INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))

    A poté jej vnoříte do výše uvedeného obecného vzorce a nahradíte zachycené chyby libovolným textem:

    =IF(ISERROR(INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0)), "Not qualified", INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0)))

    Poznámka: Stejně jako u vzorce IF ISERROR VLOOKUP má větší smysl zachycovat pouze chyby #N/A a nezakrývat případné problémy se samotným vzorcem. Za tímto účelem zabalte vzorec INDEX MATH do IFNA v Excelu 2013 a vyšších verzích nebo IF ISNA ve starších verzích.

    IF ISERROR Ano/Ne vzorec

    Ve všech předchozích příkladech IF ISERROR vracel výsledek hlavního vzorce, pokud se nejedná o chybu. Může však fungovat i jinak - vrátit něco, pokud je chyba, a něco jiného, pokud chyba není.

    IF(ISERROR( vzorec (...)), " text_if_error ", " text_if_no_error ")

    Předpokládejme, že v našem ukázkovém souboru dat vás nezajímají přesné časy, chcete pouze vědět, kteří účastníci ze skupiny A jsou kvalifikovaní a kteří ne. K tomu použijte funkci MATCH, která porovná jméno ve sloupci A se seznamem kvalifikovaných účastníků ve sloupci D a výsledky pak doručí do ISERROR. Pokud jméno ve sloupci D není k dispozici (MATCH vrátí chybu), získátefunkce IF zobrazí "Ne" nebo "Nekvalifikovaný". Pokud se název objeví ve sloupci D (bez chyby), vrátí se "Ano" nebo "Kvalifikovaný".

    =IF(ISERROR(MATCH(A3, $D$3:$D$10, 0)), "Ne", "Ano" )

    Jak spočítat počet chyb

    Chcete-li zjistit počet chyb v určitém sloupci, musíte zkontrolovat rozsah, nikoli pouze jednu buňku. Za tímto účelem "nakrmte" cílový rozsah funkcí ISERROR a vrácené logické hodnoty přetvořte na 1 a 0 pomocí dvojitého unárního operátoru (--). Funkce SUM nebo SUMPRODUCT může čísla sečíst a poskytnout konečný výsledek.

    Například:

    =SUM(--ISERROR(C2:C10))

    Upozorňujeme, že tento vzorec funguje jako běžný vzorec pouze v aplikacích Excel 365 a Excel 2021, které podporují dynamická pole. V aplikaci Excel 2019 a starších musíte pro vytvoření vzorce pole stisknout klávesy Ctrl + Shift + Enter (nepište ručně kudrnaté závorky, to nebude fungovat!):

    {=SUM(--ISERROR(C2:C10))}

    Případně můžete použít funkci SUMPRODUCT, která nativně pracuje s poli, takže vzorec lze ve všech verzích dokončit obvyklou klávesou Enter:

    =SUMPRODUCT(--ISERROR(C2:C10))

    Rozdíl mezi ISERROR a IFERROR v aplikaci Excel

    Funkce ISERROR i IFERROR slouží k zachycení a ošetření chyb v aplikaci Excel. Rozdíl je následující:

    • Ve své čisté podobě ISERROR pouze testuje, zda je hodnota chybou, nebo ne. Je k dispozici ve všech verzích aplikace Excel.
    • Funkce IFERROR je určena k potlačení nebo zamaskování chyb - při zjištění chyby vrátí jinou hodnotu, kterou zadáte. Je k dispozici v aplikaci Excel 2007 a vyšší.

    Na první pohled vypadá IFERROR jako zkrácená alternativa vzorce IF ISERROR. Při bližším pohledu si však můžete všimnout rozdílu:

    • IFERROR umožňuje zadat pouze value_if_error . Pokud nedojde k chybě, vrátí vždy výsledek testované hodnoty/vzorce.
    • IF ISERROR poskytuje větší flexibilitu a umožňuje řešit obě situace - co se má stát v případě chyby a co v případě, že chyba nenastala.

    Pro lepší ilustraci uveďme tyto vzorce:

    =IFERROR(A1, "Chyba výpočtu")

    =IF(ISERROR(A1), "Chyba výpočtu", A1)

    Tyto dva vzorce jsou ekvivalentní - oba kontrolují hodnotu ve vzorci A1 a v případě chyby vracejí "Chyba výpočtu", v opačném případě vracejí hodnotu.

    Ale co když chcete provést nějaký výpočet, pokud hodnota v A1 není chybou? To funkce IFERROR neumí. V případě IF ISERROR stačí do posledního argumentu zadat požadovaný výpočet. Například:

    =IF(ISERROR(A1), "Chyba výpočtu", A1*2)

    Jak vidíte, tato delší varianta vzorce IFERROR, která je často považována za zastaralou, může být stále užitečná :)

    Dostupné soubory ke stažení

    Příklady vzorců ISERROR (.xlsx soubor)

    Michael Brown je oddaný technologický nadšenec s vášní pro zjednodušování složitých procesů pomocí softwarových nástrojů. S více než desetiletými zkušenostmi v technologickém průmyslu zdokonalil své dovednosti v aplikacích Microsoft Excel a Outlook a také v Tabulkách a Dokumentech Google. Michaelův blog je věnován sdílení jeho znalostí a odborných znalostí s ostatními a poskytuje snadno pochopitelné tipy a návody pro zlepšení produktivity a efektivity. Ať už jste zkušený profesionál nebo začátečník, Michaelův blog nabízí cenné postřehy a praktické rady, jak tyto základní softwarové nástroje co nejlépe využít.