IFERROR-formule in Excel, VBA en Google Spreadsheets

Deze zelfstudie laat zien hoe u de Excel IFERROR-functie gebruikt om formulefouten op te sporen en deze te vervangen door een andere formule, lege waarde, 0 of een aangepast bericht.

IFERROR Functieoverzicht

De IFERROR-functie Controleert of een formule een fout oplevert. Als ONWAAR, retourneer dan het oorspronkelijke resultaat van de formule. Indien WAAR, retourneer dan een andere gespecificeerde waarde.

IFERROR-syntaxis

Om de IFERROR Excel-werkbladfunctie te gebruiken, selecteert u een cel en typt u:
=ALS.FOUT(
Merk op hoe de invoer van de IFERROR-formule wordt weergegeven:

IFERROR Functiesyntaxis en ingangen:

1 =ALS.FOUT(WAARDE;waarde_als_fout)

waarde - Een uitdrukking. Voorbeeld: 4/A1

value_if_error - Waarde of Berekening die moet worden uitgevoerd als de vorige invoer tot een fout leidt. Voorbeeld 0 of “” (leeg)

Wat is de IFERROR-functie?

De functie IFERROR valt onder de categorie Logische functies in Microsoft Excel, waaronder ISNA, ISERROR en ISERR. Al deze functies helpen bij het opsporen en afhandelen van formulefouten.

Met IFERROR kunt u een berekening uitvoeren. Als de berekening doet niet resulteert in een fout, dan wordt het berekeningsresultaat weergegeven. Als de berekening doet resulteert in een fout, dan wordt een andere berekening uitgevoerd (of wordt een statische waarde zoals 0, blanco of wat tekst uitgevoerd).

Wanneer zou u de IFERROR-functie gebruiken?

  • Bij het delen van getallen om fouten te voorkomen die worden veroorzaakt door delen door 0
  • Bij het uitvoeren van zoekopdrachten om fouten te voorkomen als de waarde niet wordt gevonden.
  • Wanneer u nog een berekening wilt uitvoeren als de eerste resulteert in een fout (bijv. Zoek een waarde op in een 2nd tabel als deze niet in de eerste tabel staat)

Onverwerkte formulefouten kunnen fouten in uw werkmap veroorzaken, maar zichtbare fouten maken uw spreadsheet ook minder zichtbaar aantrekkelijk.

Als Fout Dan 0

Laten we eens kijken naar een eenvoudig voorbeeld. Hieronder deel je twee getallen. Als u probeert te delen door nul, krijgt u een foutmelding:

Voeg in plaats daarvan de berekening in de IFERROR-functie in en als u door nul deelt, wordt een 0 uitgevoerd in plaats van een fout:

1 =ALS.FOUT(A2/B2,0)

Als Fout Dan Leeg

In plaats van fouten op 0 te zetten, kunt u ze op 'blanco' zetten met dubbele aanhalingstekens (""):

1 =ALS.FOUT(A2/B2,"")

We zullen kijken naar meer IFERROR-gebruik met de VERT.ZOEKEN-functie…

IFERROR met VERT.ZOEKEN

Opzoekfuncties zoals VERT.ZOEKEN zullen fouten genereren als de opzoekwaarde niet wordt gevonden. Zoals hierboven weergegeven, kunt u de IFERROR-functie gebruiken om fouten te vervangen door spaties ("") of nullen:

1 =IFERROR(VLOOKUP(A2,LookupTable1!$A$2:$B$4,2,FALSE),"niet gevonden")

Als er een fout is, doe dan iets anders

De IFERROR-functie kan ook worden gebruikt om een ​​2e berekening uit te voeren als de 1e berekening een fout oplevert:

12 =IFERROR(VLOOKUP(A2,LookupTable1!$A$2:$B$4,2,FALSE),VERT.ZOEKEN(A2,LookupTable2!$A$2:$B$4,2,FALSE))

Hier, als de gegevens niet worden gevonden in 'LookupTable1', wordt in plaats daarvan een VERT.ZOEKEN uitgevoerd op 'LookupTable2'.

Meer IFERROR-formulevoorbeelden

Geneste IFERROR - VERT.ZOEKEN Meerdere bladen

U kunt een IFERROR nesten in een andere IFERROR om 3 afzonderlijke berekeningen uit te voeren. Hier zullen we twee IFERROR's gebruiken om VERT.ZOEKEN uit te voeren op 3 afzonderlijke werkbladen:

123 =IFERROR(VLOOKUP(A2,LookupTable1!$A$2:$B$4,2,FALSE),IFERROR(VERT.ZOEKEN(A2,LookupTable2!$A$2:$B$4,2,FALSE),VERT.ZOEKEN(A2,LookupTable3!$A$2:$B$4,2,FALSE)))

Index / Match & XLOOKUP

Natuurlijk werkt IFERROR ook met Index / Match- en XLOOKUP-formules.

IFERROR XZOEKEN

De functie XLZOEKEN is een geavanceerde versie van de functie VERT.ZOEKEN.

1 =IFERROR(XLOOKUP(A2,LookupTable1!$A$2:$A$4,LookupTable1!$B$2:$B$4),"Niet gevonden")

IFERROR INDEX / MATCH

INDEX en MATCH kunnen worden gebruikt om krachtigere VERT.ZOEKEN's te maken (vergelijkbaar met hoe de nieuwe XZOEKEN-functie werkt) in Excel.

1 =IFERROR(INDEX(LookupTable1!$B$2:$B$4,MATCH(A3,LookupTable1!$A$2:$A$4,0)),"Niet gevonden")

IFERROR in arrays

Matrixformules in Excel worden gebruikt om verschillende berekeningen uit te voeren via een enkele formule. Laten we aannemen dat er drie kolommen zijn met Jaar, Verkoop en Gem. prijs. De totale hoeveelheid vind je met de volgende formule in kolom E.

1 {=SOM($B$2:$B$4/$C$2:$C$4)}

De formule presteert goed totdat deze probeert te delen door nul, wat resulteert in de #DIV/0! fout.

U kunt de IFERROR-functie als volgt gebruiken om de fout op te lossen:

1 {=SOM(IFERROR($B$2:$B$4/$C$2:$C$4,0))}

Merk op dat de IFERROR-functie moet worden genest in de SOM-functie, anders is de IFERROR van toepassing op het totaal en niet op elk afzonderlijk item in de array.

IFNA versus IFERROR

De IFNA-functie werkt precies hetzelfde als de IFERROR-functie, behalve dat de IFNA-functie alleen #N/A-fouten opvangt. Dit is uitermate handig bij het werken met opzoekfuncties: reguliere formulefouten worden nog steeds gedetecteerd, maar er zal geen fout verschijnen als de opzoekwaarde niet wordt gevonden.

1 =IFNA(VLOOKUP(A2,LookupTable1!$A$2:$B$4,2,FALSE),"Niet gevonden")

Als ISERROR

Als u nog steeds Microsoft Excel 2003 of een oudere versie gebruikt, kunt u IFERROR vervangen door een combinatie van IF en ISERROR. Hier is een kort voorbeeld:

1 =ALS(ISFOUT(A2/B2),0,A2/B2)

IFERROR in Google Spreadsheets

De IFERROR-functie werkt in Google Spreadsheets precies hetzelfde als in Excel:

IFERROR-voorbeelden in VBA

VBA heeft geen ingebouwde IFERROR-functie, maar je hebt ook toegang tot de Excel IFERROR-functie vanuit VBA:

12 Dim n zo langn = Application.WorksheetFunction.IfError(Waarde, value_if_error)

Toepassing.WerkbladFunctie geeft u toegang tot veel (niet alle) Excel-functies in VBA.

Typisch wordt IFERROR gebruikt bij het lezen van waarden uit cellen. Als een cel een fout bevat, kan VBA een foutmelding geven wanneer wordt geprobeerd de celwaarde te verwerken. Probeer dit uit met de onderstaande voorbeeldcode (waarin cel B2 een fout bevat):

1234567891011 Sub IFERROR_VBA()Dim n zo lang, m zo lang'IFERROR'n = Application.WorksheetFunction.IfError(Bereik("b2").Waarde, 0)'Geen IFERROR'm = Bereik ("b2"). WaardeEinde sub

De code wijst cel B2 toe aan een variabele. De tweede variabeletoewijzing geeft een fout omdat de celwaarde #N/A is, maar de eerste werkt prima vanwege de IFERROR-functie.

U kunt VBA ook gebruiken om een ​​formule te maken die de IFERROR-functie bevat:

1 Bereik ("C2").FormuleR1C1 = "=IFERROR(RC[-2]/RC[-1],0)"

Foutafhandeling in VBA is veel anders dan in Excel. Om fouten in VBA af te handelen, gebruikt u doorgaans VBA Error Handling. VBA-foutafhandeling ziet er als volgt uit:

12345678910111213141516171819 SubtestWS()MsgBox DoetWSExist("test")Einde subFunctie DoesWSExist(wsName As String) As BooleanDim ws als werkbladBij fout Hervatten volgendeStel ws = Bladen in (wsName)'Als fout WS niet bestaat'Als Foutnummer 0 DanDoesWSExist = FalseAndersIsWSExist = TrueStop alsBij fout Ga naar -1Functie beëindigen

Merk op dat we gebruiken Als Foutnummer 0 Dan om te zien of er een fout is opgetreden. Dit is een typische manier om fouten in VBA op te sporen. De IFERROR-functie heeft echter enkele toepassingen bij interactie met Excel-cellen.

wave wave wave wave wave