Denne opplæringen viser hvordan du bruker Excel IFERROR -funksjonen til å fange formelfeil, erstatte dem med en annen formel, tom verdi, 0 eller en egendefinert melding.
IFERROR Funksjonsoversikt
IFERROR -funksjonen sjekker om en formel resulterer i en feil. Hvis FALSK, returnerer du det opprinnelige resultatet av formelen. Hvis SANN, returnerer du en annen spesifisert verdi.
IFERROR Syntaks
For å bruke IFERROR Excel -regnearkfunksjonen, velg en celle og skriv:= FEIL (
Legg merke til hvordan IFERROR -formelinngangene vises:
IFERROR Funksjon Syntaks og innganger:
1 | = IFERROR (VALUE, verdi_if_feil) |
verdi - Et uttrykk. Eksempel: 4/A1
value_if_error - Verdi eller beregning som skal utføres hvis forrige inngang resulterer i en feil. Eksempel 0 eller “” (tomt)
Hva er IFERROR -funksjonen?
IFERROR -funksjonen faller inn under kategorien logiske funksjoner i Microsoft Excel, som inkluderer ISNA, ISERROR og ISERR. Alle disse funksjonene hjelper til med å oppdage og håndtere formelfeil.
IFERROR lar deg utføre en beregning. Hvis beregningen gjør ikke resultere i en feil, så blir beregningsresultatet vist. Hvis beregningen gjør resultere i en feil, så utføres en ny beregning (eller en statisk verdi som 0, tom, eller noe tekst sendes ut).
Når ville du brukt IFERROR -funksjonen?
- Når du deler tall for å unngå feil forårsaket av å dele med 0
- Når du utfører oppslag for å forhindre feil hvis verdien ikke blir funnet.
- Når du vil utføre en ny beregning hvis den første resulterer i en feil (f.eks. Slå opp en verdi i en 2nd tabellen hvis den ikke finnes i den første tabellen)
Uhåndterte formelfeil kan forårsake feil i arbeidsboken din, men synlige feil gjør også regnearket mindre synlig tiltalende.
Hvis feil, så 0
La oss se på et grunnleggende eksempel. Nedenfor deler du to tall. Hvis du prøver å dele på null, får du en feilmelding:
I stedet setter du inn beregningen i IFERROR -funksjonen, og hvis du deler med null, blir det sendt ut 0 i stedet for en feil:
1 | = FEIL (A2/B2,0) |
Hvis feilen er tom
I stedet for å sette feil til 0, kan du sette dem til "tomme" med doble anførselstegn (""):
1 | = FEIL (A2/B2, "") |
Vi vil se på flere IFERROR -bruksområder med VLOOKUP -funksjonen …
IFERROR med VLOOKUP
Oppslagsfunksjoner som VLOOKUP vil generere feil hvis oppslagsverdien ikke blir funnet. Som vist ovenfor kan du bruke IFERROR -funksjonen til å erstatte feil med mellomrom (“”) eller 0s:
1 | = IFERROR (VLOOKUP (A2, LookupTable1! $ A $ 2: $ B $ 4,2, FALSE), "ikke funnet") |
Hvis feil, så gjør noe annet
IFERROR -funksjonen kan også brukes til å utføre en andre beregning hvis den første beregningen resulterer i en feil:
12 | = IFERROR (VLOOKUP (A2, LookupTable1! $ A $ 2: $ B $ 4,2, FALSE),VLOOKUP (A2, LookupTable2! $ A $ 2: $ B $ 4,2, FALSE)) |
Her hvis dataene ikke finnes i 'LookupTable1', utføres en VLOOKUP på 'LookupTable2' i stedet.
Flere IFERROR -formeleksempler
Nestet IFERROR - VLOOKUP Flere ark
Du kan hekke en IFERROR inne i en annen IFERROR for å utføre 3 separate beregninger. Her vil vi bruke to IFERROR for å utføre VLOOKUP på 3 separate regneark:
123 | = IFERROR (VLOOKUP (A2, LookupTable1! $ A $ 2: $ B $ 4,2, FALSE),IFERROR (VLOOKUP (A2, LookupTable2! $ A $ 2: $ B $ 4,2, FALSE),VLOOKUP (A2, LookupTable3! $ A $ 2: $ B $ 4,2, FALSE))) |
Indeks / kamp og XLOOKUP
Selvfølgelig vil IFERROR også fungere med Index / Match og XLOOKUP formler.
IFERROR XLOOKUP
XLOOKUP -funksjonen er en avansert versjon av VLOOKUP -funksjonen.
1 | = IFERROR (XLOOKUP (A2, LookupTable1! $ A $ 2: $ A $ 4, LookupTable1! $ B $ 2: $ B $ 4), "Not Found") |
IFERROR INDEX / MATCH
INDEX og MATCH kan brukes til å lage kraftigere VLOOKUP -er (lignende hvordan den nye XLOOKUP -funksjonen fungerer) i Excel.
1 | = IFERROR (INDEX (LookupTable1! $ B $ 2: $ B $ 4, MATCH (A3, LookupTable1! $ A $ 2: $ A $ 4,0)), "Not Found") |
IFERROR i matriser
Arrayformler i Excel brukes til å utføre flere beregninger gjennom en enkelt formel. La oss anta at det er tre kolonner i året, salg og gjennomsnittlig pris. Du kan finne ut den totale mengden med følgende formel i E -kolonnen.
1 | {= SUM ($ B $ 2: $ B $ 4/$ C $ 2: $ C $ 4)} |
Formelen fungerer godt til den prøver å dele seg med null, noe som resulterer i #DIV/0! feil.
Du kan bruke IFERROR -funksjonen slik for å løse feilen:
1 | {= SUMME (IFERROR ($ B $ 2: $ B $ 4/$ C $ 2: $ C $ 4,0))} |
Legg merke til at IFERROR -funksjonen må være nestet inne i SUM -funksjonen, ellers vil IFERROR gjelde summen og ikke hvert enkelt element i matrisen.
IFNA vs. IFERROR
IFNA -funksjonen fungerer nøyaktig det samme som IFERROR -funksjonen, bortsett fra at IFNA -funksjonen bare fanger #I/A -feil. Dette er ekstremt nyttig når du arbeider med oppslagsfunksjoner: vanlige formelfeil vil fortsatt bli oppdaget, men ingen feil vises hvis oppslagsverdien ikke blir funnet.
1 | = IFNA (VLOOKUP (A2, LookupTable1! $ A $ 2: $ B $ 4,2, FALSE), "Not Found") |
Hvis FEIL
Hvis du fortsatt bruker Microsoft Excel 2003 eller en eldre versjon, kan du erstatte IFERROR med en kombinasjon av IF og ISERROR. Her er et kort eksempel:
1 | = HVIS (FEIL (A2/B2), 0, A2/B2) |
IFERROR i Google Regneark
IFERROR -funksjonen fungerer nøyaktig det samme i Google Regneark som i Excel:
IFERROR Eksempler i VBA
VBA har ikke en innebygd IFERROR Fucntion, men du kan også få tilgang til Excel IFERROR-funksjonen fra VBA:
12 | Dim n så lengen = Application.WorksheetFunction.IfError (Value, value_if_error) |
Søknad. Arbeidsark Funksjon gir deg tilgang til mange (ikke alle) Excel -funksjoner i VBA.
Vanligvis brukes IFERROR når du leser verdier fra celler. Hvis en celle inneholder en feil, kan VBA sende en feilmelding når du prøver å behandle celleverdien. Prøv dette med eksempelkoden nedenfor (der celle B2 inneholder en feil):
1234567891011 | Sub IFERROR_VBA ()Dim n As Long, m As Long'FEILn = Application.WorksheetFunction.IfError (område ("b2"). Verdi, 0)'Ingen FEILm = Område ("b2"). VerdiSlutt Sub |
Koden tildeler celle B2 til en variabel. Den andre variabeltildelingen gir en feil fordi celleverdien er #N/A, men den første fungerer fint på grunn av IFERROR -funksjonen.
Du kan også bruke VBA til å lage en formel som inneholder IFERROR -funksjonen:
1 | Område ("C2"). FormulaR1C1 = "= HVISFEIL (RC [-2]/RC [-1], 0)" |
Feilhåndtering i VBA er mye annerledes enn i Excel. Vanligvis vil du bruke VBA feilhåndtering for å håndtere feil i VBA. VBA feilhåndtering ser slik ut:
12345678910111213141516171819 | Sub TestWS ()MsgBox DoesWSExist ("test")Slutt SubFunksjon DoesWSExist (wsName As String) Som boolskDim ws Som regnearkVed feil Fortsett nesteSett ws = Sheets (wsName)'Hvis feil WS ikke eksistererHvis Err.Number 0 DaDoesWSExist = FalseEllersDoesWSExist = TrueSlutt omVed feil GoTo -1Sluttfunksjon |
Legg merke til at vi bruker Hvis Err.Number 0 Da for å identifisere om det har oppstått en feil. Dette er en typisk måte å fange feil i VBA. IFERROR -funksjonen har imidlertid noen bruksområder når den samhandler med Excel -celler.