Innehållsförteckning
I handledningen beskrivs den praktiska användningen av Excel-funktionen ISERROR och hur man testar olika formler för att upptäcka fel.
När du skriver en formel som Excel inte förstår eller inte kan beräkna gör Excel dig uppmärksam på problemet genom att visa ett felmeddelande. Funktionen ISERROR kan hjälpa dig att fånga upp fel och tillhandahålla ett alternativ när ett fel upptäcks.
ISERROR-funktionen i Excel
Excel-funktionen ISERROR fångar upp alla typer av fel, inklusive #CALC!, #DIV/0!, #N/A, #NAME?, #NUM!, #NULL!, #REF!, #VALUE! och #SPILL! Resultatet är ett boolskt värde: TRUE (sant) om ett fel upptäcks, FALSE (falskt) annars.
Funktionen är tillgänglig i alla versioner av Excel 2000 till 2021 och Excel 365.
Syntaxen för ISERROR-funktionen är så här enkel:
ISERROR(värde)Var värde är det cellvärde eller den formel som ska kontrolleras för fel.
Excel ISERROR-formeln
Om du vill skapa en ISERROR-formel i dess enklaste form anger du en referens till den cell som du vill testa för fel, till exempel:
=ISERROR(A2)
Om ett fel hittas får du TRUE. Om det inte finns något fel i den testade cellen får du FALSE:
IF ISERROR-formeln i Excel
Om du vill returnera ett anpassat meddelande eller utföra en annan beräkning när ett fel uppstår använder du ISERROR tillsammans med IF-funktionen. Den generiska formeln ser ut på följande sätt:
IF(ISERROR( formel (...), text_or_calculation_if_error , formel ())Översatt till ett mänskligt språk lyder det: Om huvudformeln resulterar i ett fel, visa den angivna texten eller kör en annan beräkning, annars återges ett normalt resultat av formeln.
I bilden nedan ger divideringen av summan med kvantiteten upphov till ett par fel i Pris kolumn:
Om du vill ersätta alla olika felkoder med en egen text kan du använda följande formel IF ISERROR:
=IF(ISERROR(A2/B2), "Okänd", A2/B2)
I Excel 2007 och senare versioner kan samma resultat uppnås med hjälp av den inbyggda IFERROR-funktionen:
=IFERROR(A2/B2, "Okänd")
Det bör noteras att IFERROR-formeln går lite snabbare eftersom den utför A2/B2-beräkningen bara en gång, medan IF ISERROR beräknar den två gånger - först för att se om den genererar ett fel och sedan en gång till om testet är FALSK.
IF ISERROR VLOOKUP-formeln
Att använda ISERROR med VLOOKUP är i själva verket ett särskilt fall av formeln IF ISERROR som vi diskuterade ovan. När VLOOKUP-funktionen inte kan hitta uppslagsvärdet eller misslyckas av någon annan anledning visar du ett anpassat textmeddelande med hjälp av den här syntaxen:
IF(ISERROR(VLOOKUP(...))), " anpassad_text ", VLOOKUP(....)))I det här exemplet hämtar vi tiderna från uppslagstabellen (D3:E10) till huvudtabellen (A3:B15). Om uppslagsvärdet (deltagarens namn) inte finns i uppslagstabellen returnerar vi "Not qualified".
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$10, 2, FALSE)), "Inte kvalificerad", VLOOKUP(A3, $D$3:$E$10, 2, FALSE))
Tips: Om du vill visa en anpassad text endast när en Uppslagsvärdet har inte hittats. (#N/A error) och ignorerar andra fel, använd då formeln IFNA VLOOKUP i Excel 2013 och senare eller IF ISNA VLOOKUP i äldre versioner.
IF ISERROR INDEX MATCH-formeln
När du utför en sökning med hjälp av kombinationen INDEX MATCH (eller INDEX XMATCH-formeln i Excel 365) kan du fånga upp och hantera eventuella fel genom att använda samma teknik - funktionen ISERROR kontrollerar om det finns fel och IF visar den angivna texten när ett fel uppstår.
IF(ISERROR(INDEX ( return_column , MATCH ( Lookup_value , Lookup_column , 0)))), " anpassad_text ", INDEX ( return_column , MATCH ( Lookup_value , Lookup_column , 0)))Anta att uppslagstabellen har tider i den första kolumnen. Eftersom VLOOKUP inte kan titta till vänster använder vi formeln INDEX MATCH för att hämta tiderna från kolumn D:
=INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))
Sedan kan du använda den i den ovan nämnda generiska formeln för att ersätta de fångade felen med vilken text du vill:
=IF(ISERROR(INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))), "Inte kvalificerad", INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0)))
Observera: Precis som med formeln IF ISERROR VLOOKUP är det bättre att fånga upp endast #N/A-fel och inte dölja potentiella problem med själva formeln. För detta, omsluta din INDEX MATH-formel i IFNA i Excel 2013 och senare eller IF ISNA i tidigare versioner.
IF ISERROR Yes/No formel
I alla de tidigare exemplen returnerade IF ISERROR resultatet av huvudformeln om det inte är ett fel. Det kan dock också fungera på ett annat sätt - returnera något om det är fel och något annat om det inte är något fel.
IF(ISERROR( formel (...)), " text_if_error ", " text_if_no_error ")Anta att du inte är intresserad av de exakta tiderna i vårt exempel, utan bara vill veta vilka deltagare från grupp A som är kvalificerade och vilka som inte är det. För att göra detta använder du funktionen MATCH för att jämföra namnet i kolumn A med listan över kvalificerade deltagare i kolumn D och sedan skicka resultaten till ISERROR. Om namnet inte finns i kolumn D (MATCH returnerar ett fel), får duIF-funktionen för att visa "Nej" eller "Inte kvalificerad". Om namnet visas i kolumn D (inget fel), återges "Ja" eller "Kvalificerad".
=IF(ISERROR(MATCH(A3, $D$3:$D$10, 0)), "Nej", "Ja" )
Hur man räknar antalet fel
För att få fram antalet fel i en viss kolumn måste du kontrollera ett område, inte bara en cell. För detta "matar" du målområdet med ISERROR och omvandlar de returnerade booleska värdena till 1:or och 0:or med hjälp av den dubbla unära operatorn (--). Funktionen SUM eller SUMPRODUCT kan addera siffrorna och ge slutresultatet.
Till exempel:
=SUMMA(--ISERROR(C2:C10))
Observera att det här fungerar som en vanlig formel endast i Excel 365 och Excel 2021, som stöder dynamiska matriser. I Excel 2019 och tidigare måste du trycka på Ctrl + Shift + Enter för att skapa en matrisformel (skriv inte in krusade parenteser manuellt, det fungerar inte!):
{=SUM(--ISERROR(C2:C10))}
Alternativt kan du använda funktionen SUMPRODUCT som hanterar matriser direkt, så att formeln kan slutföras med den vanliga Enter-tangenten i alla versioner:
=SUMPRODUCT(--ISERROR(C2:C10))
Skillnaden mellan ISERROR och IFERROR i Excel
Både funktionerna ISERROR och IFERROR används för att fånga och hantera fel i Excel. Skillnaden är följande:
- I sin rena form testar ISERROR bara om värdet är ett fel eller ej. Den finns tillgänglig i alla Excel-versioner.
- IFERROR-funktionen är utformad för att dölja eller dölja fel - när ett fel hittas returnerar den ett annat värde som du anger. Den är tillgänglig i Excel 2007 och senare.
Vid första anblicken ser IFERROR ut som ett alternativ till formeln IF ISERROR, men vid en närmare titt kan du se skillnaden:
- IFERROR gör det möjligt att ange endast value_if_error Om det inte finns något fel returneras alltid resultatet av det testade värdet/formeln.
- IF ISERROR ger större flexibilitet och låter dig hantera båda situationerna - vad som ska hända om ett fel uppstår och vad som ska hända om inget fel uppstår.
För att bättre illustrera det hela kan man ta hänsyn till följande formler:
=IFERROR(A1, "Fel i beräkningen")
=IF(ISERROR(A1), "Beräkningsfel", A1)
De här två formlerna är likvärdiga - båda kontrollerar ett formelstyrt värde i A1 och returnerar "Beräkningsfel" om det är ett fel, annars returnerar de värdet.
Men vad händer om du vill utföra en beräkning om värdet i A1 inte är ett fel? Funktionen IFERROR kan inte göra det. I fallet IF ISERROR skriver du bara den önskade beräkningen i det sista argumentet. Till exempel:
=IF(ISERROR(A1), "Beräkningsfel", A1*2)
Som du ser kan denna längre variant av IFERROR-formeln, som ofta anses föråldrad, fortfarande vara användbar :)
Tillgängliga nedladdningar
Exempel på ISERROR-formler (.xlsx-fil)