Excel IFERROR & VLOOKUP - felle #N/A og andre feil

  • Dele Denne
Michael Brown

I denne opplæringen skal vi se på hvordan du bruker IFERROR- og VLOOKUP-funksjonene sammen for å fange og håndtere forskjellige feil. I tillegg kommer du til å lære hvordan du gjør sekvensielle vlookups i Excel ved å neste flere IFERROR-funksjoner på hverandre.

Excel VLOOKUP og IFERROR - disse to funksjonene kan være ganske vanskelige å forstå hver for seg, enn si når de kombineres. I denne artikkelen finner du noen enkle eksempler som tar for seg vanlige bruksområder og tydelig illustrerer formlenes logikk.

Hvis du ikke har mye erfaring med IFERROR- og VLOOKUP-funksjoner, kan det være en god idé å revidere det grunnleggende først ved å følge koblingene ovenfor.

    IFERROR VLOOKUP-formel for å håndtere #N/A og andre feil

    Når Excel Vlookup ikke finner en oppslagsverdi, gir den en #N/A-feil, som denne:

    Avhengig av bedriftens behov, kan det være lurt å skjule feilen med din egen tekst, null , eller en tom celle.

    Eksempel 1. IFERROR med VLOOKUP-formel for å erstatte feil med din egen tekst

    Hvis du ønsker å erstatte standard feilnotasjon med din egendefinerte tekst, pakk inn VLOOKUP-formel i IFERROR, og skriv inn hvilken som helst tekst du vil ha i det andre argumentet ( verdi_hvis_feil ), for eksempel "Ikke funnet":

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

    Med oppslagsverdien i B2 i hovedtabellen og oppslagsområdet A2:B4 i oppslagettabell, har formelen følgende form:

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

    Skjermbildet nedenfor viser vår Excel IFERROR VLOOKUP-formel i aksjon:

    resultatet ser mye mer forståelig og langt mindre skremmende ut, ikke sant?

    På lignende måte kan du bruke INDEX MATCH sammen med IFERROR:

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

    The IFERROR INDEX MATCH formel er spesielt nyttig når du vil trekke verdier fra en kolonne som ligger til venstre for oppslagskolonnen (venstre oppslag), og returnere din egen tekst når ingenting er funnet.

    Eksempel 2. HVISER med VLOOKUP for å returnere blank eller 0 hvis ingenting er funnet

    Hvis du ikke vil vise noe når oppslagsverdien ikke finnes, la IFERROR vise en tom streng (""):

    IFERROR(VLOOKUP(),"")

    I vårt eksempel er formelen som følger:

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

    Som du kan se, den returnerer ingenting når oppslagsverdien ikke er i søkelisten.

    Hvis du vil erstatte feilen med nullverdien , setter du inn 0 i siste a argument:

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

    Forsiktig! Excel IFERROR-funksjonen fanger opp alle slags feil, ikke bare #N/A. Er det bra eller dårlig? Alt avhenger av målet ditt. Hvis du vil maskere alle mulige feil, er IFERROR Vlookup veien å gå. Men det kan være en uklokt teknikk i mange situasjoner.

    For eksempel, hvis du har opprettet et navngitt område for tabelldataene dine, og feilstavet det navnet iVlookup-formel, IFERROR vil fange et #NAME? feil og erstatte den med "Ikke funnet" eller annen tekst du oppgir. Som et resultat vil du kanskje aldri vite at formelen din gir feil resultater med mindre du oppdager skrivefeilen selv. I et slikt tilfelle vil en mer fornuftig tilnærming være å fange bare #N/A-feil. For dette, bruk IFNA Vlookup-formel i Excel 2013 og høyere, IF ISNA VLOOKUP i alle Excel-versjoner.

    Konklusjonen er: vær veldig forsiktig når du velger en følgesvenn for VLOOKUP-formelen :)

    Nest IFERROR i VLOOKUP for alltid å finne noe

    Se for deg følgende situasjon: du slår opp en bestemt verdi i en liste og finner den ikke. Hvilke valg har du? Enten får du en N/A-feil eller vis din egen melding. Faktisk er det et tredje alternativ - hvis din primære vlookup snubler, så søk etter noe annet som definitivt er der!

    For å ta eksemplet vårt videre, la oss lage et slags dashbord for brukerne våre som viser dem en utvidelse nummeret til et spesifikt kontor. Noe sånt som dette:

    Så, hvordan trekker du utvidelsen fra kolonne B basert på kontornummeret i D2? Med denne vanlige Vlookup-formelen:

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

    Og det vil fungere bra så lenge brukerne dine skriver inn et gyldig tall i D2. Men hva om en bruker legger inn et nummer som ikke eksisterer? I dette tilfellet, la dem ringe sentralkontoret! For dette legger du inn formelen ovenfor i verdi -argumentet til IFERROR, og legg inn en annen Vlookup i verdi_if_feil -argumentet.

    Den komplette formelen er litt lang, men den fungerer perfekt:

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

    Hvis kontornummeret blir funnet, får brukeren det tilsvarende internnummeret:

    Hvis kontornummeret ikke blir funnet, kan sentralkontorets internnummer vises:

    For å gjøre formelen litt mer kompakt, kan du bruke en annen tilnærming:

    Først, sjekk om tallet i D2 er tilstede i oppslagskolonnen (legg merke til at vi setter col_index_num til 1 for at formelen skal slå opp og returnere verdien fra kolonne A): VLOOKUP(D2,$A$2:$B$7,1,FALSE)

    Hvis det angitte kontornummeret ikke finnes, så søker vi etter strengen "sentralkontor", som definitivt er i oppslagslisten. For dette pakker du den første VLOOKUP i IFERROR og legger hele denne kombinasjonen i en annen VLOOKUP-funksjon:

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

    Vel, en litt annen formel, samme resultat:

    Men hva er grunnen til å slå opp "sentralkontor", kan du spørre meg. Hvorfor ikke oppgi internnummeret direkte i IFERROR? Fordi utvidelsen kan endre seg på et tidspunkt i fremtiden. Hvis dette skjer, må du bare oppdatere dataene dine én gang i kildetabellen, uten å bekymre deg for å oppdatere hver av VLOOKUP-formlene dine.

    Hvordan gjøre sekvensielle VLOOKUP-oppslag i Excel

    I situasjoner hvor du trenger åutfør de såkalte sekvensielle eller kjedede Vlookups i Excel avhengig av om et tidligere oppslag lyktes eller mislyktes, nest to eller flere IFERROR-funksjoner for å kjøre Vlookups én etter én:

    IFERROR(VLOOKUP(), IFERROR(VLOOKUP(), IFERROR(VLOOKUP(),"Ikke funnet")))

    formelen fungerer med følgende logikk:

    Hvis den første VLOOKUP ikke finner noe, fanger den første IFERROR en feil og kjører en annen VLOOKUP. Hvis den andre VLOOKUP mislykkes, fanger den andre IFERROR en feil og kjører den tredje VLOOKUP, og så videre. Hvis alle Vlookups snubler, returnerer den siste IFERROR meldingen din.

    Denne nestede IFERROR-formelen er spesielt nyttig når du må Vlookup over flere ark som vist i eksemplet nedenfor.

    La oss si at du har tre lister med homogene data i tre forskjellige regneark (kontornummer i dette eksemplet), og du ønsker å få en utvidelse for et bestemt tall.

    Forutsatt at oppslagsverdien er i celle A2 i gjeldende ark, og oppslagsområdet er A2:B5 i 3 forskjellige regneark (nord, sør og vest), fungerer følgende formel en godbit:

    =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å, vår "kjedede Vlookups"-formel søker i tre forskjellige ark i den rekkefølgen vi nestet dem i formelen, og gir den første treffet den finner:

    Slik bruker du IFERROR med VLOOKUP i Utmerke. Jeg takker for at du leser og håper å se degpå bloggen vår neste uke!

    Tilgjengelige nedlastinger

    Excel IFERROR VLOOKUP formeleksempler

    Michael Brown er en dedikert teknologientusiast med en lidenskap for å forenkle komplekse prosesser ved hjelp av programvareverktøy. Med mer enn ti års erfaring i teknologibransjen, har han forbedret ferdighetene sine i Microsoft Excel og Outlook, samt Google Sheets og Docs. Michaels blogg er dedikert til å dele sin kunnskap og ekspertise med andre, og gir enkle å følge tips og veiledninger for å forbedre produktivitet og effektivitet. Enten du er en erfaren profesjonell eller nybegynner, tilbyr Michaels blogg verdifull innsikt og praktiske råd for å få mest mulig ut av disse viktige programvareverktøyene.