Obsah
Dostávate vo svojich pracovných hárkoch veľa chýb #N/A a ste zvedaví, či existuje spôsob, ako namiesto nich zobraziť vlastný text? Riešením, ktoré potrebujete, je vzorec IFNA.
Keď vzorec programu Excel nedokáže niečo identifikovať alebo nájsť, vyhodí chybu #N/A. Ak chcete takúto chybu zachytiť a nahradiť ju používateľsky prívetivou správou, môžete použiť funkciu IFNA. Inými slovami, #N/A je spôsob, akým program Excel hovorí, že hľadaná hodnota sa v odkazovanom súbore údajov nenachádza. IFNA je váš spôsob zachytenia a spracovania tejto chyby.
Funkcia IFNA v programe Excel
Funkcia IFNA programu Excel je určená na zachytenie a spracovanie chýb #N/A. Ak sa vzorec vyhodnotí ako #N/A, IFNA zachytí túto chybu a nahradí ju vlastnou hodnotou, ktorú zadáte; v opačnom prípade vráti normálny výsledok vzorca.
Syntax IFNA
Syntax funkcie IFNA je nasledujúca:
IFNA(hodnota, hodnota_if_na)Kde:
Hodnota (povinné) - vzorec, hodnota alebo odkaz na kontrolu chyby #N/A.
Value_if_na (povinné) - hodnota, ktorá sa vráti, ak sa zistí chyba #N/A.
Poznámky k používaniu
- Funkcia IFNA spracúva iba #N/A bez potlačenia iných chýb.
- Ak sa hodnota argument je vzorec poľa , IFNA vráti pole výsledkov, jeden na každú bunku, ako je znázornené v tomto príklade.
Dostupnosť IFNA
Funkcia IFNA bola zavedená v programe Excel 2013 a je k dispozícii vo všetkých nasledujúcich verziách vrátane programov Excel 2016, Excel 2019, Excel 2021 a Microsoft 365.
V predchádzajúcich verziách môžete chyby #N/A zachytiť pomocou funkcií IF a ISNA spoločne.
Ako používať funkciu IFNA v programe Excel
Ak chcete efektívne používať IFNA v programe Excel, postupujte podľa tohto všeobecného postupu:
- V prvom argumente ( hodnota ), vložte vzorec ovplyvnený chybou #N/A.
- V druhom argumente ( value_if_na ), zadajte text, ktorý chcete vrátiť namiesto štandardného chybového zápisu. Ak chcete vrátiť prázdnu bunku, keď sa nič nenašlo, zadajte prázdny reťazec (""").
Vrátiť sa vlastný text , všeobecný vzorec je:
IFNA( vzorec (), " vlastný text ")Vrátenie prázdna bunka , všeobecný vzorec je:
IFNA( vzorec (), "")Pozrime sa, ako to funguje na jednoduchom príklade. Predpokladajme, že v nasledujúcej tabuľke chcete vedieť, ako sa hodnotenie daného študenta umiestnilo medzi ostatnými. Keďže údaje sú zoradené podľa Skóre stĺpca od najvyššieho po najnižší, bude hodnosť zodpovedať relatívnej pozícii študenta v tabuľke. A na získanie pozície môžete použiť funkciu MATCH v jej najjednoduchšej podobe:
=MATCH(E1, A2:A10, 0)
Keďže hodnota vyhľadávania (Neal) nie je k dispozícii v poli vyhľadávania (A2:A10), vyskytne sa chyba #N/A.
Ak narazíte na túto chybu, neskúsení používatelia si môžu myslieť, že so vzorcom nie je niečo v poriadku, a vy ako tvorca zošita dostanete veľa otázok. Aby ste sa tomu vyhli, môžete explicitne uviesť, že vzorec je správny, len nedokáže nájsť hodnotu, ktorú má hľadať. Takže v prvom argumente IFNA zahniezdite vzorec MATCH a do druhého argumentu zadajte svoj vlastnýtext, v našom prípade "Nenájdené":
=IFNA(MATCH(E1, A2:A10, 0), "Nenájdené")
Namiesto štandardného zápisu chyby sa teraz v bunke zobrazí váš vlastný text, ktorý používateľov informuje, že hodnota vyhľadávania sa v súbore údajov nenachádza:
Ako používať IFNA s VLOOKUP
Najčastejšie sa chyba #N/A vyskytuje vo funkciách, ktoré niečo hľadajú, ako napríklad VLOOKUP, HLOOKUP, LOOKUP a MATCH. Nižšie uvedené príklady zahŕňajú niekoľko typických prípadov použitia.
Príklad 1. Základný vzorec IFNA VLOOKUP
Ak chcete zachytiť chyby #N/A, ktoré sa vyskytnú, keď funkcia VLOOKUP nedokáže nájsť zhodu, skontrolujte jej výsledok pomocou funkcie IFNA a zadajte hodnotu, ktorá sa má zobraziť namiesto chyby. Bežným postupom je obaliť funkciu IFNA okolo existujúceho vzorca VLOOKUP pomocou tejto syntaxe:
IFNA(VLOOKUP(), " váš text ")Predpokladajme, že v našej vzorovej tabuľke chcete získať skóre konkrétneho študenta (E1). Na tento účel použijete tento klasický vzorec VLOOKUP:
=VLOOKUP(E1, A2:B10, 2, FALSE)
Problém je v tom, že Neal sa nezúčastnil na skúške, preto jeho meno nie je v zozname a VLOOKUP zjavne nedokáže nájsť zhodu.
Aby sme chybu skryli, zabalíme VLOOKUP do IFNA takto:
=IFNA(VLOOKUP(E1, A2:B10, 2, FALSE), "Nevykonal skúšku")
Teraz už výsledok nevyzerá pre používateľa tak hrozivo a je oveľa informatívnejší:
Príklad 2. IFNA VLOOKUP na vyhľadávanie vo viacerých hárkoch
Funkcia IFNA sa hodí aj na vykonávanie tzv. sekvenčné alebo zreťazené Ide o to, že týmto spôsobom vložíte niekoľko rôznych vzorcov IFNA(VLOOKUP(...)) jeden do druhého:
IFNA(VLOOKUP(...), IFNA(VLOOKUP(...), IFNA(VLOOKUP(...), "Nenájdené"))Ak primárny VLOOKUP nič nenájde, jeho funkcia IFNA spustí ďalší VLOOKUP, kým sa nenájde požadovaná hodnota. Ak všetky vyhľadávania zlyhajú, vzorec vráti zadaný text.
Predpokladajme, že máte skóre rôznych tried uvedené v rôznych hárkoch (s názvom Trieda A , Trieda B a Trieda C ). Vaším cieľom je získať skóre konkrétneho študenta, ktorého meno je zadané v bunke B1 v aktuálnom pracovnom hárku. Na splnenie úlohy použite tento vzorec:
=IFNA(VLOOKUP(B1, "Trieda A"!A2:B5, 2, FALSE), IFNA(VLOOKUP(B1, "Trieda B"!A2:B5, 2, FALSE), IFNA(VLOOKUP(B1, "Trieda C"!A2:B5, 2, FALSE), "Nenájdené")))
Vzorec postupne vyhľadá zadaný názov v troch rôznych hárkoch v poradí, v akom sú vnorené VLOOKUP-y, a prinesie prvú nájdenú zhodu:
Príklad 3. IFNA s INDEX MATCH
Podobným spôsobom môže IFNA zachytiť chyby #N/A generované inými vyhľadávacími funkciami. Ako príklad ju použime spolu so vzorcom INDEX MATCH:
=IFNA(INDEX(B2:B10, MATCH(E1, A2:A10, 0)), "Nenájdené")
Podstata vzorca je rovnaká ako vo všetkých predchádzajúcich príkladoch - INDEX MATCH vykoná vyhľadávanie a IFNA vyhodnotí výsledok a v prípade, že sa odkazovaná hodnota nenájde, vyhodnotí chybu #N/A.
IFNA na vrátenie viacerých výsledkov
V prípade, že vnútorná funkcia (t. j. vzorec umiestnený v hodnota argument) vráti viacero hodnôt, IFNA otestuje každú vrátenú hodnotu jednotlivo a vypíše pole výsledkov:
=IFNA(VLOOKUP(D2:D4, A2:B10, 2, FALSE), "Nenájdené")
V programe Excel s dynamickým poľom (Microsoft 365 a Excel 2021) sa bežný vzorec v najvrchnejšej bunke (E2) automaticky rozleje do všetkých susedných buniek (v programe Excel sa to nazýva rozsah rozlievania).
V preddynamických verziách (Excel 2019 a nižšie) možno podobný efekt dosiahnuť pomocou vzorca s viacbunkovým poľom, ktorý sa dopĺňa klávesovou skratkou Ctrl + Shift + Enter.
Aký je rozdiel medzi IFNA a IFERROR?
V závislosti od hlavnej príčiny problému môže vzorec Excelu vyvolať rôzne chyby, ako napríklad #N/A, #NAME, #VALUE, #REF, #DIV/0, #NUM a iné. Funkcia IFERROR zachytí všetky tieto chyby, zatiaľ čo IFNA sa obmedzuje len na #N/A. Ktorú z nich je lepšie zvoliť? To závisí od situácie.
Ak chcete potlačiť akýkoľvek druh chyby , potom použite funkciu IFERROR. Je užitočná najmä pri zložitých výpočtoch, keď vzorec obsahuje niekoľko funkcií, ktoré môžu generovať rôzne chyby.
S vyhľadávacie funkcie , radšej použite IFNA, pretože zobrazuje vlastný výsledok len vtedy, keď sa hodnota vyhľadávania nenašla, a neskrýva základné problémy so samotným vzorcom.
Na ilustráciu rozdielu si pripomeňme náš základný vzorec IFNA VLOOKUP a "omylom" nesprávne napíšeme názov funkcie (VLOKUP namiesto VLOOKUP).
=IFNA(VLOKUP(E1, A2:B10, 2, FALSE), "Nevykonal skúšku")
IFNA túto chybu nepotláča, takže jasne vidíte, že niečo nie je v poriadku s jedným z názvov funkcií:
Teraz sa pozrieme, čo sa stane, ak použijete IFERROR:
=IFERROR(VLOKUP(E1, A2:B10, 2, FALSE), "Nevykonal skúšku")
Hmm... píše, že Olivia sa nezúčastnila na skúške, čo nie je pravda! Je to preto, že funkcia IFERROR zachytí chybu #NAME? a namiesto nej vráti vlastný text. V tejto situácii nielenže vráti nesprávnu informáciu, ale aj zakryje problém so vzorcom.
Takto sa používa vzorec IFNA v programe Excel. Ďakujem vám za prečítanie a teším sa na vás na našom blogu budúci týždeň!
Dostupné súbory na stiahnutie
Príklady vzorcov programu Excel IFNA (.xlsx súbor)