Innehållsförteckning
I den här handledningen kommer vi att titta på hur man använder ISERROR med VLOOKUP i Excel för att hantera alla typer av fel på ett produktivt sätt.
VLOOKUP är en av de mest förvirrande Excel-funktionerna som är behäftad med många problem. Oavsett vilken tabell du tittar i är #N/A-fel vanliga, och #NAME och #VALUE dyker också upp då och då. Genom att använda VLOOKUP med ISERROR kan du fånga upp alla möjliga fel och hantera dem på ett sätt som passar bäst för din situation.
Varför ger VLOOKUP ett fel?
Det vanligaste felet i VLOOKUP-formler är följande #N/A uppstår när ett uppslagsvärde inte hittas. Detta kan ske av olika anledningar:
- Uppslagsvärdet finns inte i uppslagsmatrisen.
- Uppslagsvärdet är felstavat.
- Det finns ledande eller avslutande mellanslag i uppslagsvärdet eller uppslagskolumnen.
- Uppslagskolonnen är inte den kolumn som ligger längst till vänster i tabellmatrisen.
Dessutom kan du stöta på en #VALUE! fel, t.ex. när uppslagsvärdet innehåller mer än 255 tecken. Om det finns ett stavfel i funktionens namn, visas en #NAME? fel visas.
För fullständig referens, se vårt tidigare inlägg om Varför Excel VLOOKUP inte fungerar.
IF ISERROR VLOOKUP-formel för att ersätta fel med egen text
För att dölja alla eventuella fel som kan utlösas av VLOOKUP kan du placera den i formeln IF ISERROR på följande sätt:
IF(ISERROR(VLOOKUP(...))), " text_if_error ", VLOOKUP(....)))Som exempel kan vi ta fram namnen på de ämnen där eleverna i grupp A inte klarade proven:
=VLOOKUP(A3, $D$3:$E$9, 2, FALSE)
Resultatet är att du får en massa #N/A-fel, vilket kan ge intryck av att formeln är skadad.
I själva verket visar dessa fel bara att några av uppslagsvärdena (A3:A14) inte finns i uppslagslistan (D3:D9). För att tydligt förmedla denna idé kan du bädda in din VLOOKUP-formel i konstruktionen IF ISERROR:
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "Nej", VLOOKUP(A3, $D$3:$E$9, 2, FALSE))
Detta fångar upp fel och returnerar ditt anpassade textmeddelande:
Tips och anteckningar:
- Den största fördelen med denna formel är att den fungerar bra i alla versioner i Excel 2000 till Excel 365. I de moderna versionerna finns enklare och mer kompakta alternativ.
- Funktionen ISERROR fångar upp absolut alla fel Om du vill visa ett anpassat meddelande endast när ett uppslagsvärde inte hittas (#N/A-fel) använder du IF ISNA VLOOKUP (i alla versioner) eller IFNA VLOOKUP (i Excel 2013 och senare).
ISERROR VLOOKUP för att returnera tom cell om fel uppstår
Om du vill ha en tom cell när ett fel inträffar kan du se till att formeln returnerar en tom sträng ("") i stället för en anpassad text:
IF(ISERROR(VLOOKUP(...))), "", VLOOKUP(...))I vårt fall har formeln följande form:
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "", VLOOKUP(A3, $D$3:$E$9, 2, FALSE))
Resultatet blir precis som förväntat - en tom cell om elevens namn inte finns i uppslagstabellen.
Tips: På samma sätt kan du ersätta VLOOKUP-fel med nollor, streck eller andra tecken som du vill. Använd bara det önskade tecknet i stället för en tom sträng.
IF ISERROR VLOOKUP Formeln Ja/Nej
I vissa situationer kanske du letar efter något, men i stället för att hitta matchningar vill du bara returnera Ja (eller någon annan text om uppslagsvärdet hittas) och Ingen (om uppslagsvärdet inte hittas). För att få det gjort kan du använda den här generiska formeln:
IF(ISERROR(VLOOKUP(...))), " text_if_not_found ", " text_if_found ")Anta att du vill veta vilka elever som inte klarade ett prov och vilka som inte gjorde det. För att uppnå detta kan du använda den redan välkända ISERROR VLOOKUP-formeln för det logiska testet IF och be den att ge ut "Nej" om värdet inte hittas (ISERROR VLOOKUP returnerar TRUE) och "Ja" om det hittas (ISERROR VLOOKUP returnerar FALSE):
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "Nej", "Ja")
ISERROR VLOOKUP alternativ
Kombinationen IF ISERROR är den äldsta beprövade tekniken för att göra Vlookup utan fel i Excel. Med tiden har nya funktioner utvecklats som ger enklare sätt att utföra samma uppgift. Nedan kommer vi att diskutera andra möjliga lösningar och när de är bäst att använda.
IFERROR VLOOKUP
Tillgänglig i Excel 2007 och senare
Från och med version 2007 har Excel en särskild funktion, IFERROR, som gör det möjligt att kontrollera en formel för fel och returnera din egen text (eller köra en alternativ formel) om något fel upptäcks.
IFERROR(VLOOKUP(...), " text_if_error ")Den verkliga formeln är följande:
=IFERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE), "Nej")
Vid första anblicken ser det ut som en kortare analog till formeln IF ISERROR VLOOKUP, men det finns en väsentlig skillnad:
- IFERROR VLOOKUP förutsätter att du alltid vill ha resultatet av VLOOKUP om det inte är ett fel.
- IF ISERROR Med VLOOKUP kan du ange vad som ska returneras om ett fel uppstår och vad som ska returneras om inget fel uppstår.
Mer information finns i Användning av IFERROR med VLOOKUP i Excel.
OM DET FINNS EN VLOOKUP
Fungerar i Excel 2000 och senare
I situationer där du vill fånga endast #N/A utan att fånga upp andra fel är funktionen ISNA praktisk. Syntaxen är densamma som för IF ISERROR VLOOKUP:
IF(ISNA(VLOOKUP(...)), " text_if_error ", VLOOKUP(....)))Men under vissa omständigheter kan denna till synes identiska formel ge olika resultat:
=IF(ISNA(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "Nej", VLOOKUP(A3, $D$3:$E$9, 2, FALSE))
I bilden nedan innehåller cell A13 många efterföljande blanksteg, vilket gör att den totala längden på uppslagsvärdet överstiger 255 tecken. Detta leder till att formeln utlöser felet #VALUE! som uppmärksammar den cellen och uppmanar dig att undersöka orsakerna. ISERROR VLOOKUP skulle ge "Nej" i det här fallet, vilket bara skulle dölja problemet och ge ett helt felaktigt resultat.
När ska du använda:
Den här formeln fungerar utmärkt när du vill visa en text endast när ett uppslagsvärde inte hittas och inte vill dölja underliggande problem med själva VLOOKUP-formeln, t.ex. när funktionens namn är felskrivet (#NAME?) eller när den fullständiga sökvägen till uppslagsarbetsboken inte är angiven (#VALUE!).
För mer information, se ISNA-funktionen i Excel med exempel på formler.
IFNA VLOOKUP
Tillgänglig i Excel 2013 och senare
Det är en modern ersättning för kombinationen IF ISNA som gör det lättare att hantera #N/A-fel.
IFNA(VLOOKUP(...), " text_if_error ")Här är en kortfattad motsvarighet till vår formel IF ISNA VLOOKUP:
=IFNA(VLOOKUP(A3, $D$3:$E$9, 2, FALSE), "Nej")
När ska du använda:
Det är en idealisk lösning för att fånga och hantera #N/A-fel i moderna versioner av Excel (2013 - 365).
För fullständig information, se Excel IFNA-funktionen.
XLOOKUP
Stöds i Excel 2021 och Excel 365
På grund av dess inbyggda "om fel"-funktion är XLOOKUP-funktionen det enklaste sättet att söka upp utan #N/A-fel i Excel. Skriv helt enkelt din användarvänliga text i det valfria fjärde argumentet som heter if_not_found .
Till exempel:
=XLOOKUP(A3, $D$3:$D$9, $E$3:$E$9, "Nej")
Begränsning: Den fångar endast upp #N/A-fel och ignorerar andra typer.
Mer information finns i XLOOKUP-funktionen i Excel.
Som du ser erbjuder Excel en hel del olika alternativ för att komma till rätta med VLOOKUP-fel. Förhoppningsvis har den här handledningen kastat lite ljus över hur man effektivt använder dem. Jag tackar dig för att du läste och hoppas att vi ses på vår blogg nästa vecka!
Tillgängliga nedladdningar
ISERROR med VLOOKUP-exempel (.xlsx-fil)