Inhoudsopgave
De handleiding gaat in op het praktische gebruik van de functie ISERROR in Excel en laat zien hoe verschillende formules op fouten kunnen worden getest.
Wanneer u een formule schrijft die Excel niet begrijpt of niet kan berekenen, vestigt het uw aandacht op het probleem door een foutmelding te tonen. De functie ISERROR kan u helpen fouten op te vangen en een alternatief te bieden wanneer een fout wordt gevonden.
ISERROR functie in Excel
De Excel ISERROR functie vangt alle soorten fouten op, waaronder #CALC!, #DIV/0!, #N/A, #NAME?, #NUM!, #NULL!, #REF!, #VALUE!, en #SPILL! Het resultaat is een Booleaanse waarde: TRUE indien een fout is gedetecteerd, FALSE anders.
De functie is beschikbaar in alle versies van Excel 2000 tot en met 2021 en Excel 365.
De syntaxis van de ISERROR-functie is zo eenvoudig:
ISERROR(waarde)Waar waarde is de celwaarde of formule die op fouten moet worden gecontroleerd.
Excel ISERROR-formule
Om een ISERROR-formule in zijn eenvoudigste vorm te maken, geeft u een verwijzing naar de cel die u op fouten wilt testen. Bijvoorbeeld:
=ISERROR(A2)
Als er een fout is gevonden, krijg je TRUE. Als er geen fout is in de geteste cel, krijg je FALSE:
IF ISERROR-formule in Excel
Om een aangepast bericht terug te sturen of een andere berekening uit te voeren wanneer een fout optreedt, gebruikt u ISERROR samen met de IF-functie. De algemene formule ziet er als volgt uit:
IF(ISERROR( formule (...), tekst_of_berekening_indien_fout , formule ())Vertaald in mensentaal staat er: indien de hoofdformule een fout oplevert, geef dan de opgegeven tekst weer of voer een andere berekening uit, anders geeft de formule een normaal resultaat.
In de onderstaande afbeelding geeft het delen van het totaal door de hoeveelheid een paar fouten in de Prijs column:
Om alle verschillende foutcodes te vervangen door een aangepaste tekst, kunt u de volgende IF ISERROR-formule gebruiken:
=IF(ISERROR(A2/B2), "Unknown", A2/B2)
In Excel 2007 en latere versies kan hetzelfde resultaat worden bereikt met behulp van de ingebouwde IFERROR-functie:
=IFERROR(A2/B2, "Unknown")
Opgemerkt zij dat de IFERROR-formule iets sneller werkt omdat zij de A2/B2-berekening slechts eenmaal uitvoert. Terwijl IF ISERROR deze tweemaal berekent - eerst om te zien of zij een fout genereert en vervolgens nogmaals als de test FALSE is.
IF ISERROR VLOOKUP-formule
Het gebruik van ISERROR met VLOOKUP is in feite een bijzonder geval van de hierboven besproken IF ISERROR-formule. Wanneer de VLOOKUP-functie de opzoekwaarde niet kan vinden of om een andere reden faalt, geeft u met deze syntaxis een aangepast tekstbericht weer:
IF(ISERROR(VLOOKUP(...)), " aangepaste_tekst ", VLOOKUP(...))Voor dit voorbeeld halen we de tijden uit de opzoektabel (D3:E10) naar de hoofdtabel (A3:B15). Als de opzoekwaarde (naam van de deelnemer) niet bestaat in de opzoektabel, geven we "Niet gekwalificeerd" terug.
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$10, 2, FALSE)), "Niet gekwalificeerd", VLOOKUP(A3, $D$3:$E$10, 2, FALSE))
Tip. Als u een aangepaste tekst alleen wilt weergeven wanneer een lookup waarde is niet gevonden (#N/A fout) andere fouten negeren, gebruik dan de formule IFNA VLOOKUP in Excel 2013 en later of IF ISNA VLOOKUP in oudere versies.
IF ISERROR INDEX MATCH formule
Wanneer u een lookup uitvoert met behulp van de INDEX MATCH combinatie (of INDEX XMATCH formule in Excel 365), kunt u eventuele fouten opvangen en afhandelen met dezelfde techniek - de ISERROR functie controleert op fouten en IF geeft de opgegeven tekst weer wanneer een fout optreedt.
IF(ISERROR(INDEX ( retour_kolom , MATCH ( lookup_waarde , opzoekkolom , 0)))), " aangepaste_tekst ", INDEX ( retour_kolom , MATCH ( lookup_waarde , opzoekkolom , 0)))Stel dat de opzoektabel tijden heeft in de eerste kolom. Omdat VLOOKUP niet naar links kan kijken, gebruiken we de formule INDEX MATCH om de tijden uit kolom D te halen:
=INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))
En dan nestelt u het in de bovengenoemde generieke formule om de gevangen fouten te vervangen door een tekst naar keuze:
=IF(ISERROR(INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0)), "Niet gekwalificeerd", INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))
Opmerking. Net als bij de IF ISERROR VLOOKUP formule is het zinvoller om alleen #N/A fouten op te vangen en geen potentiële problemen met de formule zelf te verhullen. Omvat hiervoor uw INDEX MATH formule in IFNA in Excel 2013 en hoger of IF ISNA in eerdere versies.
IF ISERROR Ja/Nee-formule
In alle voorgaande voorbeelden geeft IF ISERROR het resultaat van de hoofdformule terug als het geen fout is. Het kan echter ook op een andere manier werken - iets teruggeven als er een fout is en iets anders als er geen fout is.
IF(ISERROR( formule (...)), " tekst_als_fout ", " tekst_als_geen_fout ")Stel dat u in onze voorbeelddataset niet geïnteresseerd bent in de exacte tijden, maar alleen wilt weten welke deelnemers uit groep A gekwalificeerd zijn en welke niet. Gebruik hiervoor de functie MATCH om de naam in kolom A te vergelijken met de lijst van gekwalificeerde deelnemers in kolom D, en serveer de resultaten vervolgens aan ISERROR. Als de naam niet beschikbaar is in kolom D (MATCH geeft een foutmelding), krijgt ude IF-functie om "Nee" of "Niet gekwalificeerd" weer te geven. Indien de naam voorkomt in kolom D (geen fout), retourneert u "Ja" of "Gekwalificeerd".
=IF(ISERROR(MATCH(A3, $D$3:$D$10, 0)), "No", "Yes" )
Hoe het aantal fouten te tellen
Om het aantal fouten in een bepaalde kolom te krijgen, moet u een bereik controleren, niet slechts één cel. Hiervoor "voedt" u het doelbereik met ISERROR en dwingt u de geretourneerde Booleaanse waarden om in 1's en 0's met behulp van de dubbele unaire operator (--). De functie SUM of SUMPRODUCT kan de getallen optellen en het eindresultaat leveren.
Bijvoorbeeld:
=SUM(--ISERROR(C2:C10))
Let op, dit werkt als een gewone formule alleen in Excel 365 en Excel 2021, die dynamische matrices ondersteunen. In Excel 2019 en eerder moet u op Ctrl + Shift + Enter drukken om een matrixformule te maken (typ niet handmatig accolades, dat werkt niet!):
{=SUM(--ISERROR(C2:C10))}
Als alternatief kunt u de SUMPRODUCT-functie gebruiken, die van nature arrays verwerkt, zodat de formule in alle versies kan worden voltooid met de gebruikelijke Enter-toets:
=SUMPRODUCT(--ISERROR(C2:C10))
Verschil tussen ISERROR en IFERROR in Excel
Zowel de functies ISERROR als IFERROR worden gebruikt om fouten in Excel op te vangen en af te handelen. Het verschil is als volgt:
- In zijn pure vorm test ISERROR gewoon of de waarde een fout is of niet. Het is beschikbaar in alle Excel versies.
- De IFERROR-functie is ontworpen om fouten te onderdrukken of te verhullen - wanneer een fout wordt gevonden, wordt een andere waarde geretourneerd die u opgeeft. De functie is beschikbaar in Excel 2007 en hoger.
Op het eerste gezicht lijkt IFERROR een stenografisch alternatief voor de formule IF ISERROR, maar bij nadere beschouwing valt het verschil op:
- Met IFERROR kunt u alleen value_if_error Als er geen fout is, geeft hij altijd het resultaat van de geteste waarde/formule terug.
- IF ISERROR biedt meer flexibiliteit en laat u beide situaties behandelen - wat er moet gebeuren als er een fout is en wat als er geen fout is.
Om het punt beter te illustreren, zie deze formules:
=IFERROR(A1, "Rekenfout")
=IF(ISERROR(A1), "Rekenfout", A1)
Deze twee formules zijn gelijkwaardig - beide controleren een formulegestuurde waarde in A1 en geven "Rekenfout" terug als het een fout is, anders - geven de waarde terug.
Maar wat als u een bepaalde berekening wilt uitvoeren als de waarde in A1 geen fout is? De IFERROR-functie kan dat niet. In het geval van IF ISERROR typt u gewoon de gewenste berekening in het laatste argument. Bijvoorbeeld:
=IF(ISERROR(A1), "Rekenfout", A1*2)
Zoals u ziet, kan deze langere variant van de IFERROR-formule, die vaak als verouderd wordt beschouwd, nog steeds nuttig zijn :)
Beschikbare downloads
Voorbeelden van ISERROR-formules (.xlsx-bestand)