Innholdsfortegnelse
Opplæringen ser på den praktiske bruken av Excel ISERROR-funksjonen og viser hvordan du tester forskjellige formler for feil.
Når du skriver en formel som Excel ikke forstår eller ikke kan beregne, gjør den oppmerksomheten din til problemet ved å vise en feilmelding. FEIL-funksjonen kan hjelpe deg med å fange opp feil og gi et alternativ når en feil blir funnet.
FEIL-funksjonen i Excel
Excel-FEIL-funksjonen fanger opp alle typer feil, inkludert #CALC!, #DIV/0!, #N/A, #NAME?, #NUM!, #NULL!, #REF!, #VALUE! og #SPILL!. Resultatet er en boolsk verdi: TRUE hvis det oppdages en feil, ellers FALSE.
Funksjonen er tilgjengelig i alle versjoner av Excel 2000 til og med 2021 og Excel 365.
Syntaksen til ISERROR funksjonen er så enkel som denne:
FEIL(verdi)Hvor verdi er celleverdien eller formelen som skal sjekkes for feil.
Excel FEIL-formel
For å lage en FEIL-formel i sin enkleste form, oppgi en referanse til cellen du vil teste for feil. For eksempel:
=ISERROR(A2)
Hvis en feil blir funnet, får du TRUE. Hvis det ikke er noen feil i den testede cellen, får du FALSE:
HVIS FEIL formel i Excel
For å returnere en egendefinert melding eller utføre en annen beregning når det oppstår en feil, bruk FEIL sammen med HVIS-funksjonen. Den generiske formelen ser ut som følger:
HVIS(FEIL( formel(…), tekst_eller_beregning_hvis_feil, formel())Oversatt til et menneskelig språk, står det: hvis hovedformelen resulterer i en feil, vis den spesifiserte teksten eller kjør en annen beregning, ellers returner et normalt resultat av formelen.
I bildet nedenfor genererer det å dele totalen på antallet et par feil i Prisen kolonne:
For å erstatte alle forskjellige feilkoder med en egendefinert tekst, kan du bruke følgende HVIS FEIL formel:
=IF(ISERROR(A2/B2), "Unknown", A2/B2)
I Excel 2007 og senere versjoner kan det samme resultatet oppnås ved hjelp av den innebygde IFERROR-funksjonen:
=IFERROR(A2/B2, "Unknown")
Det skal være bemerket at IFERROR-formelen kjører litt raskere fordi den utfører A2/B2-beregningen bare én gang. Mens IF ISERROR beregner den to ganger - først for å se om den genererer en feil og så igjen hvis testen er FALSE.
IF ISERROR VLOOKUP-formel
Å bruke ISERROR med VLOOKUP er faktisk et spesielt tilfelle av IF IS FEIL-formelen diskutert ovenfor. Når VLOOKUP-funksjonen ikke finner oppslagsverdien eller mislykkes av en annen grunn, viser du en egendefinert tekstmelding ved å bruke denne syntaksen:
IF(FEIL(VLOOKUP(…)), " custom_text", VLOOKUP(...))For dette eksemplet, la oss trekke tidene fra oppslagstabellen (D3:E10) til hovedtabellen (A3:B15). Hvis oppslagsverdien (deltakerens navn) ikke finnes ioppslagstabell, returnerer vi "Ikke kvalifisert".
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$10, 2, FALSE)), "Not qualified", VLOOKUP(A3, $D$3:$E$10, 2, FALSE))
Tips. Hvis du bare vil vise en egendefinert tekst når en oppslagsverdi ikke er funnet (#N/A feil) og ignorerer andre feil, bruker du formelen IFNA VLOOKUP i Excel 2013 og nyere eller IF ISNA VLOOKUP i eldre versjon versjoner.
HVIS FEIL INDEX MATCH formel
Når du utfører et oppslag ved hjelp av INDEX MATCH-kombinasjonen (eller INDEX XMATCH-formelen i Excel 365), kan du fange og håndtere eventuelle feil ved å bruke samme teknikk - FEIL-funksjonen ser etter feil og HVIS viser den angitte teksten når en feil oppstår.
HVIS(FEIL(INDEKS ( returkolonne , MATCH ( oppslagsverdi , oppslagskolonne<2)>, 0)))), " egendefinert_tekst ", INDEX ( returkolonne , MATCH ( oppslagsverdi , oppslagskolonne , 0)))Anta at oppslagstabellen har tider i den første kolonnen. Siden VLOOKUP ikke er i stand til å se til venstre, bruker vi INDEX MATCH-formelen til å hente tidene fra kolonne D:
=INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))
Og så legger du den i den ovennevnte generiske formelen for å erstatte de fangede feilene med hvilken som helst tekst du vil:
=IF(ISERROR(INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))), "Not qualified", INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0)))
Merk. Som med IF ISERROR VLOOKUP-formelen, er det mer fornuftig å fange bare #N/A-feil og ikke skjule potensielle problemer med selve formelen. For dette, pakk inn INDEX MATH-formelen i IFNA i Excel 2013 og høyere eller IF ISNA i tidligere versjoner.
HVISFEIL Ja/Nei-formel
I alle de foregående eksemplene returnerte IFFEIL resultatet av hovedformelen hvis det ikke er en feil. Det kan imidlertid også fungere på en annen måte - returner noe hvis feil og noe annet hvis ingen feil.
HVIS(FEIL( formel (...)), " tekst_hvis_feil " , " text_if_no_error ")I vårt eksempeldatasett, anta at du ikke er interessert i de nøyaktige tidspunktene, du vil bare vite hvilke deltakere fra gruppe A som er kvalifisert og hvilke som ikke er det. For å gjøre dette, bruk MATCH-funksjonen til å sammenligne navnet i kolonne A med listen over de kvalifiserte deltakerne i kolonne D, og server deretter resultatene til ISERROR. Hvis navnet ikke er tilgjengelig i kolonne D (MATCH returnerer en feil), får HVIS-funksjonen til å vise "Nei" eller "Ikke kvalifisert". Hvis navnet vises i kolonne D (ingen feil), returner "Ja" eller "Kvalifisert".
=IF(ISERROR(MATCH(A3, $D$3:$D$10, 0)), "No", "Yes" )
Hvordan telle antall feil
For å få antall feil i en bestemt kolonne, må du sjekke et område, ikke bare én celle. For dette, "mat" målområdet til ISERROR og tving de returnerte boolske verdiene til 1-er og 0-er ved å bruke den doble unære operatoren (--). SUM- eller SUMPRODUKT-funksjonen kan legge sammen tallene og levere det endelige resultatet.
For eksempel:
=SUM(--ISERROR(C2:C10))
Vær oppmerksom på at dette fungerer som en vanlig formel bare i Excel 365 og Excel 2021, som støtter dynamiske matriser. I Excel 2019 og tidligere, dumå trykke Ctrl + Shift + Enter for å lage en matriseformel (ikke skriv krøllede parenteser manuelt, det vil ikke fungere!):
{=SUM(--ISERROR(C2:C10))}
Alternativt kan du bruke SUMPRODUCT funksjon som håndterer arrays naturlig, slik at formelen kan fullføres med den vanlige Enter-tasten i alle versjoner:
=SUMPRODUCT(--ISERROR(C2:C10))
Forskjellen mellom ISERROR og IFERROR i Excel
Både ISERROR- og IFERROR-funksjonene brukes til å felle og håndtere feil i Excel. Forskjellen er som følger:
- I sin rene form tester ISERROR bare om verdien er en feil eller ikke. Den er tilgjengelig i alle Excel-versjoner.
- IFERROR-funksjonen er utviklet for å undertrykke eller skjule feil – når en feil blir funnet, returnerer den en annen verdi som du angir. Den er tilgjengelig i Excel 2007 og høyere.
Ved første øyekast ser IFERROR ut som et stenografisk alternativ til IF ISERROR-formelen. Ved en nærmere titt kan du imidlertid legge merke til forskjellen:
- IFERROR lar deg spesifisere bare verdi_hvis_feil . Hvis det ikke er noen feil, returnerer den alltid resultatet av den testede verdien/formelen.
- HVIS FEIL gir mer fleksibilitet og lar deg håndtere begge situasjonene - hva skal skje hvis en feil og hva hvis ingen feil.
For bedre å illustrere poenget, vurder disse formlene:
=IFERROR(A1, "Calculation error")
=IF(ISERROR(A1), "Calculation error", A1)
Disse to formlene er likeverdige - begge kontrollerer en formeldrevet verdi i A1 og retur"Beregningsfeil" hvis det er en feil, ellers - returner verdien.
Men hva om du vil utføre en utregning hvis verdien i A1 ikke er en feil? IFERROR-funksjonen kan ikke gjøre det. I tilfelle IF FEIL, skriv bare inn ønsket beregning i det siste argumentet. For eksempel:
=IF(ISERROR(A1), "Calculation error", A1*2)
Som du ser, kan denne lengre varianten av IFERROR-formelen, som ofte anses som utdatert, fortsatt være nyttig :)
Tilgjengelige nedlastinger
FEIL-formeleksempler (.xlsx-fil)