Excel IFERROR & VLOOKUP - pasca #N/A a ďalšie chyby

  • Zdieľajte To
Michael Brown

V tomto učebnom texte sa budeme venovať tomu, ako spoločne používať funkcie IFERROR a VLOOKUP na zachytenie a spracovanie rôznych chýb. Okrem toho sa naučíte, ako v programe Excel vykonávať postupné vlookupy vnorením viacerých funkcií IFERROR na seba.

Excel VLOOKUP a IFERROR - tieto dve funkcie môže byť dosť ťažké pochopiť samostatne, nieto ešte keď sú skombinované. V tomto článku nájdete niekoľko prehľadných príkladov, ktoré sa zaoberajú bežným použitím a jasne ilustrujú logiku vzorcov.

Ak nemáte veľa skúseností s funkciami IFERROR a VLOOKUP, možno by bolo dobré si najprv zopakovať ich základy podľa vyššie uvedených odkazov.

    Vzorec IFERROR VLOOKUP na spracovanie #N/A a iných chýb

    Keď program Excel Vlookup nenájde hodnotu vyhľadávania, vyhodí chybu #N/A, napríklad takto:

    V závislosti od vašich obchodných potrieb môžete chybu zamaskovať vlastným textom, nulou alebo prázdnou bunkou.

    Príklad 1. IFERROR so vzorcom VLOOKUP na nahradenie chýb vlastným textom

    Ak chcete nahradiť štandardný zápis chyby vlastným textom, zabaľte vzorec VLOOKUP do IFERROR a do 2. argumentu zadajte ľubovoľný text ( value_if_error ), napríklad "Nenájdené":

    IFERROR(VLOOKUP( ... ), "Nenájdené")

    S hodnotou vyhľadávania v B2 v tabuľke Main a rozsahom vyhľadávania A2:B4 v tabuľke Lookup má vzorec nasledujúci tvar:

    =IFERROR(VLOOKUP(B2,'Vyhľadávacia tabuľka'!$A$2:$B$5, 2, FALSE), "Nenájdené")

    Na nasledujúcom obrázku je zobrazený vzorec IFERROR VLOOKUP v programe Excel v akcii:

    Výsledok vyzerá oveľa zrozumiteľnejšie a menej zastrašujúco, však?

    Podobným spôsobom môžete použiť INDEX MATCH spolu s IFERROR:

    =IFERROR(INDEX('Lookup table'!$B$2:$B$5,MATCH(B2,'Lookup table'!$A$2:$A$5,0)), "Not found")

    Vzorec IFERROR INDEX MATCH je užitočný najmä vtedy, keď chcete vytiahnuť hodnoty zo stĺpca, ktorý leží naľavo od stĺpca vyhľadávania (ľavé vyhľadávanie), a vrátiť vlastný text, keď sa nič nenájde.

    Príklad 2. IFERROR s VLOOKUP na vrátenie prázdneho miesta alebo 0, ak sa nič nenašlo

    Ak nechcete zobraziť nič, keď sa hodnota vyhľadávania nenájde, nechajte IFERROR zobraziť prázdny reťazec (""):

    IFERROR(VLOOKUP( ... ),"")

    V našom príklade je vzorec nasledovný:

    =IFERROR(VLOOKUP(B2,'Vyhľadávacia tabuľka'!$A$2:$B$5, 2, FALSE), "")

    Ako vidíte, keď sa vyhľadávaná hodnota nenachádza v zozname, nevráti nič.

    Ak by ste chceli chybu nahradiť nulová hodnota , do posledného argumentu vložte 0:

    =IFERROR(VLOOKUP(B2,'Vyhľadávacia tabuľka'!$A$2:$B$5, 2, FALSE), 0)

    Pozor! Funkcia IFERROR Excel zachytáva všetky druhy chýb, nielen #N/A. Je to dobré alebo zlé? Všetko závisí od vášho cieľa. Ak chcete zamaskovať všetky možné chyby, IFERROR Vlookup je správna cesta. Ale v mnohých situáciách to môže byť nerozumná technika.

    Ak ste napríklad vytvorili pomenovaný rozsah pre údaje tabuľky a vo vzorci Vlookup ste tento názov nesprávne napísali, IFERROR zachytí chybu #NAME? a nahradí ju textom "Nenájdené" alebo akýmkoľvek iným textom, ktorý zadáte. Výsledkom je, že sa nikdy nemusíte dozvedieť, že váš vzorec poskytuje nesprávne výsledky, pokiaľ sami nezistíte preklep. V takom prípade by bolo rozumnejšie zachytávať iba chyby #N/A.Na tento účel použite vzorec IFNA Vlookup v programe Excel 2013 a vyšších verziách, IF ISNA VLOOKUP vo všetkých verziách programu Excel.

    Pointa je: buďte veľmi opatrní pri výbere spoločníka pre váš vzorec VLOOKUP :)

    Hniezdo IFERROR v rámci VLOOKUP, aby ste vždy niečo našli

    Predstavte si nasledujúcu situáciu: vyhľadáte v zozname konkrétnu hodnotu a nenájdete ju. Aké máte možnosti? Buď dostanete chybu N/A, alebo zobrazíte vlastnú správu. Vlastne existuje aj tretia možnosť - ak váš primárny vlookup narazí, vyhľadajte niečo iné, čo tam určite je!

    Ak budeme pokračovať v našom príklade, vytvorme pre našich používateľov nejaký informačný panel, ktorý im zobrazí interné číslo konkrétnej kancelárie. Niečo také:

    Ako teda vytiahnete predĺženie zo stĺpca B na základe čísla kancelárie v D2? Pomocou tohto bežného vzorca Vlookup:

    =VLOOKUP($D$2,$A$2:$B$7,2,FALSE)

    A bude to fungovať pekne, pokiaľ vaši používatelia zadajú platné číslo v D2. Ale čo ak používateľ zadá nejaké číslo, ktoré neexistuje? V takom prípade nech zavolá na centrálu! Na tento účel vložíte vyššie uvedený vzorec do hodnota argument IFERROR a vložte ďalší Vlookup do value_if_error argument.

    Kompletný vzorec je trochu dlhý, ale funguje perfektne:

    =IFERROR(VLOOKUP("office"&$D$2,$A$2:$B$7,2,FALSE),VLOOKUP("central office",$A$2:$B$7,2,FALSE))

    Ak sa číslo kancelárie nájde, používateľ dostane príslušné interné číslo:

    Ak sa číslo kancelárie nenájde, zobrazí sa predvoľba centrálnej kancelárie:

    Aby bol vzorec o niečo kompaktnejší, môžete použiť iný prístup:

    Najprv skontrolujte, či sa číslo v D2 nachádza v stĺpci vyhľadávania (všimnite si, že sme nastavili col_index_num na 1, aby vzorec vyhľadal a vrátil hodnotu zo stĺpca A): VLOOKUP(D2,$A$2:$B$7,1,FALSE)

    Ak zadané číslo úradu nenájdeme, potom hľadáme reťazec "centrálny úrad", ktorý sa v zozname vyhľadávania určite nachádza. Na tento účel obalíme prvú funkciu VLOOKUP do IFERROR a celú túto kombináciu vnoríme do ďalšej funkcie VLOOKUP:

    =VLOOKUP(IFERROR(VLOOKUP(D2,$A$2:$B$7,1,FALSE), "central office"),$A$2:$B$7,2)

    No, trochu iný vzorec, rovnaký výsledok:

    Možno sa ma však spýtate, aký je dôvod vyhľadávať "centrálny úrad". Prečo nezadáte číslo prípojky priamo v IFERROR? Pretože prípojka sa môže niekedy v budúcnosti zmeniť. Ak sa tak stane, budete musieť aktualizovať údaje len raz v zdrojovej tabuľke bez toho, aby ste sa museli starať o aktualizáciu každého zo svojich vzorcov VLOOKUP.

    Ako vykonávať postupné VLOOKUP v programe Excel

    V situáciách, keď potrebujete vykonať tzv. sekvenčné alebo zreťazené Vlookups v programe Excel v závislosti od toho, či predchádzajúce vyhľadávanie bolo úspešné alebo neúspešné, vložiť dve alebo viac funkcií IFERROR na postupné spúšťanie vašich Vlookups:

    IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), "Nenájdené")))

    Vzorec funguje na základe nasledujúcej logiky:

    Ak prvý VLOOKUP nič nenájde, prvý IFERROR zachytí chybu a spustí ďalší VLOOKUP. Ak druhý VLOOKUP zlyhá, druhý IFERROR zachytí chybu a spustí tretí VLOOKUP atď. Ak všetky VLOOKUPy narazia, posledný IFERROR vráti vašu správu.

    Tento vnorený vzorec IFERROR je užitočný najmä vtedy, keď musíte Vlookup cez viacero listov ako je uvedené v nasledujúcom príklade.

    Povedzme, že máte tri zoznamy homogénnych údajov v troch rôznych pracovných listoch (v tomto príklade čísla kancelárií) a chcete získať rozšírenie pre určité číslo.

    Za predpokladu, že hodnota vyhľadávania je v bunke A2 v aktuálnom hárku a rozsah vyhľadávania je A2:B5 v 3 rôznych pracovných hárkoch (sever, juh a západ), funguje nasledujúci vzorec:

    =IFERROR(VLOOKUP(A2,North!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,South!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,West!$A$2:$B$5,2,FALSE), "Not found"))

    Takže náš vzorec "reťazené Vlookups" hľadá v troch rôznych hárkoch v poradí, v akom sme ich do vzorca vnorili, a prinesie prvú nájdenú zhodu:

    Takto sa v Exceli používa IFERROR s VLOOKUP. Ďakujem vám za prečítanie a dúfam, že sa na našom blogu uvidíme budúci týždeň!

    Dostupné súbory na stiahnutie

    Príklady vzorca VLOOKUP programu Excel IFERROR

    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.