Excel VLOOKUP virker ikke - fastsættelse af #N/A og #VALUE fejl

  • Del Dette
Michael Brown

Trækker din VLOOKUP forkerte data, eller kan du slet ikke få den til at virke? Denne vejledning viser, hvordan du hurtigt kan rette almindelige VLOOKUP-fejl og overvinde dens største begrænsninger.

I et par tidligere artikler har vi udforsket forskellige aspekter af Excel VLOOKUP-funktionen. Hvis du har fulgt os tæt, burde du nu være ekspert på dette område :)

Det er dog ikke uden grund, at mange Excel-specialister anser VLOOKUP for at være en af de mest indviklede Excel-funktioner. Den har et væld af begrænsninger, som er kilden til forskellige problemer og fejl.

I denne artikel finder du enkle forklaringer på de vigtigste årsager til VLOOKUP-fejl såsom #N/A, #NAME og #VALUE samt deres løsninger og rettelser. Vi starter med de mest indlysende årsager til, at VLOOKUP ikke fungerer, så det kan være en god idé at tjekke nedenstående fejlfindingstrin i rækkefølge.

    Rettelse af #N/A-fejl i VLOOKUP

    I VLOOKUP-formler vises fejlmeddelelsen #N/A (som betyder "ikke tilgængelig"), når Excel ikke kan finde en opslagsværdi. Der kan være flere grunde til, at det kan ske.

    1. Opslagsværdien er stavet forkert

    Det er altid en god idé at kontrollere det mest indlysende først : ) Fejltryk opstår ofte, når du arbejder med store datasæt bestående af tusindvis af rækker, eller når en opslagsværdi indtastes direkte i formlen.

    2. #N/A i tilnærmet match VLOOKUP

    Hvis din formel søger den nærmeste match, ( range_lookup argumentet er sat til TRUE eller udeladt), kan #N/A-fejlen forekomme i to tilfælde:

    • Opslagsværdien er mindre end den mindste værdi i opslagsarrayet.
    • Opslagskolonnen er ikke sorteret i stigende rækkefølge.

    3. #N/A i VLOOKUP med nøjagtigt match

    Hvis du søger efter nøjagtigt matchende ( range_lookup argumentet er sat til FALSE), opstår fejlen #N/A, når der ikke findes en værdi, der er nøjagtigt lig med opslagsværdien. Du kan finde flere oplysninger under VLOOKUP nøjagtigt match vs. tilnærmelsesvis match.

    4. Opslagskolonnen er ikke kolonnen længst til venstre i tabelmatrixen

    En af de største begrænsninger ved Excel VLOOKUP er, at den ikke kan se til venstre. Derfor skal en opslagskolonne altid være den kolonne længst til venstre I praksis glemmer vi ofte dette og ender med at få #N/A-fejl.

    Løsning : Hvis det ikke er muligt at omstrukturere dine data, så opslagskolonnen er kolonnen længst til venstre, kan du bruge INDEX- og MATCH-funktionerne sammen som et alternativ til VLOOKUP. Her er et eksempel på en formel: INDEX MATCH-formel til at slå op på værdier til venstre.

    5. Tal er formateret som tekst

    En anden almindelig kilde til #N/A-fejl i VLOOKUP-formler er tal, der er formateret som tekst, enten i hoved- eller opslagstabellen.

    Dette sker normalt, når du importerer data fra en ekstern database, eller hvis du har skrevet en apostrof før et tal for at vise de forreste nuller.

    Her er de mest tydelige indikatorer for tal, der er formateret som tekst:

    Løsning: Vælg alle de problematiske numre, klik på fejlikonet, og vælg Konverter til tal i kontekstmenuen. Du kan finde flere oplysninger under Sådan konverteres tekst til tal i Excel.

    6. Førende eller afsluttende mellemrum

    Dette er den mindst indlysende årsag til VLOOKUP #N/A-fejlen, fordi et menneskeøje næppe kan se de ekstra mellemrum, især når der arbejdes med store datasæt, hvor de fleste poster er under rullen.

    Løsning 1: Ekstra mellemrum i opslagsværdien

    For at sikre, at din VLOOKUP-formel fungerer korrekt, skal du indpakke opslagsværdien i TRIM-funktionen:

    =VLOOKUP(TRIM(E1), A2:C10, 2, FALSE)

    Løsning 2: Ekstra mellemrum i opslagskolonnen

    Hvis der forekommer ekstra mellemrum i opslagskolonnen, er der ingen nem måde at undgå #N/A-fejl i VLOOKUP. I stedet kan du bruge en kombination af INDEX-, MATCH- og TRIM-funktionerne som en array-formel:

    =INDEX(B2:B10, MATCH(TRUE, TRIM(A$2:A$10)=TRIM(E1), 0)))

    Da dette er en array-formel, skal du huske at trykke på Ctrl + Shift + Enter for at fuldføre den korrekt (i Excel 365 og Excel 2021, hvor arrays er native, fungerer dette også som en almindelig formel).

    Tip. Et hurtigt alternativ er at køre værktøjet Trim Spaces, som fjerner overskydende mellemrum både i opslags- og hovedtabellerne på få sekunder og gør dine VLOOKUP-formler fejlfrie.

    #VALUE! fejl i VLOOKUP-formler

    Generelt viser Microsoft Excel fejlen #VALUE!, hvis en værdi, der anvendes i formlen, har en forkert datatype. Med hensyn til VLOOKUP er der to almindelige kilder til VALUE! fejlen.

    1. Opslagsværdien overstiger 255 tegn

    Vær opmærksom på, at VLOOKUP ikke kan slå op på værdier, der indeholder mere end 255 tegn. Hvis dine opslagsværdier overstiger denne grænse, vises en #VALUE! fejl:

    Løsning : Brug i stedet en INDEX MATCH-formel. I vores tilfælde fungerer denne formel perfekt:

    =INDEX(B2:B7, MATCH(TRUE, INDEX(A2:A7= E1, 0), 0)))

    2. Den fulde sti til opslagsarbejdsmappen er ikke angivet

    Hvis du henter data fra en anden projektmappe, skal du angive den fulde sti til den. Mere præcist skal du omslutte projektmappens navn, herunder udvidelsen, i [firkantede parenteser] og angive arkets navn efterfulgt af et udråbstegn. Hvis projektmappens navn eller arkets navn eller begge dele indeholder mellemrum eller andre tegn end bogstaver, skal stien omsluttes af anførselstegn.

    Her er strukturen af table_array argument til Vlookup fra en anden projektmappe:

    '[arbejdsbogens navn]arkenavn'!rækkevidde

    En rigtig formel kunne se således ud:

    =VLOOKUP($A$2,'[Nye priser.xls]Sheet1'!$B:$D, 3, FALSE)

    Ovenstående formel vil søge efter værdien af A2 i kolonne B i ark 1 i Nye priser og returnerer en matchende værdi fra kolonne D.

    Hvis der mangler et element i stien, vil din VLOOKUP-formel ikke fungere og returnere fejlen #VALUE (medmindre opslagsarbejdsmappen er åben i øjeblikket).

    For yderligere oplysninger, se venligst:

    • Sådan henviser du til et andet ark eller en anden arbejdsmappe i Excel
    • Sådan laver du Vlookup fra en anden projektmappe

    3. Argumentet col_index_num er mindre end 1

    Det er svært at forestille sig en situation, hvor nogen med vilje indtaster et tal mindre end 1 for at angive den kolonne, der skal returneres værdier fra. Men det kan ske, hvis dette argument returneres af en anden funktion, der er indlejret i din VLOOKUP-formel.

    Så hvis den col_index_num argument er større end 1, vil din formel også returnere fejlen #VALUE!

    Hvis col_index_num er større end antallet af kolonner i tabelmatrixen, giver VLOOKUP fejlen #REF!

    Løsning af VLOOKUP #NAME-fejl

    Dette er det nemmeste tilfælde - fejlen #NAME? vises, hvis du ved et uheld har stavet funktionens navn forkert.

    Løsningen er indlysende - tjek stavningen :)

    De vigtigste årsager til fejl i Excel VLOOKUP

    Ud over at have en ret kompliceret syntaks har VLOOKUP nok flere begrænsninger end nogen anden Excel-funktion. På grund af disse begrænsninger kan en tilsyneladende korrekt formel ofte give andre resultater end dem, du forventede. Nedenfor finder du løsninger på et par typiske scenarier, hvor VLOOKUP fejler.

    VLOOKUP er uafhængig af store og små bogstaver

    VLOOKUP-funktionen skelner ikke mellem bogstaver og betragter små og store bogstaver som identiske.

    Løsning : Brug VLOOKUP, XLOOKUP eller INDEX MATCH i kombination med EXACT-funktionen, der kan matche tekstens kasus. Du kan finde detaljerede forklaringer og eksempler på formler i denne vejledning: 5 måder at lave en case-sensitiv Vlookup i Excel på.

    En ny kolonne er blevet indsat eller fjernet fra tabellen

    Desværre holder VLOOKUP-formler op med at fungere hver gang, når en ny kolonne slettes fra eller tilføjes til opslagstabellen. Dette sker, fordi syntaksen for VLOOKUP-funktionen kræver, at man definerer indeksnummeret for returkolonnen. Når en ny kolonne tilføjes til/fjernes fra tabelmatrixen, ændres indeksnummeret naturligvis.

    Løsning : INDEX MATCH-formlen kommer igen til undsætning : ) Med INDEX MATCH angiver du opslags- og returområderne separat, så du kan slette eller indsætte så mange kolonner, som du vil, uden at skulle bekymre dig om at opdatere hver enkelt tilknyttet formel.

    Cellehenvisninger ændres, når formlen kopieres til andre celler

    Overskriften giver en udtømmende forklaring på problemet, ikke sandt?

    Løsning : Brug altid absolutte referencer (med $-tegnet) for table_array argument, f.eks. $A$2:$C$100 eller $A:$C. Du kan hurtigt skifte mellem forskellige referencetyper ved at trykke på tasten F4.

    VLOOKUP returnerer den første fundne værdi

    Som du allerede ved, returnerer Excel VLOOKUP den første værdi, den finder. Du kan dog tvinge den til at hente den 2., 3., 4. eller en hvilken som helst anden forekomst, du ønsker. Der er også en måde at få den sidste match eller alle de fundne matches på.

    Løsninger : Der findes eksempler på formler her:

    • VLOOKUP og returnerer den niende forekomst
    • VLOOKUP flere værdier
    • XLOOKUP-formel for at få den sidste match

    Hvorfor virker min VLOOKUP på nogle celler, men ikke på andre?

    Når din VLOOKUP-formel returnerer de korrekte data i nogle celler og #N/A-fejl i andre, kan der være et par mulige årsager til, at det sker.

    1. Tabelmatrixen er ikke låst

    Lad os antage, at du har denne formel i række 2 (f.eks. i E2), hvilket fungerer fint:

    =VLOOKUP(D2, A2:B10, 2, FALSE)

    Når formlen kopieres til række 3, ændres den til:

    =VLOOKUP(D3, A3:B11, 2, FALSE)

    Da der anvendes en relativ reference til table_array ændres den baseret på den relative position i den række, hvor formlen er kopieret, i vores tilfælde fra A2:B10 til A3:B11. Så hvis matchet er i række 2, vil det ikke blive fundet!

    Løsning : Når du bruger en VLOOKUP-formel til mere end én celle, skal du altid låse bordmatrixen reference med $-tegnet som f.eks. $A$2:$B$10.

    2. Tekstværdier eller datatyper stemmer ikke overens

    En anden almindelig årsag til VLOOKUP-fejl er forskellen mellem din opslagsværdi og en lignende værdi i opslagskolonnen. I nogle tilfælde er forskellen så subtil, at den er svær at se visuelt.

    Løsning : Når VLOOKUP returnerer en #N/A-fejl, mens du tydeligt kan se opslagsværdien i opslagskolonnen, og tilsyneladende staves begge dele nøjagtigt ens, skal du først og fremmest finde frem til årsagen til problemet - formlen eller kildedataene.

    For at se, om de to værdier er ens eller forskellige, kan du foretage en direkte sammenligning på denne måde:

    =E1=A4

    Hvor E1 er din opslagsværdi, og A4 er en identisk værdi i opslagskolonnen.

    Hvis formlen returnerer FALSK, betyder det, at værdierne er forskellige på en eller anden måde, selv om de ser helt ens ud.

    I tilfælde af numeriske værdier , den mest mulige årsag er tal formateret som tekst.

    I tilfælde af tekstværdier For at kontrollere dette kan du finde den samlede længde af de to strenge ved hjælp af LEN-funktionen:

    =LEN(E1)

    =LEN(A4)

    Hvis de resulterende tal er forskellige (som i skærmbilledet nedenfor), har du fundet den skyldige - ekstra mellemrum:

    Du kan løse problemet ved enten at fjerne ekstra mellemrum eller bruge denne INDEX MATCH TRIM-formel som en løsning.

    Hvorfor trækker min VLOOKUP forkerte data?

    Der kan være endnu flere grunde til, at din VLOOKUP returnerer en forkert værdi:

    1. Forkert søgemåde Hvis du vil have en nøjagtig match, skal du sørge for at indstille range_lookup Argumentet er som standard TRUE, så hvis du udelader dette argument, antager VLOOKUP, at du leder efter et tilnærmelsesvis match og søger efter den nærmeste værdi, der er mindre end opslagsværdien.
    2. Opslagskolonnen er ikke sorteret For tilnærmelsesvis at matche VLOOKUP ( range_lookup er sat til TRUE) skal den første kolonne i tabelmatrixen sorteres i stigende orden, fra den mindste til den største, for at fungere korrekt.
    3. Duplikater i opslagskolonnen Hvis opslagskolonnen indeholder to eller flere duplikerede værdier, returnerer VLOOKUP det første fundne match, hvilket måske ikke er det, du forventer.
    4. Forkert returkolonne . Dobbelttjek indeksnummeret i det tredje argument :)

    VLOOKUP fungerer ikke mellem to ark

    Først og fremmest skal det bemærkes, at de almindelige årsager til #N/A-, #VALUE- og #REF-fejl, som er beskrevet ovenfor, kan forårsage de samme problemer, når du kigger op fra et andet ark. Hvis det ikke er tilfældet, skal du tjekke følgende punkter:

    1. Sørg for, at den eksterne reference til et andet ark eller en anden projektmappe er korrekt.
    2. Når du laver en Vlookup fra en anden projektmappe, som er lukket i øjeblikket, skal du kontrollere, at din formel indeholder den fulde sti til den lukkede projektmappe.
    3. Hvis VLOOKUP kan ikke vælge et tabelarket i et andet regneark (dvs. når du markerer et område i opslagsarket, vises der ikke noget i table_array argumentet i formlen eller i det tilsvarende felt i formelguiden), er de to ark højst sandsynligt åbne i forskellige instanser af Excel og kan ikke kommunikere med hinanden. Du kan finde flere oplysninger under Sådan fastslår du, hvilke Excel-filer der er i hvilken instans. Du kan løse dette ved at lukke alle Excel-vinduer og derefter genåbne arkene/arbejdsbøgerne i den samme instans (standardadfærd).

    Sådan Vlookup uden fejl i Excel

    Hvis du ikke ønsker at skræmme dine brugere med standard Excel-fejlnotationer, kan du i stedet vise din egen brugervenlige tekst eller returnere en tom celle, hvis der ikke er fundet noget. Dette kan gøres ved at bruge VLOOKUP med IFERROR- eller IFNA-funktionen.

    Fange alle fejl

    I Excel 2007 og senere kan du bruge funktionen IFERROR til at kontrollere en VLOOKUP-formel for fejl og returnere din egen tekst (eller en tom streng), hvis enhver fejl er opdaget.

    For eksempel:

    =IFERROR(VLOOKUP(E1, A2:B10, 2, FALSE), "Ups, noget gik galt")

    I Excel 2003 og tidligere kan du bruge formlen IF ISERROR til det samme formål:

    =IF(ISERROR(VLOOKUP(E1, A2:B10, 2, FALSE)), "Ups, noget gik galt", VLOOKUP(E1, A2:B10, 2, FALSE))

    Du kan finde flere oplysninger i Brug af IFERROR med VLOOKUP i Excel.

    Håndtering af #N/A-fejl

    Hvis du kun vil fange #N/A-fejl og ignorere alle andre fejltyper, skal du bruge IFNA-funktionen (i Excel 2013 og højere) eller IF ISNA-formlen (i alle versioner).

    For eksempel:

    =IFNA(VLOOKUP(E1, A2:B10, 2, FALSK), "Ups, der er ikke fundet noget match. Prøv igen!")

    =IF(ISNA(VLOOKUP(E1, A2:B10, 2, FALSE)), "Ups, der er ikke fundet noget match. Prøv igen!", VLOOKUP(E1, A2:B10, 2, FALSE))

    Det var alt for i dag. Forhåbentlig vil denne vejledning hjælpe dig med at slippe af med VLOOKUP-fejl og få dine formler til at fungere som du ønsker.

    Hvordan man laver VLOOKUP i Excel - videovejledning

    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.