Denne vejledning viser, hvordan du bruger Excel IFERROR -funktionen til at fange formelfejl, erstatte dem med en anden formel, tom værdi, 0 eller en brugerdefineret meddelelse.
IFERROR Funktionsoversigt
IFERROR -funktionen kontrollerer, om en formel resulterer i en fejl. Hvis FALSK, returneres det oprindelige resultat af formlen. Hvis SAND, skal du returnere en anden specificeret værdi.
Hvis du vil bruge IFERROR Excel -regnearksfunktionen, skal du vælge en celle og skrive:
(Bemærk hvordan formelindgangene vises)
IFERROR Funktionssyntaks og input:
= IFERROR (VALUE, value_if_error)
værdi - Et udtryk. Eksempel: 4/A1
value_if_error - Værdi eller beregning, der skal udføres, hvis den tidligere input resulterer i en fejl. Eksempel 0 eller “” (blank)
Hvad er IFERROR -funktionen?
IFERROR -funktionen falder ind under kategorien logiske funktioner i Microsoft Excel, som omfatter ISNA, ISERROR og ISERR. Alle disse funktioner hjælper med at registrere og håndtere formelfejl.
IFERROR giver dig mulighed for at udføre en beregning. Hvis beregningen gør ikke resultere i en fejl, så vises beregningsresultatet. Hvis beregningen gør resultere i en fejl, så udføres en anden beregning (eller en statisk værdi som 0, blank, eller noget tekst udsendes).
Hvornår ville du bruge IFERROR -funktionen?
- Når man deler tal for at undgå fejl forårsaget af at dividere med 0
- Når der udføres opslag for at forhindre fejl, hvis værdien ikke findes.
- Når du vil udføre en anden beregning, hvis den første resulterer i en fejl (f.eks. Slå en værdi op i en 2nd tabel, hvis den ikke findes i den første tabel)
Uhåndterede formelfejl kan forårsage fejl i din projektmappe, men synlige fejl gør også dit regneark mindre synligt tiltrækkende.
Hvis fejl derefter 0
Lad os se på et grundlæggende eksempel. Nedenfor deler du to tal. Hvis du forsøger at dividere med nul, får du en fejl:
Indsæt i stedet beregningen i IFERROR -funktionen, og hvis du dividerer med nul, udsendes et 0 i stedet for en fejl:
= FEJL (A2/B2,0)
Hvis fejl derefter tom
I stedet for at angive fejl til 0, kan du indstille dem til 'blank' med dobbelt citater (""):
= FEJL (A2/B2, "")
Vi vil se på flere IFERROR -anvendelser med VLOOKUP -funktionen …
IFERROR med VLOOKUP
Opslagsfunktioner som VLOOKUP vil generere fejl, hvis opslagsværdien ikke findes. Som vist ovenfor kan du bruge IFERROR -funktionen til at erstatte fejl med mellemrum (“”) eller 0’er:
= IFERROR (VLOOKUP (A2, LookupTable1! $ A $ 2: $ B $ 4,2, FALSE), "ikke fundet")
Hvis fejl, så gør noget andet
IFERROR -funktionen kan også bruges til at udføre en anden beregning, hvis den første beregning resulterer i en fejl:
= IFERROR (VLOOKUP (A2, LookupTable1! $ A $ 2: $ B $ 4,2, FALSE), VLOOKUP (A2, LookupTable2! $ A $ 2: $ B $ 4,2, FALSE))
Her hvis dataene ikke findes i 'LookupTable1' udføres der i stedet en VLOOKUP på 'LookupTable2'.
Flere IFERROR -formeleksempler
Indlejret IFERROR - VLOOKUP Flere ark
Du kan rede en IFERROR inde i en anden IFERROR for at udføre 3 separate beregninger. Her vil vi bruge to IFERRORs til at udføre VLOOKUP'er 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 / Match & XLOOKUP
Selvfølgelig vil IFERROR også arbejde med indeks- / match- og XLOOKUP -formler.
IFERROR XLOOKUP
XLOOKUP -funktionen er en avanceret version af VLOOKUP -funktionen.
= IFERROR (XLOOKUP (A2, LookupTable1! $ A $ 2: $ A $ 4, LookupTable1! $ B $ 2: $ B $ 4), "Ikke fundet")
IFERROR INDEX / MATCH
INDEX og MATCH kan bruges til at oprette mere kraftfulde VLOOKUP'er (svarende til hvordan den nye XLOOKUP -funktion fungerer) i Excel.
= IFERROR (INDEX (LookupTable1! $ B $ 2: $ B $ 4, MATCH (A3, LookupTable1! $ A $ 2: $ A $ 4,0)), "Ikke fundet")
IFERROR i arrays
Arrayformler i Excel bruges til at udføre flere beregninger gennem en enkelt formel. Lad os antage, at der er tre kolonner i året, salg og gennemsnitspris. Du kan finde ud af den samlede mængde med følgende formel i kolonnen E.
{= SUM ($ B $ 2: $ B $ 4/$ C $ 2: $ C $ 4)}
Formlen fungerer godt, indtil den forsøger at dividere med nul, hvilket resulterer i #DIV/0! fejl.
Du kan bruge IFERROR -funktionen som denne til at løse fejlen:
{= SUMME (HVISFEJL ($ B $ 2: $ B $ 4/$ C $ 2: $ C $ 4,0))}
Bemærk, at IFERROR -funktionen skal være indlejret inde i SUM -funktionen, ellers gælder IFERROR for summen og ikke hvert enkelt element i arrayet.
IFNA vs. IFERROR
IFNA -funktionen fungerer nøjagtigt på samme måde som IFERROR -funktionen, bortset fra at IFNA -funktionen kun fanger #N/A -fejl. Dette er yderst nyttigt, når du arbejder med opslagsfunktioner: regelmæssige formelfejl vil stadig blive registreret, men der vises ingen fejl, hvis opslagsværdien ikke findes.
= IFNA (VLOOKUP (A2, LookupTable1! $ A $ 2: $ B $ 4,2, FALSE), "Not Found")
Hvis FEJL
Hvis du stadig bruger Microsoft Excel 2003 eller en ældre version, kan du erstatte IFERROR med en kombination af IF og ISERROR. Her er et kort eksempel:
= HVIS (FEJL (A2/B2), 0, A2/B2)
IFERROR i Google Sheets
IFERROR -funktionen fungerer nøjagtig det samme i Google Sheets som i Excel:
IFERROR Eksempler i VBA
VBA har ikke en indbygget IFERROR Fucntion, men du kan også få adgang til Excel IFERROR-funktionen indefra VBA:
Dim n som lang n = Application.WorksheetFunction.IfError (værdi, værdi_if_fejl)
Application.WorksheetFunktion giver dig adgang til mange (ikke alle) Excel -funktioner i VBA.
Typisk bruges IFERROR ved læsning af værdier fra celler. Hvis en celle indeholder en fejl, sender VBA muligvis en fejlmeddelelse, når man forsøger at behandle celleværdien. Prøv dette med eksempelkoden herunder (hvor celle B2 indeholder en fejl):
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 anden variabeltildeling udsender en fejl, fordi celleværdien er #N/A, men den første fungerer fint på grund af IFERROR -funktionen.
Du kan også bruge VBA til at oprette en formel, der indeholder IFERROR -funktionen:
Område ("C2"). FormulaR1C1 = "= HVISFEJL (RC [-2]/RC [-1], 0)"
Fejlhåndtering i VBA er meget anderledes end i Excel. For at håndtere fejl i VBA vil du typisk bruge VBA fejlhåndtering. VBA -fejlhåndtering ser sådan ud:
Sub TestWS () MsgBox DoesWSExist ("test") Afslut underfunktion 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
Bemærk, vi bruger Hvis Err.Number 0 Så at identificere, om der er opstået en fejl. Dette er en typisk måde at fange fejl i VBA. IFERROR -funktionen har dog nogle anvendelsesmuligheder, når den interagerer med Excel -celler.