Obsah
Výukový program ukazuje, jak v Excelu používat funkci IFERROR k zachycení chyb a jejich nahrazení prázdnou buňkou, jinou hodnotou nebo vlastní zprávou. Dozvíte se, jak funkci IFERROR používat s funkcemi Vlookup a Index Match a jak ji porovnat s funkcemi IF ISERROR a IFNA.
"Dejte mi místo, kde budu stát, a pohnu zemí," řekl kdysi Archimédes. "Dejte mi vzorec, a donutím ho vrátit chybu," řekl by uživatel Excelu. V tomto kurzu se nebudeme zabývat tím, jak v Excelu vracet chyby, ale spíše se naučíme, jak jim předcházet, aby vaše pracovní listy byly čisté a vzorce přehledné.
Funkce IFERROR aplikace Excel - syntaxe a základní použití
Funkce IFERROR v aplikaci Excel je určena k zachycení a řešení chyb ve vzorcích a výpočtech. Konkrétně funkce IFERROR kontroluje vzorec, a pokud vyhodnotí chybu, vrátí jinou zadanou hodnotu; v opačném případě vrátí výsledek vzorce.
Syntaxe funkce IFERROR aplikace Excel je následující:
IFERROR(value, value_if_error)Kde:
- Hodnota (povinné) - co se má zkontrolovat na chyby. Může to být vzorec, výraz, hodnota nebo odkaz na buňku.
- Value_if_error (povinné) - co se má vrátit v případě nalezení chyby. Může to být prázdný řetězec (prázdná buňka), textová zpráva, číselná hodnota, jiný vzorec nebo výpočet.
Například při dělení dvou sloupců čísel může dojít k řadě různých chyb, pokud jeden ze sloupců obsahuje prázdné buňky, nuly nebo text.
Abyste tomu zabránili, použijte funkci IFERROR, která zachytí a ošetří chyby tak, jak chcete.
Pokud je chyba, pak prázdný
Zadejte prázdný řetězec (") do příkazu value_if_error vrátit prázdnou buňku, pokud je nalezena chyba:
=IFERROR(A2/B2, "")
Pokud dojde k chybě, zobrazte zprávu
Místo standardního zápisu chyb aplikace Excel můžete také zobrazit vlastní zprávu:
=IFERROR(A2/B2, "Chyba ve výpočtu")
5 věcí, které byste měli vědět o funkci IFERROR aplikace Excel
- Funkce IFERROR v aplikaci Excel zpracovává všechny typy chyb včetně #DIV/0!, #N/A, #NAME?, #NULL!, #NUM!, #REF! a #VALUE!.
- V závislosti na obsahu value_if_error argumentu, může IFERROR nahradit chyby vlastní textovou zprávou, číslem, datem nebo logickou hodnotou, výsledkem jiného vzorce nebo prázdným řetězcem (prázdnou buňkou).
- Pokud hodnota je prázdná buňka, je považována za prázdný řetězec ('''), ale ne za chybu.
- Funkce IFERROR byla zavedena v aplikaci Excel 2007 a je k dispozici ve všech následujících verzích aplikací Excel 2010, Excel 2013, Excel 2016, Excel 2019, Excel 2021 a Excel 365.
- Pro zachycení chyb v aplikaci Excel 2003 a starších verzích použijte funkci ISERROR v kombinaci s IF, jak je uvedeno v tomto příkladu.
Příklady vzorců IFERROR
Následující příklady ukazují, jak v aplikaci Excel použít funkci IFERROR v kombinaci s dalšími funkcemi k provádění složitějších úloh.
Excel IFERROR s Vlookup
Jedním z nejčastějších použití funkce IFERROR je informování uživatelů, že hledaná hodnota v souboru dat neexistuje. Pro tento účel obalíte vzorec VLOOKUP funkcí IFERROR takto:
IFERROR(VLOOKUP( ... ), "Nenalezeno")Pokud se hodnota vyhledávání nenachází v tabulce, kterou hledáte, běžný vzorec Vlookup by vrátil chybu #N/A:
Pro klid uživatelů zabalte VLOOKUP do IFERROR a zobrazte informativnější a uživatelsky přívětivější zprávu:
=IFERROR(VLOOKUP(A2, 'Lookup table'!$A$2:$B$4, 2,FALSE), "Not found")
Níže uvedený obrázek ukazuje tento vzorec Iferror v aplikaci Excel:
Pokud chcete zachytit pouze chyby #N/A, ale ne všechny chyby, použijte místo funkce IFERROR funkci IFNA.
Další příklady vzorce IFERROR VLOOKUP v aplikaci Excel naleznete v těchto výukových materiálech:
- Iferror s Vlookup pro zachycení a zpracování chyb
- Jak získat N-tý výskyt hodnoty vyhledávání
- Jak získat všechny výskyty hodnoty vyhledávání
Vnořené funkce IFERROR pro provádění sekvenčních vyhledávání v aplikaci Excel
V situacích, kdy potřebujete provést více Vlookupů na základě toho, zda předchozí Vlookup uspěl nebo ne, můžete do sebe vnořit dvě nebo více funkcí IFERROR.
Předpokládejme, že máte řadu výkazů o prodeji z regionálních poboček vaší společnosti a chcete získat částku pro určité ID objednávky. S hodnotou A2 jako vyhledávací hodnotou v aktuálním listu a A2:B5 jako vyhledávacím rozsahem ve 3 vyhledávacích listech (Výkaz 1, Výkaz 2 a Výkaz 3) vypadá vzorec takto:
=IFERROR(VLOOKUP(A2,'Report 1'!A2:B5,2,0),IFERROR(VLOOKUP(A2,'Report 2'!A2:B5,2,0),IFERROR(VLOOKUP(A2,'Report 3'!A2:B5,2,0), "nenalezeno")))
Výsledek bude vypadat podobně:
Podrobné vysvětlení logiky vzorce naleznete v části Jak provádět sekvenční procházení v aplikaci Excel.
IFERROR ve vzorcích pole
Jak pravděpodobně víte, vzorce pole v aplikaci Excel jsou určeny k provádění více výpočtů v rámci jednoho vzorce. Pokud zadáte vzorec pole nebo výraz, jehož výsledkem je pole ve tvaru hodnota argumentu funkce IFERROR, vrátí pole hodnot pro každou buňku v zadaném rozsahu. Níže uvedený příklad ukazuje podrobnosti.
Řekněme, že máte Celkem ve sloupci B a Cena ve sloupci C a chcete vypočítat Celkové množství . To lze provést pomocí následujícího postupu vzorec pole, která vydělí každou buňku rozsahu B2:B4 odpovídající buňkou rozsahu C2:C4 a poté výsledky sečte:
=SOUČET($B$2:$B$4/$C$2:$C$4)
Vzorec funguje správně, pokud rozsah dělitelů neobsahuje nuly nebo prázdné buňky. Pokud je v něm alespoň jedna hodnota 0 nebo prázdná buňka, vrátí se chyba #DIV/0!:
Chcete-li tuto chybu opravit, jednoduše proveďte dělení ve funkci IFERROR:
=SOUČET(IFERROR($B$2:$B$4/$C$2:$C$4,0))
Vzorec dělí hodnotu ve sloupci B hodnotou ve sloupci C v každém řádku (100/2, 200/5 a 0/0) a vrací pole výsledků {50; 40; #DIV/0!}. Funkce IFERROR zachytí všechny chyby #DIV/0! a nahradí je nulami. A pak funkce SUM sečte hodnoty ve výsledném poli {50; 40; 0} a vypíše konečný výsledek (50+40=90).
Poznámka: Nezapomeňte, že vzorce pole by měly být dokončeny stisknutím klávesové zkratky Ctrl + Shift + Enter.
IFERROR vs. IF ISERROR
Nyní, když už víte, jak snadné je používat funkci IFERROR v Excelu, se možná divíte, proč se někteří lidé stále přiklánějí k používání kombinace IF ISERROR. Má to nějaké výhody oproti IFERROR? Žádné. Ve starých špatných časech Excelu 2003 a nižších, kdy IFERROR neexistovala, byla IF ISERROR jediným možným způsobem, jak zachytit chyby. V Excelu 2007 a novějších verzích je to jen trochu složitější způsob, jakdosáhnout stejného výsledku.
Chcete-li například zachytit chyby Vlookup, můžete použít některý z níže uvedených vzorců.
V aplikaci Excel 2007 - Excel 2016:
IFERROR(VLOOKUP( ... ), "Nenalezeno")Ve všech verzích aplikace Excel:
IF(ISERROR(VLOOKUP(...)), "Nenalezeno", VLOOKUP(...))Všimněte si, že ve vzorci IF ISERROR VLOOKUP musíte Vlookup provést dvakrát. V jednoduché angličtině lze vzorec přečíst takto: Pokud Vlookup skončí chybou, vraťte "Not found", jinak vypište výsledek Vlookup.
A zde je skutečný příklad vzorce If Iserror Vlookup aplikace Excel:
=IF(ISERROR(VLOOKUP(D2, A2:B5,2,FALSE)), "Nenalezeno", VLOOKUP(D2, A2:B5,2,FALSE ))
Další informace naleznete v části Použití funkce ISERROR v aplikaci Excel.
IFERROR vs. IFNA
Funkce IFNA, která byla zavedena v aplikaci Excel 2013, je další funkcí pro kontrolu vzorce na přítomnost chyb. Její syntaxe je podobná syntaxi funkce IFERROR:
IFNA(hodnota, hodnota_if_na)V čem se funkce IFNA liší od funkce IFERROR? Funkce IFNA zachytí pouze chyby #N/A zatímco IFERROR zpracovává všechny typy chyb.
V jakých situacích můžete chtít použít IFNA? Když není rozumné skrývat všechny chyby. Například při práci s důležitými nebo citlivými daty můžete chtít být upozorněni na možné chyby v souboru dat a standardní chybové zprávy aplikace Excel se symbolem "#" mohou být názornými vizuálními ukazateli.
Podívejme se, jak můžete vytvořit vzorec, který zobrazí zprávu "Nenalezeno" místo chyby N/A, která se zobrazí, když se hodnota vyhledávání v souboru dat nenachází, ale upozorní vás na jiné chyby aplikace Excel.
Předpokládejme, že chcete vytáhnout Qty. z vyhledávací tabulky do souhrnné tabulky, jak je znázorněno na obrázku níže. Použití vzorce Excel Iferror Vlookup by vedlo k esteticky příjemnému výsledku, který je však technicky nesprávný, protože Citrony existují ve vyhledávací tabulce:
Chcete-li zachytit chybu #N/A, ale zobrazit chybu #DIV/0, použijte v aplikaci Excel 2013 a Excel 2016 funkci IFNA:
=IFNA(VLOOKUP(F3,$A$3:$D$6,4,FALSE), "Nenalezeno")
Nebo kombinace IF ISNA v aplikaci Excel 2010 a starších verzích:
=IF(ISNA(VLOOKUP(F3,$A$3:$D$6,4,FALSE)), "Nenalezeno", VLOOKUP(F3,$A$3:$D$6,4,FALSE))
Syntaxe vzorců IFNA VLOOKUP a IF ISNA VLOOKUP je podobná syntaxi vzorců IFERROR VLOOKUP a IF ISERROR VLOOKUP, o kterých jsme hovořili dříve.
Jak ukazuje obrázek níže, vzorec Ifna Vlookup vrací "Nenalezeno" pouze pro položku, která není přítomna v tabulce vyhledávání ( Peaches ). Citrony , zobrazí se #DIV/0!, což znamená, že naše vyhledávací tabulka obsahuje chybu dělení nulou:
Další podrobnosti naleznete v části Použití funkce IFNA v aplikaci Excel.
Osvědčené postupy pro použití IFERROR v aplikaci Excel
Nyní již víte, že funkce IFERROR je nejjednodušší způsob, jak v Excelu zachytit chyby a zamaskovat je prázdnými buňkami, nulovými hodnotami nebo vlastními hlášeními. To však neznamená, že byste měli každý vzorec obalit ošetřením chyb. Následující jednoduchá doporučení vám mohou pomoci zachovat rovnováhu.
- Nezachycujte chyby bezdůvodně.
- Zabalte nejmenší možnou část vzorce do IFERROR.
- Chcete-li zpracovávat pouze konkrétní chyby, použijte funkci pro zpracování chyb s menším rozsahem:
- IFNA nebo IF ISNA pro zachycení pouze chyb #N/A.
- ISERR pro zachycení všech chyb kromě #N/A.
Takto se v Excelu používá funkce IFERROR k zachycení a ošetření chyb. Chcete-li se blíže seznámit se vzorci probíranými v tomto tutoriálu, můžete si stáhnout náš ukázkový sešit Excelu IFERROR. Děkuji vám za přečtení a doufám, že se příští týden uvidíme na našem blogu.