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.
For å bruke IFERROR Excel -regnearkfunksjonen, velg en celle og skriv:
(Legg merke til hvordan formelinngangene vises)
IFERROR Funksjon Syntaks og innganger:
= 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:
= 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 (""):
= 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:
= 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:
= 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:
= 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, FALSK)))
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.
= 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.
= 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.
{= 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:
{= 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.
= 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:
= 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:
Dim n som lang n = Application.WorksheetFunction.IfError (verdi, verdi_if_feil)
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):
Sub IFERROR_VBA () Dim n As Long, m As Long 'IFERROR n = Application.WorksheetFunction.IfError (Range ("b2"). Value, 0)' No IFERROR m = Range ("b2"). Value End 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:
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:
Sub TestWS () MsgBox DoesWSExist ("test") Avslutt underfunksjon DoesWSExist (wsName As String) As Boolean Dim ws As Worksheet On Error Resume Next Set ws = Sheets (wsName) 'If Error WS does not exist If Err.Number 0 Then DoesWSExist = False Else DoesWSExist = True End If On Error GoTo -1 End Function
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.