ALS.FOUT
IFERROR in Engelstalige Excel
Geeft de uitkomst van een berekening, of een vervangende waarde die jij kiest zodra die berekening op een foutwaarde uitkomt.
Laatst bijgewerkt: 13 oktober 2026
| Rij | A | B | C | D |
|---|---|---|---|---|
| 1 | Boekstuk | Netto | Btw | Btw-percentage |
| 2 | 25-0501 | €0.00€ 0,00 | €0.00€ 0,00 | Geen grondslag=ALS.FOUT(C2 / B2, "Geen grondslag")=ALS.FOUT(C2 / B2; "Geen grondslag") |
| 3 | 25-0502 | €12,500.00€ 12.500,00 | €2,625.00€ 2.625,00 | |
| 4 | 25-0503 | €8,000.00€ 8.000,00 | €720.00€ 720,00 | |
| 5 | 25-0504 | €3,400.00€ 3.400,00 | €714.00€ 714,00 | |
| 6 | 25-0505 | €1,250.00€ 1.250,00 | €112.50€ 112,50 |
Veeg opzij om alle kolommen te zien
Resultaat: Geen grondslag
=ALS.FOUT(C2 / B2,"Geen grondslag")
=ALS.FOUT(C2 / B2;"Geen grondslag")
Wat ALS.FOUT doet en wanneer je het gebruikt
Wat het doet: het geeft de uitkomst van een berekening, of een eigen waarde als die berekening eindigt op een foutwaarde, bijvoorbeeld een eigen tekst in plaats van #DEEL/0! bij een verhouding op een rij zonder omzet.
Wanneer je het gebruikt: waar een foutwaarde een te verwachten, onschuldige uitkomst is, zoals een verhouding op een rij zonder basis of geïmporteerde tekst die soms geen getal is. Het vervangt het oudere ALS(ISFOUT(x); alternatief; x).
De twee grootste voordelen:
- Eén keer berekend: de berekening schrijf je één keer op, niet twee keer zoals in ALS(ISFOUT(x); alternatief; x).
- Eén functie: één functie vervangt het paar ALS en ISFOUT, zodat de formule korter leest.
Hoe Excel de functie berekent
Excel rekent eerst waarde uit. Komt daar geen foutwaarde uit, dan geeft ALS.FOUT de uitkomst terug en wordt waarde_indien_fout niet eens berekend. Komt er wel een foutwaarde uit, welke dan ook, dan gooit ALS.FOUT die weg en rekent waarde_indien_fout uit. Om welke fout het ging, maakt de functie niet uit.
Levert waarde een matrix op, dan controleert Excel elk element apart: één foute rij wordt vervangen, de andere rijen houden hun uitkomst.
Let op: ALS.FOUT verbergt elke foutwaarde, ook een kapot bereik of een verkeerd kolomnummer. Gebruik bij zoekopdrachten ALS.NB, dat alleen #N/B (niet gevonden) vervangt.
Denkmodel
Een receptionist die elk telefoontje dat boven niet wordt opgenomen met hetzelfde vriendelijke zinnetje afhandelt, of de beller nu verkeerd verbonden is of het gebouw in brand staat.
Begrippen op deze pagina: foutwaarde, matrix
ALS.FOUT(waarde,waarde_indien_fout)
ALS.FOUT(waarde;waarde_indien_fout)
| Argument | Soort | Betekenis |
|---|---|---|
waarde | Verplicht | De berekening die Excel probeert; zonder fout komt de uitkomst terug. |
waarde_indien_fout | Verplicht | Wat je ziet in plaats van de foutwaarde, welke fout het ook is. |
Geeft terug:waarde, of waarde_indien_fout als waarde een foutwaarde is
Formules gebruiken komma's (,) tussen de argumenten, zoals in de Engelse Excel. Formules gebruiken puntkomma's (;) tussen de argumenten, zoals in de Nederlandse Excel. Formules gebruiken puntkomma's (;) tussen de argumenten, zoals in de Nederlandse Excel; de Engelse Excel gebruikt komma's (,).
Uitgewerkte voorbeelden
Beginner
Btw-percentage per boekstuk zonder #DEEL/0!
Je herrekent het btw-percentage van verkoopboekstukken uit de XAF-auditfile door het btw-bedrag te delen door het nettobedrag. Boekstuk 25-0501 is een correctie van nul euro met 0 netto en 0 btw, dus die rij deelt 0 door 0 en toont #DEEL/0!.
Daar wil je Geen grondslag zien staan, zodat de andere percentages leesbaar blijven naast 21% en 9%.
| Rij | A | B | C | D | E |
|---|---|---|---|---|---|
| 1 | Boekstuk | Netto | Btw | Btw-percentage | |
| 2 | 25-0501 | €0.00€ 0,00 | €0.00€ 0,00 | Geen grondslag=ALS.FOUT(C2 / B2, "Geen grondslag")=ALS.FOUT(C2 / B2; "Geen grondslag") | |
| 3 | 25-0502 | €12,500.00€ 12.500,00 | €2,625.00€ 2.625,00 | ||
| 4 | 25-0503 | €8,000.00€ 8.000,00 | €720.00€ 720,00 | ||
| 5 | 25-0504 | €3,400.00€ 3.400,00 | €714.00€ 714,00 | ||
| 6 | 25-0505 | €1,250.00€ 1.250,00 | €112.50€ 112,50 | ||
| 7 |
Veeg opzij om alle kolommen te zien
Formule in D2
=ALS.FOUT(C2 / B2,"Geen grondslag")
=ALS.FOUT(C2 / B2;"Geen grondslag")
Resultaat: Geen grondslag
Stap voor stap
- Excel rekent eerst waarde uit:
C2/B2is 0 / 0. Delen door nul kan niet, dus de uitkomst is #DEEL/0!. - ALS.FOUT bekijkt de uitkomst, ziet een foutwaarde en gooit die weg.
- In plaats daarvan geeft ALS.FOUT waarde_indien_fout terug: de tekst Geen grondslag.
- In
D3is waarde 2625 / 12500 = 0,21. Dat is geen fout, dus ALS.FOUT laat 0,21 (21%) ongemoeid door en Geen grondslag komt er niet aan te pas. - De andere rijen gaan net zo: 720 / 8000 = 0,09, 714 / 3400 = 0,21 en 112,5 / 1250 = 0,09. Alleen de rij met grondslag 0 toont Geen grondslag; elke andere rij toont het echte percentage.
Let op: Stond er in B2 de tekst 1250 EUR (een bedrag dat als tekst uit de export kwam) in plaats van 0, dan gaf de deling #WAARDE! en toonde ALS.FOUT nog steeds Geen grondslag. Dat label klopt dan niet: het probleem is een bedrag als tekst, niet een boekstuk van nul euro.
Meer over dit voorbeeld: waarom het werkt
Waarom het werkt
ALS.FOUT grijpt pas in nadat de deling is geprobeerd. Een deling die lukt, komt onveranderd in de cel terecht; alleen de mislukte wordt door de tekst vervangen.
Halfgevorderd
Rekeningkoppeling met een melding voor ontbrekende rekeningen
Je koppelt grootboekrekeningen aan jaarrekeningposten met de koppeltabel van de cliënt in A:B. Een paar rekeningen uit de saldibalans staan er nog niet in. De formule staat naast elke rekening in kolom D, en bij een ontbrekende rekening moet Niet gekoppeld verschijnen, zodat je weet over welke rekeningen je de cliënt moet bevragen.
| Rij | A | B | C | D | E | F |
|---|---|---|---|---|---|---|
| 1 | Rekening | Jaarrekeningpost | Rekening | Jaarrekeningpost | ||
| 2 | 11001100 | Liquide middelen | 45004500 | Niet gekoppeld=ALS.FOUT(VERT.ZOEKEN(D2, $A$2:$B$6, 2, ONWAAR), "Niet gekoppeld")=ALS.FOUT(VERT.ZOEKEN(D2; $A$2:$B$6; 2; ONWAAR); "Niet gekoppeld") | ||
| 3 | 13001300 | Debiteuren | 80008000 | |||
| 4 | 16001600 | Crediteuren | 13001300 | |||
| 5 | 40004000 | Personeelskosten | ||||
| 6 | 80008000 | Omzet | ||||
| 7 |
Veeg opzij om alle kolommen te zien
Formule in E2
=ALS.FOUT(VERT.ZOEKEN(D2,$A$2:$B$6, 2, ONWAAR), "Niet gekoppeld")
=ALS.FOUT(VERT.ZOEKEN(D2;$A$2:$B$6; 2; ONWAAR); "Niet gekoppeld")
Resultaat: Niet gekoppeld
Stap voor stap
- Excel rekent eerst de binnenste VERT.ZOEKEN uit. Die zoekt
D2, rekening 4500, in de eerste kolom van$A$2:$B$6; ONWAAR betekent dat alleen een exacte overeenkomst telt. - VERT.ZOEKEN loopt 1100, 1300, 1600, 4000 en 8000 langs: geen ervan is 4500. De uitkomst is #N/B.
- ALS.FOUT krijgt #N/B binnen, herkent een foutwaarde en geeft waarde_indien_fout terug: Niet gekoppeld. Zonder ALS.FOUT stond er in
E2#N/B. - In
E3staat rekening 8000. VERT.ZOEKEN vindt die in de vijfde rij van de tabel en geeft de tweede kolom van die rij terug,B6: Omzet. Geen fout, dus ALS.FOUT geeft de post door. E4vindt 1300 in de tweede rij en geeftB3: Debiteuren. Door de dollartekens blijft de tabel in elke kopieA2:B6; zonder die tekens zouE4inA4:B8zoeken en rekening 1300 mislopen.
Let op: Typ je per ongeluk een 3 in plaats van de 2, dan geeft VERT.ZOEKEN op elke rij #VERW!, want de tabel heeft maar twee kolommen. ALS.FOUT maakt daar overal Niet gekoppeld van, en je gaat de cliënt vragen stellen over rekeningen die al gekoppeld zijn.
Meer over dit voorbeeld: waarom het werkt, 1 variant
Waarom het werkt
Bij een ontbrekende rekening geeft VERT.ZOEKEN #N/B, en die fout kan ALS.FOUT opvangen, dus je ziet alleen de melding. Bij een gekoppelde rekening komt er een jaarrekeningpost uit, en daar blijft ALS.FOUT van af.
Varianten
=ALS.NB(VERT.ZOEKEN(D2,$A$2:$B$6, 2, ONWAAR), "Niet gekoppeld")
=ALS.NB(VERT.ZOEKEN(D2;$A$2:$B$6; 2; ONWAAR); "Niet gekoppeld")
ALS.NB vervangt alleen #N/B, dus bij een verkeerd kolomnummer zie je nog steeds #VERW!. Bij elke zoekopdracht is dit de veiligere keuze.
Gevorderd
Gemiddeld bevestigingspercentage van debiteuren, met de debiteur zonder saldo overgeslagen
Voor de opvolging van debiteurenbevestigingen wil je in één cel zien welk deel van het grootboeksaldo gemiddeld is bevestigd. Klant D1003 heeft een grootboeksaldo van 0 en geen bevestiging, dus de verhouding is #DEEL/0!. Het gemiddelde moet over de vier debiteuren met een saldo gaan, zonder dat een nep-0% het omlaag trekt.
| Rij | A | B | C | D | E | F |
|---|---|---|---|---|---|---|
| 1 | Relatie | Saldo grootboek | Bevestigd | Gemiddeld bevestigd | ||
| 2 | D1001 | €48,000.00€ 48.000,00 | €45,600.00€ 45.600,00 | 91.25%91,25%=GEMIDDELDE(ALS.FOUT(C2:C6 / B2:B6, ""))=GEMIDDELDE(ALS.FOUT(C2:C6 / B2:B6; "")) | ||
| 3 | D1002 | €36,000.00€ 36.000,00 | €36,000.00€ 36.000,00 | |||
| 4 | D1003 | €0.00€ 0,00 | €0.00€ 0,00 | |||
| 5 | D1004 | €25,000.00€ 25.000,00 | €20,000.00€ 20.000,00 | |||
| 6 | D1005 | €18,000.00€ 18.000,00 | €16,200.00€ 16.200,00 | |||
| 7 |
Veeg opzij om alle kolommen te zien
Formule in E2
=GEMIDDELDE(ALS.FOUT(C2:C6 / B2:B6,""))
=GEMIDDELDE(ALS.FOUT(C2:C6 / B2:B6;""))
Resultaat: 91.25%91,25%
Stap voor stap
- Excel begint binnenin.
C2:C6/B2:B6deelt rij voor rij: 45600 / 48000 = 0,95, 36000 / 36000 = 1, 0 / 0 = #DEEL/0!, 20000 / 25000 = 0,8 en 16200 / 18000 = 0,9. - ALS.FOUT bekijkt de vijf elementen een voor een. Alleen het derde is een fout, dus alleen dat wordt lege tekst: 0,95, 1, "", 0,8, 0,9.
- GEMIDDELDE slaat tekst in een matrix over, telt dus vier getallen op en deelt door vier: (0,95 + 1 + 0,8 + 0,9) / 4 = 3,65 / 4 = 0,9125, weergegeven als 91,25%.
- Kies je 0 als waarde_indien_fout, dan krijgt GEMIDDELDE vijf getallen en komt uit op 3,65 / 5 = 0,73, oftewel 73%. Er verschijnt geen fout; het cijfer is alleen ongemerkt lager dan de werkelijkheid en wekt de indruk van een bevestigingsprobleem dat er niet is.
- Krijgt D1003 later een grootboeksaldo van 20000 en een bevestigd bedrag van 19000, dan is de verhouding 0,95 en wordt het resultaat (3,65 + 0,95) / 5 = 0,92, oftewel 92%.
Let op: Staat er in een saldocel de tekst n.v.t., dan geeft de deling #WAARDE! en haalt ALS.FOUT ook die debiteur zonder enig signaal uit het gemiddelde. Je denkt dat je vijf debiteuren middelt, maar het zijn er vier.
Meer over dit voorbeeld: waarom het werkt, nog 2 valkuilen, 2 varianten
Waarom het werkt
ALS.FOUT werkt op een matrix element voor element, dus de ene rij die misgaat verdwijnt zonder dat de rest wordt aangeraakt. Lege tekst is de juiste vervanging, want GEMIDDELDE slaat tekst in een matrix over, terwijl een 0 zou meetellen als een echte debiteur die niets heeft bevestigd.
Meer om op te letten
- In Excel 2019 en eerder moeten GEMIDDELDE(ALS.FOUT(C2:C6 / B2:B6; "")) en ook de variant met ALS hieronder worden afgesloten met Ctrl+Shift+Enter, anders wordt de deling niet per rij uitgerekend. Excel 2021 en Microsoft 365 hebben geen aparte toetscombinatie nodig.
- Dit is een gemiddelde van percentages, dus een kleine debiteur weegt even zwaar als een grote. In bedragen is 117800 van 127000 bevestigd, ongeveer 92,8%, en dat is het antwoord op een andere vraag.
Varianten
=GEMIDDELDE(ALS(B2:B6 <> 0,C2:C6 / B2:B6, ""))
=GEMIDDELDE(ALS(B2:B6 <> 0;C2:C6 / B2:B6; ""))
Toetst de oorzaak (geen saldo) in plaats van de fout af te vangen. Dit heeft de voorkeur: een tekstwaarde in de gegevens blijft dan zichtbaar als #WAARDE! en verdwijnt niet.
=SOM(C2:C6) / SOM(B2:B6)
=SOM(C2:C6) / SOM(B2:B6)
Het gewogen bevestigingspercentage over alle bedragen, ongeveer 92,8%. Kies deze als je wilt weten hoeveel van het saldo gedekt is, niet hoe een doorsnee debiteur reageerde.
ExpertExcel 2021 of nieuwer (Dit voorbeeld vereist Excel 2021 of nieuwer)
Alleen #DEEL/0! opvangen, foute gegevens laten zien
Bij de cijferbeoordeling van de saldibalans bereken je per kostenrekening de verandering ten opzichte van vorig jaar. Een rekening die dit jaar voor het eerst wordt gebruikt, had vorig jaar 0 en moet Nieuw tonen. Eén rij komt uit de export van de cliënt met de tekst n.v.t. in plaats van een getal. Die rij moet zichtbaar fout blijven, zodat iemand de bron herstelt; hij mag niet ook het label Nieuw krijgen.
| Rij | A | B | C | D | E |
|---|---|---|---|---|---|
| 1 | Rekening | Vorig jaar | Dit jaar | Verandering | |
| 2 | Advieskosten | €0.00€ 0,00 | €8,400.00€ 8.400,00 | Nieuw=LET( groei, C2 / B2 - 1, ALS.FOUT(groei, ALS(TYPE.FOUT(groei) = 2, "Nieuw", groei)) )=LET( groei; C2 / B2 - 1; ALS.FOUT(groei; ALS(TYPE.FOUT(groei) = 2; "Nieuw"; groei)) ) | |
| 3 | Huur | €12,000.00€ 12.000,00 | €13,800.00€ 13.800,00 | ||
| 4 | Reiskosten | n.v.t. | €5,200.00€ 5.200,00 | ||
| 5 | Lonen | €9,500.00€ 9.500,00 | €7,600.00€ 7.600,00 | ||
| 6 | Verzekeringen | €4,000.00€ 4.000,00 | €4,000.00€ 4.000,00 | ||
| 7 |
Veeg opzij om alle kolommen te zien
Formule in D2
=LET( groei,C2 / B2 - 1, ALS.FOUT(groei, ALS(TYPE.FOUT(groei) = 2, "Nieuw", groei)) )
=LET( groei;C2 / B2 - 1; ALS.FOUT(groei; ALS(TYPE.FOUT(groei) = 2; "Nieuw"; groei)) )
Resultaat: Nieuw
Stap voor stap
- LET rekent groei één keer uit:
C2/B2- 1 is 8400 / 0 - 1. De deling loopt vast op #DEEL/0!, en als je 1 aftrekt van een fout, blijft het een fout. - ALS.FOUT ziet een fout in groei en gaat naar waarde_indien_fout. Daar staat geen vaste tekst, maar een tweede beslissing.
- TYPE.FOUT(groei) geeft het codenummer van de fout. #DEEL/0! heeft code 2, dus 2 = 2 is WAAR en ALS geeft Nieuw.
- In
D3: 13800 / 12000 - 1 = 1,15 - 1 = 0,15. Geen fout, dus ALS.FOUT geeft 15% en aan de tweede beslissing komt Excel niet toe. D4deelt 5200 door de tekstn.v.t.en krijgt #WAARDE!, code 3. 3 = 2 is ONWAAR, dus ALS geeft groei zelf terug: de fout #WAARDE!. De kapotte rij blijft kapot.D5geeft 7600 / 9500 - 1 = 0,8 - 1 = -0,2, oftewel -20%, enD6geeft 4000 / 4000 - 1 = 0, oftewel 0%. Met een kale ALS.FOUT(groei; "Nieuw") had de rekening Reiskosten ook het label Nieuw gekregen.
Let op: De omgekeerde fout is ALS.FOUT(C2 / B2 - 1; 0). Dan tonen de nieuwe rekening en de kapotte export allebei 0%, en dat lees je als ongewijzigd: precies de uitkomst waar niemand vragen over stelt bij een cijferbeoordeling.
Meer over dit voorbeeld: waarom het werkt, nog 1 valkuil, 1 variant
Waarom het werkt
ALS.FOUT bepaalt óf er een fout is, TYPE.FOUT bepaalt wélke: 2 voor #DEEL/0!, 3 voor #WAARDE!, 7 voor #N/B. Bij elke andere code geef je groei terug, en daarmee de oorspronkelijke fout, zodat alleen het verwachte geval een label krijgt. LET houdt de deling op één plek: Excel rekent hem één keer uit, en bij een aanpassing kunnen twee kopieën niet uit de pas gaan lopen.
Is er één bekende oorzaak die je vooraf kunt toetsen, gebruik deze opbouw dan niet: ALS(B2 = 0; "Nieuw"; C2 / B2 - 1) is korter en doet hier hetzelfde. TYPE.FOUT bewijst zijn waarde als de fout uit een langere keten komt die je niet vooraf kunt toetsen; bij zoekopdrachten volstaat ALS.NB.
Meer om op te letten
- TYPE.FOUT op een waarde die geen fout is, geeft #N/B. Daarom staat de functie binnen waarde_indien_fout, want daar is groei gegarandeerd een fout.
Varianten
=ALS(B2 = 0,"Nieuw", C2 / B2 - 1)
=ALS(B2 = 0;"Nieuw"; C2 / B2 - 1)
Toetst de oorzaak direct. De tekst n.v.t. is geen 0, dus D4 blijft #WAARDE! tonen. Kies dit als de enige te verwachten fout een nul is die je kunt zien aankomen.
Veelgemaakte fouten
| Symptoom | Oorzaak | Oplossing |
|---|---|---|
| Niet gevonden op elke rij van een zoekopdracht | Een zoekopdracht in ALS.FOUT toont op elke rij Niet gevonden, nadat iemand het kolomnummer heeft aangepast of een kolom heeft verwijderd. | In werkelijkheid was het #VERW!, en ALS.FOUT heeft dat verstopt. Stap voor deze zoekopdrachten over op ALS.NB. |
| Het gemiddelde van verhoudingen zakt | Een gemiddelde van verhoudingen zakt zodra je #DEEL/0! door 0 hebt vervangen. | Een 0 is een waarde en telt mee in het gemiddelde. Geef liever "" terug; GEMIDDELDE slaat tekst over. |
| Het totaal wordt kleiner zonder foutmelding | Een heel model staat in één ALS.FOUT(...; 0), en nadat er een werkblad is verwijderd, is het totaal ongemerkt kleiner geworden. | Zet alleen de stap die terecht kan mislukken in ALS.FOUT. Een foutwaarde ergens anders is een melding die je moet zien. |
Gebruikt in combinaties
- De klant vinden via een bankomschrijvingKnip het factuurnummer uit een bankomschrijving met TEKST.NA en TEKST.VOOR en zoek de klant daarna op in de debiteurenlijst met X.ZOEKEN.Excel 2024 of nieuwer (Deze combinatie vereist Excel 2024 of nieuwer)