Excel IFERROR & VLOOKUP - lõksu #N/A ja muud vead

  • Jaga Seda
Michael Brown

Selles õpetuses vaatleme, kuidas kasutada IFERROR ja VLOOKUP funktsioone koos, et püüda ja käsitleda erinevaid vigu. Lisaks õpite, kuidas teha Excelis järjestikuseid vlookup-funktsioone, pesitsedes mitu IFERROR-funktsiooni üksteise peale.

Excel VLOOKUP ja IFERROR - neid kahte funktsiooni võib olla üsna raske mõista eraldi, rääkimata sellest, kui neid kombineeritakse. Selles artiklis leiate mõned kergesti järgitavad näited, mis käsitlevad tavalisi kasutusviise ja illustreerivad selgelt valemite loogikat.

Kui teil ei ole palju kogemusi IFERROR ja VLOOKUP funktsioonidega, võib olla hea mõte kõigepealt nende põhitõdesid üle vaadata, järgides ülaltoodud linke.

    IFERROR VLOOKUP valem #N/A ja muude vigade käsitlemiseks

    Kui Excel Vlookup ei leia otsinguväärtust, viskab see #N/A vea, näiteks nii:

    Sõltuvalt teie ärivajadustest võite vea varjata oma teksti, nulli või tühja lahtri abil.

    Näide 1. IFERROR koos VLOOKUP valemiga vigade asendamiseks oma tekstiga

    Kui soovite asendada standardse veamärgistuse oma kohandatud tekstiga, mähkige oma VLOOKUP-valem IFERRORiga ja kirjutage 2. argumendiks mis tahes tekst ( value_if_error ), näiteks "Ei leitud":

    IFERROR(VLOOKUP( ... ), "Ei leitud")

    Kui otsinguväärtus on põhitabelis B2 ja otsinguväli A2:B4 tabelis Lookup, võtab valem järgmise kuju:

    =IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "Ei leitud")

    Allpool olev ekraanipilt näitab meie Exceli IFERROR VLOOKUP valemit töös:

    Tulemus tundub palju arusaadavam ja palju vähem hirmutav, kas pole?

    Samamoodi saab kasutada INDEX MATCHi koos IFERRORiga:

    =IFERROR(INDEX('Otsingutabeli'!$B$2:$B$5,MATCH(B2,'Otsingutabeli'!$A$2:$A$5,0)), "Ei leitud")

    Valem IFERROR INDEX MATCH on eriti kasulik, kui soovite tõmmata väärtusi veerust, mis asub otsingusammast vasakul (vasakpoolne otsing), ja tagastada oma teksti, kui midagi ei leita.

    Näide 2. IFERROR koos VLOOKUPiga, mis tagastab tühja või 0, kui midagi ei leita.

    Kui te ei soovi midagi näidata, kui otsinguväärtust ei leita, laske IFERRORil kuvada teade tühi string (""):

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

    Meie näites on valem järgmine:

    =IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "")

    Nagu näete, ei tagasta see midagi, kui otsinguväärtus ei ole otsingulisti sees.

    Kui soovite asendada vea koos nullväärtus , pane viimaseks argumendiks 0:

    =IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), 0)

    Ettevaatust! Exceli IFERROR funktsioon püüab kõikvõimalikke vigu, mitte ainult #N/A. Kas see on hea või halb? Kõik sõltub teie eesmärgist. Kui soovite maskeerida kõik võimalikud vead, on IFERROR Vlookup viis. Kuid see võib olla paljudes olukordades ebaterve tehnika.

    Näiteks, kui olete loonud oma tabeli andmete jaoks nimega vahemiku ja kirjutate selle nime oma Vlookup-valemis valesti, püüab IFERROR vea #NAME? ja asendab selle sõnaga "Ei leitud" või mis tahes muu tekstiga, mille te esitate. Selle tulemusena ei pruugi te kunagi teada, et teie valem annab valesid tulemusi, kui te ise ei märka trükiviga. Sellisel juhul oleks mõistlikum lähenemine püüda ainult #N/A vigu.Selleks kasutage Excel 2013 ja uuemates versioonides IFNA Vlookup valemit, IF ISNA VLOOKUP kõigis Exceli versioonides.

    Lõpptulemus on: olge oma VLOOKUP-valemi kaaslase valimisel väga ettevaatlik :)

    Pesa IFERROR VLOOKUPi sees, et alati midagi leida

    Kujutage ette järgmist olukorda: te otsite mingist nimekirjast mingit konkreetset väärtust ja ei leia seda. Millised on teie valikud? Kas saate N/A vea või näitate oma sõnumit. Tegelikult on olemas ka kolmas võimalus - kui teie esmane vlookup komistab, siis otsige midagi muud, mis on kindlasti olemas!

    Võttes meie näite edasi, loome meie kasutajatele mingi armatuurlaua, mis näitab neile konkreetse kontori lisanumbrit. Midagi sellist:

    Niisiis, kuidas tõmmata B veerus olevast laiendist D2 kontori numbri alusel? Selle tavalise Vlookup-valemi abil:

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

    Ja see töötab kenasti, kui teie kasutajad sisestavad D2-sse kehtiva numbri. Aga mis siis, kui kasutaja sisestab mingi numbri, mida ei ole olemas? Sel juhul laske neil helistada keskkontorisse! Selleks põimige ülaltoodud valemiga sisse väärtus argument IFERROR, ja panna teine Vlookup sisse value_if_error argument.

    Täielik valem on veidi pikk, kuid see töötab suurepäraselt:

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

    Kui kontorinumber on leitud, saab kasutaja vastava lisanumbri:

    Kui kontori numbrit ei leita, kuvatakse keskkontori lisatelefon:

    Et valemit veidi kompaktsemaks muuta, võite kasutada teistsugust lähenemist:

    Kõigepealt kontrollige, kas D2-s olev number on olemas otsingusarjas (palun märkige, et me seadsime col_index_num 1, et valem otsiks ja tagastaks väärtuse veerust A): VLOOKUP(D2,$A$2:$B$7,1,FALSE)

    Kui määratud kontori numbrit ei leita, siis otsime stringi "keskkontor", mis on kindlasti otsingulises nimekirjas. Selleks mähid esimese VLOOKUPi IFERRORiga ja pesitsed kogu selle kombinatsiooni teise VLOOKUP-funktsiooni sisse:

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

    Noh, veidi teistsugune valem, sama tulemus:

    Aga milleks on vaja otsida "keskkontor", võite küsida. Miks ei saa IFERRORis otse lisatelefoninumbrit esitada? Sest lisatelefon võib mingil hetkel tulevikus muutuda. Kui see juhtub, siis peate oma andmeid uuendama vaid üks kord lähtetabelis, ilma et peaksite muretsema iga oma VLOOKUP-vormeli uuendamise pärast.

    Kuidas teha järjestikuseid VLOOKUPe Excelis

    Olukordades, kus teil on vaja teostada nn järjestikune või aheldatud Vlookups Excelis sõltuvalt sellest, kas eelnev otsing õnnestus või ebaõnnestus, pesitse kaks või enam IFERROR funktsiooni, et käivitada oma Vlookups ükshaaval:

    IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), "Ei leitud"))))

    Valem töötab järgmise loogika alusel:

    Kui esimene VLOOKUP ei leia midagi, siis esimene IFERROR püüab vea ja käivitab teise VLOOKUP-i. Kui teine VLOOKUP ei leia midagi, siis teine IFERROR püüab vea ja käivitab kolmanda VLOOKUP-i ja nii edasi. Kui kõik VLOOKUP-id komistavad, siis viimane IFERROR annab teie teate tagasi.

    See sisseehitatud IFERROR valem on eriti kasulik, kui teil on vaja Vlookup kogu mitu lehte nagu on näidatud alljärgnevas näites.

    Oletame, et teil on kolm homogeensete andmete nimekirja kolmel erineval töölehel (antud näites kontorinumbrid) ja te soovite saada teatud numbrile laiendust.

    Eeldades, et otsinguväärtus on praeguse lehe lahtris A2 ja otsinguväli on A2:B5 3 erineval töölehel (põhja, lõuna ja lääne), töötab järgmine valem suurepäraselt:

    =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")))

    Niisiis, meie "aheldatud Vlookups" valem otsib kolmel erineval lehel selles järjekorras, nagu me neid valemisse paigutasime, ja toob esimese leitud vaste:

    Nii kasutate Excelis IFERRORi koos VLOOKUPiga. Tänan teid lugemise eest ja loodan, et näeme teid järgmisel nädalal meie blogis!

    Saadaolevad allalaadimised

    Exceli IFERROR VLOOKUP-valemi näited

    Michael Brown on pühendunud tehnoloogia entusiast, kelle kirg on tarkvaratööriistade abil keerukate protsesside lihtsustamine. Rohkem kui kümneaastase kogemusega tehnoloogiatööstuses on ta lihvinud oma oskusi Microsoft Excelis ja Outlookis, samuti Google Sheetsis ja Docsis. Michaeli ajaveebi eesmärk on jagada oma teadmisi ja teadmisi teistega, pakkudes hõlpsasti järgitavaid näpunäiteid ja õpetusi tootlikkuse ja tõhususe parandamiseks. Olenemata sellest, kas olete kogenud professionaal või algaja, pakub Michaeli ajaveebi väärtuslikke teadmisi ja praktilisi nõuandeid nende oluliste tarkvaratööriistade maksimaalseks kasutamiseks.