Funkcia ISERROR v programe Excel s príkladmi vzorcov

  • Zdieľajte To
Michael Brown

Tento návod sa zaoberá praktickým využitím funkcie ISERROR programu Excel a ukazuje, ako testovať rôzne vzorce na prítomnosť chýb.

Keď napíšete vzorec, ktorému Excel nerozumie alebo ho nedokáže vypočítať, upozorní vás na problém zobrazením chybového hlásenia. Funkcia ISERROR vám môže pomôcť zachytiť chyby a poskytnúť alternatívu pri zistení chyby.

    Funkcia ISERROR v programe Excel

    Funkcia Excel ISERROR zachytáva všetky druhy chýb vrátane #CALC!, #DIV/0!, #N/A, #NAME?, #NUM!, #NULL!, #REF!, #VALUE! a #SPILL!. Výsledkom je logická hodnota: TRUE, ak sa zistila chyba, FALSE v opačnom prípade.

    Funkcia je k dispozícii vo všetkých verziách programu Excel 2000 až 2021 a Excel 365.

    Syntax funkcie ISERROR je jednoduchá:

    ISERROR(hodnota)

    Kde hodnota je hodnota bunky alebo vzorca, ktorý sa má skontrolovať na prítomnosť chýb.

    Vzorec Excel ISERROR

    Ak chcete vytvoriť vzorec ISERROR v najjednoduchšej podobe, zadajte odkaz na bunku, v ktorej chcete testovať chyby. Napríklad:

    =ISERROR(A2)

    V prípade, že sa v testovanej bunke nájde nejaká chyba, zobrazí sa TRUE. Ak sa v testovanej bunke nenachádza žiadna chyba, zobrazí sa FALSE:

    Vzorec IF ISERROR v programe Excel

    Ak chcete pri výskyte chyby vrátiť vlastnú správu alebo vykonať iný výpočet, použite funkciu ISERROR spolu s funkciou IF. Všeobecný vzorec vyzerá takto:

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

    Preložené do ľudského jazyka to znamená: ak hlavný vzorec vedie k chybe, zobrazte zadaný text alebo spustite iný výpočet, inak vráťte normálny výsledok vzorca.

    Na nasledujúcom obrázku vydelenie celkovej sumy množstvom generuje niekoľko chýb v Cena stĺpec:

    Ak chcete nahradiť všetky rôzne kódy chýb vlastným textom, môžete použiť nasledujúci vzorec IF ISERROR:

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

    V programe Excel 2007 a novších verziách možno rovnaký výsledok dosiahnuť pomocou vstavanej funkcie IFERROR:

    =IFERROR(A2/B2, "Neznámy")

    Treba poznamenať, že vzorec IFERROR beží o niečo rýchlejšie, pretože výpočet A2/B2 vykoná len raz. Zatiaľ čo IF ISERROR ho vypočíta dvakrát - najprv zistí, či generuje chybu, a potom znova, ak je test FALSE.

    IF ISERROR Vzorec VLOOKUP

    Použitie funkcie ISERROR s funkciou VLOOKUP je v skutočnosti osobitným prípadom vyššie uvedeného vzorca IF ISERROR. Keď funkcia VLOOKUP nemôže nájsť hľadanú hodnotu alebo zlyhá z iného dôvodu, pomocou tejto syntaxe zobrazíte vlastnú textovú správu:

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

    V tomto príklade vytiahneme časy z vyhľadávacej tabuľky (D3:E10) do hlavnej tabuľky (A3:B15). Ak vyhľadávaná hodnota (meno účastníka) neexistuje vo vyhľadávacej tabuľke, vrátime hodnotu "Not qualified".

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

    Tip. Ak chcete zobraziť vlastný text len vtedy, keď hodnota vyhľadávania sa nenašla (chyba #N/A) ignorujúc ostatné chyby, potom použite vzorec IFNA VLOOKUP v programe Excel 2013 a novších alebo IF ISNA VLOOKUP v starších verziách.

    IF ISERROR INDEX MATCH vzorec

    Pri vyhľadávaní pomocou kombinácie INDEX MATCH (alebo vzorca INDEX XMATCH v programe Excel 365) môžete zachytiť a spracovať prípadné chyby pomocou rovnakej techniky - funkcia ISERROR kontroluje chyby a IF zobrazí zadaný text, ak sa vyskytne nejaká chyba.

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

    Predpokladajme, že vyhľadávacia tabuľka má v prvom stĺpci časy. Keďže VLOOKUP sa nevie pozrieť doľava, použijeme vzorec INDEX MATCH na vytiahnutie časov zo stĺpca D:

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

    A potom ho vložíte do vyššie uvedeného všeobecného vzorca a nahradíte zachytené chyby ľubovoľným textom:

    =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. Podobne ako pri vzorci IF ISERROR VLOOKUP má väčší zmysel zachytávať len chyby #N/A a neskrývať potenciálne problémy so samotným vzorcom. Na tento účel zabaľte vzorec INDEX MATH do IFNA v programe Excel 2013 a vyšších verziách alebo IF ISNA v starších verziách.

    IF ISERROR Áno/Nie vzorec

    Vo všetkých predchádzajúcich príkladoch IF ISERROR vrátil výsledok hlavného vzorca, ak nejde o chybu. Môže však fungovať aj iným spôsobom - vrátiť niečo, ak je chyba, a niečo iné, ak chyba nie je.

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

    Predpokladajme, že v našom vzorovom súbore údajov vás nezaujímajú presné časy, chcete len vedieť, ktorí účastníci zo skupiny A sú kvalifikovaní a ktorí nie sú. Na tento účel použite funkciu MATCH na porovnanie mena v stĺpci A so zoznamom kvalifikovaných účastníkov v stĺpci D a potom výsledky doručte do ISERROR. Ak meno nie je k dispozícii v stĺpci D (MATCH vráti chybu), získajtefunkcia IF zobrazí "Nie" alebo "Nekvalifikovaný". Ak sa názov objaví v stĺpci D (bez chyby), vráti sa "Áno" alebo "Kvalifikovaný".

    =IF(ISERROR(MATCH(A3, $D$3:$D$10, 0)), "Nie", "Áno" )

    Ako počítať počet chýb

    Ak chcete získať počet chýb v určitom stĺpci, musíte skontrolovať rozsah, nie len jednu bunku. Na tento účel "nakŕmte" cieľový rozsah funkciou ISERROR a vrátenú logickú hodnotu premeníte na 1 a 0 pomocou dvojitého unárneho operátora (--). Funkcia SUM alebo SUMPRODUCT môže čísla sčítať a poskytnúť konečný výsledok.

    Napríklad:

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

    Upozorňujeme, že tento vzorec funguje ako bežný vzorec len v aplikáciách Excel 365 a Excel 2021, ktoré podporujú dynamické polia. V aplikácii Excel 2019 a starších musíte na vytvorenie vzorca poľa stlačiť klávesovú skratku Ctrl + Shift + Enter (nezadávajte kučeravé zátvorky ručne, to nebude fungovať!):

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

    Prípadne môžete použiť funkciu SUMPRODUCT, ktorá natívne spracováva polia, takže vzorec môžete dokončiť pomocou obvyklého klávesu Enter vo všetkých verziách:

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

    Rozdiel medzi ISERROR a IFERROR v programe Excel

    Funkcie ISERROR aj IFERROR sa používajú na zachytenie a spracovanie chýb v programe Excel. Rozdiel je nasledovný:

    • Vo svojej čistej podobe ISERROR len testuje, či je hodnota chybou alebo nie. Je k dispozícii vo všetkých verziách programu Excel.
    • Funkcia IFERROR je určená na potlačenie alebo zamaskovanie chýb - pri zistení chyby vráti inú hodnotu, ktorú zadáte. Je k dispozícii v programe Excel 2007 a vyšších.

    Na prvý pohľad vyzerá IFERROR ako skrátená alternatíva k vzorcu IF ISERROR. Pri bližšom pohľade si však môžete všimnúť rozdiel:

    • IFERROR umožňuje zadať iba value_if_error Ak nedôjde k chybe, vždy sa vráti výsledok testovanej hodnoty/formuly.
    • IF ISERROR poskytuje väčšiu flexibilitu a umožňuje riešiť obe situácie - čo sa má stať, ak nastane chyba, a čo, ak chyba nenastane.

    Na lepšiu ilustráciu si uveďte tieto vzorce:

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

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

    Tieto dva vzorce sú ekvivalentné - oba kontrolujú hodnotu riadenú vzorcom v A1 a v prípade chyby vrátia "Chyba výpočtu", v opačnom prípade vrátia hodnotu.

    Ale čo ak chcete vykonať nejaký výpočet, ak hodnota v A1 nie je chyba? To funkcia IFERROR nedokáže. V prípade IF ISERROR stačí do posledného argumentu zadať požadovaný výpočet. Napríklad:

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

    Ako vidíte, táto dlhšia variácia vzorca IFERROR, ktorá sa často považuje za zastaranú, môže byť stále užitočná :)

    Dostupné súbory na stiahnutie

    Príklady vzorcov ISERROR (.xlsx súbor)

    Michael Brown je nadšený technologický nadšenec s vášňou pre zjednodušovanie zložitých procesov pomocou softvérových nástrojov. S viac ako desaťročnými skúsenosťami v technologickom priemysle si zdokonalil svoje zručnosti v programoch Microsoft Excel a Outlook, ako aj Tabuľky Google a Dokumenty. Michaelov blog je venovaný zdieľaniu svojich vedomostí a odborných znalostí s ostatnými a poskytuje jednoduché tipy a návody na zlepšenie produktivity a efektivity. Či už ste skúsený profesionál alebo začiatočník, Michaelov blog ponúka cenné poznatky a praktické rady, ako z týchto základných softvérových nástrojov vyťažiť maximum.