Excel IFERROR & VLOOKUP - fælde #N/A og andre fejl

  • Del Dette
Michael Brown

I denne vejledning vil vi se på, hvordan man bruger IFERROR- og VLOOKUP-funktioner sammen til at fange og håndtere forskellige fejl. Desuden lærer du, hvordan du laver sekventielle vlookups i Excel ved at indlejre flere IFERROR-funktioner oven på hinanden.

Excel VLOOKUP og IFERROR - disse to funktioner kan være ret svære at forstå hver for sig, og slet ikke når de kombineres. I denne artikel finder du et par eksempler, der er nemme at følge, og som omhandler almindelige anvendelser og tydeligt illustrerer formlernes logik.

Hvis du ikke har meget erfaring med IFERROR- og VLOOKUP-funktionerne, kan det være en god idé at gennemgå de grundlæggende funktioner først ved at følge ovenstående links.

    IFERROR VLOOKUP-formel til håndtering af #N/A og andre fejl

    Når Excel Vlookup ikke kan finde en opslagsværdi, vises en #N/A-fejl, som f.eks. denne:

    Afhængigt af dine forretningsmæssige behov kan det være nødvendigt at skjule fejlen med din egen tekst, et nul eller en tom celle.

    Eksempel 1. IFERROR med VLOOKUP-formel til at erstatte fejl med din egen tekst

    Hvis du vil erstatte standardfejlnotationen med din egen tekst, skal du indpakke din VLOOKUP-formel i IFERROR og skrive den tekst, du ønsker, i det andet argument ( value_if_error ), f.eks. "Ikke fundet":

    IFERROR(VLOOKUP( ... ), "Ikke fundet"))

    Med opslagsværdien i B2 i hovedtabellen og opslagsintervallet A2:B4 i opslagstabellen får formlen følgende formular:

    =IFERROR(VLOOKUP(B2,'Opslagstabel'!$A$2:$B$5, 2, FALSE), "Ikke fundet")

    Skærmbilledet nedenfor viser vores Excel IFERROR VLOOKUP-formel i aktion:

    Resultatet ser meget mere forståeligt og langt mindre skræmmende ud, ikke sandt?

    På samme måde kan du bruge INDEX MATCH sammen med IFERROR:

    =IFERROR(INDEX('Opslagstabel'!$B$2:$B$5,MATCH(B2,'Opslagstabel'!$A$2:$A$5,0)), "Ikke fundet")

    Formlen IFERROR INDEX MATCH er især nyttig, når du vil hente værdier fra en kolonne, der ligger til venstre for opslagskolonnen (venstre opslag), og returnere din egen tekst, når der ikke er fundet noget.

    Eksempel 2. IFERROR med VLOOKUP til at returnere blank eller 0, hvis der ikke er fundet noget

    Hvis du ikke ønsker at vise noget, når opslagsværdien ikke er fundet, kan du lade IFERROR vise en tom streng (""):

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

    I vores eksempel ser formlen således ud:

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

    Som du kan se, returnerer den intet, når opslagsværdien ikke er på søgelisten.

    Hvis du ønsker at erstatte fejlen med nulværdi , sætte 0 i det sidste argument:

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

    Et ord til advarsel! Excel IFERROR-funktionen fanger alle slags fejl, ikke kun #N/A. Er det godt eller skidt? Det afhænger af dit mål. Hvis du ønsker at dække alle mulige fejl, er IFERROR Vlookup den rigtige løsning. Men det kan være en uklog teknik i mange situationer.

    Hvis du f.eks. har oprettet et navngivet område for dine tabeldata og staver navnet forkert i din Vlookup-formel, vil IFERROR fange en #NAME? fejl og erstatte den med "Not found" eller en anden tekst, som du angiver. Som følge heraf vil du måske aldrig vide, at din formel giver forkerte resultater, medmindre du selv opdager stavefejlen. I et sådant tilfælde ville det være mere fornuftigt kun at fange #N/A fejl.Til dette formål skal du bruge IFNA Vlookup-formlen i Excel 2013 og højere, IF ISNA VLOOKUP i alle Excel-versioner.

    Det vigtigste er: Vær meget forsigtig, når du vælger en ledsager til din VLOOKUP-formel :)

    Nest IFERROR i VLOOKUP for altid at finde noget

    Forestil dig følgende situation: Du slår en bestemt værdi op i en liste og finder den ikke. Hvilke valgmuligheder har du? Enten får du en N/A-fejl eller viser din egen meddelelse. Faktisk er der en tredje mulighed - hvis din primære vlookup snubler, så søg efter noget andet, der helt sikkert er der!

    Hvis vi går videre med vores eksempel, kan vi oprette en slags dashboard til vores brugere, som viser dem et nummer til en bestemt telefonsamtale på et bestemt kontor. Noget som dette:

    Hvordan får du så fat i telefonnummeret fra kolonne B baseret på kontornummeret i D2? Med denne almindelige Vlookup-formel:

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

    Og det vil fungere fint, så længe dine brugere indtaster et gyldigt nummer i D2. Men hvad nu hvis en bruger indtaster et nummer, der ikke findes? I så fald skal du lade dem ringe til centralen! Til dette formål indlejrer du ovenstående formel i værdi argumentet IFERROR, og indsæt et andet Vlookup i value_if_error argument.

    Den komplette formel er lidt lang, men den fungerer perfekt:

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

    Hvis kontornummeret findes, får brugeren det tilsvarende telefonnummer:

    Hvis kontornummeret ikke kan findes, vises centralenhedens nummer:

    Hvis du vil gøre formlen lidt mere kompakt, kan du bruge en anden fremgangsmåde:

    Først kontrolleres det, om tallet i D2 er til stede i opslagskolonnen (bemærk, at vi har indstillet col_index_num til 1 for at formlen skal slå op og returnere værdien fra kolonne A): VLOOKUP(D2,$A$2:$B$7,1,FALSE)

    Hvis det angivne kontornummer ikke findes, søger vi efter strengen "central office", som helt sikkert findes i opslagslisten. Til dette formål pakkes den første VLOOKUP-funktion ind i IFERROR og hele denne kombination indlejres i en anden VLOOKUP-funktion:

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

    Nå, en lidt anderledes formel, men samme resultat:

    Men hvad er grunden til at slå op i "centralkontor", spørger du måske mig. Hvorfor ikke angive nummeret direkte i IFERROR? Fordi nummeret kan ændre sig på et tidspunkt i fremtiden. Hvis det sker, skal du kun opdatere dine data én gang i kildetabellen, uden at skulle bekymre dig om at opdatere hver enkelt VLOOKUP-formel.

    Sådan laver du sekventielle VLOOKUPs i Excel

    I situationer, hvor du har brug for at udføre den såkaldte sekventiel eller lænket Vlookups i Excel afhængigt af, om et tidligere opslag lykkedes eller mislykkedes, skal du bruge to eller flere IFERROR-funktioner til at køre dine Vlookups en efter en:

    IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), "Ikke fundet")))))

    Formlen fungerer med følgende logik:

    Hvis den første VLOOKUP ikke finder noget, fanger den første IFERROR en fejl og kører en anden VLOOKUP. Hvis den anden VLOOKUP ikke virker, fanger den anden IFERROR en fejl og kører den tredje VLOOKUP osv. Hvis alle Vlookups ikke virker, returnerer den sidste IFERROR din besked.

    Denne indlejrede IFERROR-formel er især nyttig, når du skal foretage et Vlookup på tværs af flere ark som vist i nedenstående eksempel.

    Lad os sige, at du har tre lister med ensartede data i tre forskellige regneark (kontornumre i dette eksempel), og du vil have en udvidelse for et bestemt nummer.

    Hvis vi antager, at opslagsværdien er i celle A2 i det aktuelle ark, og at opslagsområdet er A2:B5 i 3 forskellige regneark (nord, syd og vest), fungerer følgende formel fint:

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

    Så vores "kæde af Vlookups"-formel søger i tre forskellige ark i den rækkefølge, vi har indlejret dem i formlen, og bringer det første match, den finder:

    Sådan bruger du IFERROR med VLOOKUP i Excel. Tak for din læsning, og jeg håber at se dig på vores blog i næste uge!

    Tilgængelige downloads

    Excel IFERROR VLOOKUP-formel eksempler

    Michael Brown er en dedikeret teknologientusiast med en passion for at forenkle komplekse processer ved hjælp af softwareværktøjer. Med mere end ti års erfaring i teknologibranchen har han finpudset sine færdigheder i Microsoft Excel og Outlook samt Google Sheets og Docs. Michaels blog er dedikeret til at dele sin viden og ekspertise med andre og giver nemme at følge tips og vejledninger til at forbedre produktiviteten og effektiviteten. Uanset om du er en erfaren professionel eller nybegynder, tilbyder Michaels blog værdifuld indsigt og praktiske råd til at få mest muligt ud af disse vigtige softwareværktøjer.