Innehållsförteckning
I handledningen visas hur du använder IFERROR i Excel för att fånga upp fel och ersätta dem med en tom cell, ett annat värde eller ett anpassat meddelande. Du lär dig hur du använder IFERROR-funktionen med Vlookup och indexmatchning och hur den är jämförbar med IF ISERROR och IFNA.
"Ge mig en plats att stå på och jag ska flytta jorden", sa Archimedes en gång. "Ge mig en formel och jag ska få den att returnera ett fel", skulle en Excel-användare säga. I den här handledningen kommer vi inte att titta på hur man returnerar fel i Excel, utan snarare lära oss hur man kan förhindra dem för att hålla dina kalkylblad rena och dina formler transparenta.
Excel IFERROR-funktionen - syntax och grundläggande användningsområden
IFERROR-funktionen i Excel är utformad för att fånga upp och hantera fel i formler och beräkningar. IFERROR kontrollerar en formel och om den visar ett fel returnerar den ett annat värde som du anger, annars returnerar den resultatet av formeln.
Syntaxen för Excel-funktionen IFERROR är följande:
IFERROR(värde, value_if_error)Var:
- Värde (obligatoriskt) - vad som ska kontrolleras för fel. Det kan vara en formel, ett uttryck, ett värde eller en cellreferens.
- Värde_om_fel (obligatoriskt) - vad som ska returneras om ett fel upptäcks. Det kan vara en tom sträng (tom cell), ett textmeddelande, ett numeriskt värde, en annan formel eller beräkning.
När du till exempel dividerar två kolumner med siffror kan du få en massa olika fel om en av kolumnerna innehåller tomma celler, nollor eller text.
För att förhindra att det händer använder du funktionen IFERROR för att fånga upp och hantera fel på det sätt du vill.
Om fel, därefter tomt
Ange en tom sträng (") i value_if_error argumentet för att returnera en tom cell om ett fel hittas:
=IFERROR(A2/B2, "")
Om fel, visa ett meddelande
Du kan också visa ett eget meddelande i stället för Excels standardfelnotering:
=IFERROR(A2/B2, "Fel i beräkningen")
5 saker du bör veta om Excel IFERROR-funktionen
- IFERROR-funktionen i Excel hanterar alla feltyper, inklusive #DIV/0!, #N/A, #NAME?, #NULL!, #NUM!, #REF! och #VALUE!.
- Beroende på innehållet i value_if_error kan IFERROR ersätta fel med ett eget textmeddelande, nummer, datum eller logiskt värde, resultatet av en annan formel eller en tom sträng (tom cell).
- Om den värde argumentet är en tom cell behandlas det som en tom sträng ('''') men inte som ett fel.
- IFERROR infördes i Excel 2007 och finns i alla efterföljande versioner av Excel 2010, Excel 2013, Excel 2016, Excel 2019, Excel 2021 och Excel 365.
- För att fånga upp fel i Excel 2003 och tidigare versioner använder du funktionen ISERROR i kombination med IF, enligt det här exemplet.
Exempel på IFERROR-formler
Följande exempel visar hur du kan använda IFERROR i Excel i kombination med andra funktioner för att utföra mer komplexa uppgifter.
Excel IFERROR med Vlookup
En av de vanligaste användningsområdena för IFERROR-funktionen är att tala om för användaren att det värde de söker inte finns i datamängden. För att göra detta kan du linda in en VLOOKUP-formel i IFERROR på följande sätt:
IFERROR(VLOOKUP( ... ), "Ej funnen")Om uppslagsvärdet inte finns i den tabell som du söker i, skulle en vanlig Vlookup-formel ge felet #N/A:
För att dina användare ska känna sig trygga kan du omsluta VLOOKUP med IFERROR och visa ett mer informativt och användarvänligt meddelande:
=IFERROR(VLOOKUP(A2, 'Lookup table'!$A$2:$B$4, 2,FALSE), "Not found")
Skärmbilden nedan visar denna Iferror-formel i Excel:
Om du vill fånga endast #N/A-fel men inte alla fel, använd funktionen IFNA istället för IFERROR.
Fler exempel på Excel IFERROR VLOOKUP-formler finns i dessa handledningar:
- Iferror med Vlookup för att fånga och hantera fel
- Hur man får fram den nionde förekomsten av ett uppslagsvärde
- Hur får man fram alla förekomster av ett uppslagsvärde?
Inbäddade IFERROR-funktioner för att göra sekventiella Vlookups i Excel
I situationer där du behöver utföra flera Vlookups baserat på om den föregående Vlookupen lyckades eller misslyckades kan du bädda in två eller flera IFERROR-funktioner i varandra.
Anta att du har ett antal försäljningsrapporter från regionala filialer i ditt företag och att du vill få fram ett belopp för ett visst order-ID. Med A2 som uppslagsvärde i det aktuella arket och A2:B5 som uppslagsintervall i tre uppslagsark (Rapport 1, Rapport 2 och Rapport 3) ser formeln ut på följande sätt:
=IFERROR(VLOOKUP(A2,'Rapport 1'!A2:B5,2,0),IFERROR(VLOOKUP(A2,'Rapport 2'!A2:B5,2,0),IFERROR(VLOOKUP(A2,'Rapport 3'!A2:B5,2,0), "ej funnen")))
Resultatet kommer att se ut ungefär så här:
En detaljerad förklaring av formelns logik finns i Hur man gör sekventiella Vlookups i Excel.
IFERROR i formler för matriser
Som du säkert vet är arrayformler i Excel avsedda för att utföra flera beräkningar i en enda formel. Om du anger en arrayformel eller ett uttryck som resulterar i en array i värde argumentet i IFERROR-funktionen, returneras en array med värden för varje cell i det angivna intervallet. Nedanstående exempel visar detaljerna.
Låt oss säga att du har Totalt i kolumn B och Pris i kolumn C, och du vill beräkna Total kvantitet Detta kan göras genom att använda följande formel för matriser, som dividerar varje cell i intervallet B2:B4 med motsvarande cell i intervallet C2:C4 och sedan adderar resultaten:
=SUM($B$2:$B$4/$C$2:$C$4)
Formeln fungerar bra så länge divisorområdet inte innehåller nollor eller tomma celler. Om det finns minst ett nollvärde eller en tom cell returneras felet #DIV/0!
För att åtgärda felet gör du helt enkelt divisionen i IFERROR-funktionen:
=SUMMA(IFERROR($B$2:$B$4/$C$2:$C$4,0))
Formeln dividerar ett värde i kolumn B med ett värde i kolumn C i varje rad (100/2, 200/5 och 0/0) och returnerar matrisen med resultaten {50; 40; #DIV/0!}. IFERROR-funktionen fångar upp alla #DIV/0!-fel och ersätter dem med nollor. SUM-funktionen adderar värdena i matrisen med resultaten {50; 40; 0} och ger ut det slutliga resultatet (50+40=90).
Observera: Kom ihåg att du ska komplettera matrisformler genom att trycka på kortkommandot Ctrl + Shift + Enter.
IFERROR kontra IF ISERROR
Nu när du vet hur enkelt det är att använda IFERROR-funktionen i Excel, kanske du undrar varför vissa fortfarande föredrar att använda kombinationen IF ISERROR. Har den några fördelar jämfört med IFERROR? Inga. I den dåliga gamla tiden i Excel 2003 och lägre, när IFERROR inte fanns, var IF ISERROR det enda möjliga sättet att fånga upp fel. I Excel 2007 och senare är det bara ett lite mer komplext sätt attuppnå samma resultat.
För att fånga upp Vlookup-fel kan du till exempel använda någon av följande formler.
I Excel 2007 - Excel 2016:
IFERROR(VLOOKUP( ... ), "Ej funnen")I alla Excel-versioner:
IF(ISERROR(VLOOKUP(...))), "Ej funnen", VLOOKUP(...))Lägg märke till att du i formeln IF ISERROR VLOOKUP måste göra Vlookup två gånger. På klarspråk kan formeln läsas på följande sätt: Om Vlookup resulterar i ett fel, återge "Not found", i annat fall skriv ut Vlookup-resultatet.
Här är ett exempel på en Excel If Iserror Vlookup-formel:
=IF(ISERROR(VLOOKUP(D2, A2:B5,2,FALSE)), "Ej funnen", VLOOKUP(D2, A2:B5,2,FALSE ))
Mer information finns i Användning av ISERROR-funktionen i Excel.
IFERROR mot IFNA
IFNA, som introducerades i Excel 2013, är ytterligare en funktion för att kontrollera om en formel är felaktig. Syntaxen liknar syntaxen för IFERROR:
IFNA(värde, value_if_na)På vilket sätt skiljer sig IFNA från IFERROR? IFNA-funktionen fångar upp endast #N/A-fel medan IFERROR hanterar alla feltyper.
I vilka situationer kan du använda IFNA? När det är oklokt att dölja alla fel. När du till exempel arbetar med viktiga eller känsliga uppgifter kan du vilja bli varnad för eventuella fel i din datamängd, och standardfelmeddelanden i Excel med symbolen "#" kan vara en tydlig visuell indikator.
Vi ska se hur du kan skapa en formel som visar meddelandet "Not found" i stället för N/A-felet, som visas när uppslagsvärdet inte finns i datamängden, men som uppmärksammar dig på andra Excel-fel.
Anta att du vill dra Qty. från uppslagstabellen till sammanfattningstabellen som visas i skärmdumpen nedan. Att använda Excel Iferror Vlookup-formeln skulle ge ett estetiskt tilltalande resultat, men det är tekniskt sett felaktigt eftersom Citroner finns i uppslagstabellen:
Om du vill fånga #N/A men visa felet #DIV/0 använder du funktionen IFNA i Excel 2013 och Excel 2016:
=IFNA(VLOOKUP(F3,$A$3:$D$6,4,FALSE), "Ej funnen")
Eller kombinationen IF ISNA i Excel 2010 och tidigare versioner:
=IF(ISNA(VLOOKUP(F3,$A$3:$D$6,4,FALSE)), "Ej funnen", VLOOKUP(F3,$A$3:$D$6,4,FALSE))
Syntaxen för formlerna IFNA VLOOKUP och IF ISNA VLOOKUP liknar syntaxen för IFERROR VLOOKUP och IF ISERROR VLOOKUP som diskuterats tidigare.
Som visas i skärmbilden nedan returnerar Ifna Vlookup-formeln "Not found" endast för det objekt som inte finns i uppslagstabellen ( Persikor ). För Citroner visas #DIV/0!, vilket visar att vår uppslagstabell innehåller ett fel i att dividera med noll:
Mer information finns i Användning av IFNA-funktionen i Excel.
Bästa metoder för att använda IFERROR i Excel
Vid det här laget vet du redan att IFERROR-funktionen är det enklaste sättet att fånga upp fel i Excel och maskera dem med tomma celler, nollvärden eller egna meddelanden. Det betyder dock inte att du ska omsluta varje formel med felhantering. Följande enkla rekommendationer kan hjälpa dig att hålla balansen.
- Fånga inte upp fel utan anledning.
- Omsluta den minsta möjliga delen av en formel med IFERROR.
- Om du vill hantera endast specifika fel använder du en felhanteringsfunktion med ett mindre tillämpningsområde:
- IFNA eller IF ISNA för att endast fånga upp #N/A-fel.
- ISERR för att fånga upp alla fel utom #N/A.
Så här använder du IFERROR-funktionen i Excel för att fånga upp och hantera fel. Om du vill titta närmare på formlerna som diskuteras i den här handledningen är du välkommen att ladda ner vår exempelarbetsbok IFERROR i Excel. Jag tackar dig för att du läste och hoppas att vi ses på vår blogg nästa vecka.