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.