IFERROR Formula i Excel, VBA og Google Sheets

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.

wave wave wave wave wave