Foutwaarden
Een foutwaarde is een resultaat dat met # begint en aangeeft wat er misging, zoals #N/B of #DEEL/0!. Ze plant zich voort door formules, en wie ze verbergt, kan een gat in het controlebewijs verbergen.
Laatst bijgewerkt: 14 oktober 2026
Legt uit: foutwaarde
Als een formule geen resultaat kan geven, laat Excel de cel niet leeg en gokt het ook niet: het geeft een foutwaarde, een bijzonder resultaat dat met # begint en het probleem benoemt. Elk type heeft een eigen oorzaak, dus de naam is de eerste aanwijzing.
Als controleur kom je foutwaarden tegen in elke werkmap van een cliënt:
- in opzoekacties die niets vonden
- in verhoudingen met een lege noemer
- in totalen die niet meer werken
Wat je ermee doet telt even zwaar als wat ze zeggen: een foutwaarde die je oplost, telt of rapporteert is informatie, een foutwaarde die je het zwijgen oplegt kan een ontbrekende populatie zijn.
Wat een foutwaarde is
Een foutwaarde is een resultaat, geen tekst en geen melding in een dialoogvenster. De cel bevat een echte waarde van het type fout, zodat andere formules haar kunnen testen (ISFOUT, ISNB) en zodat ze zich gedraagt zoals een tekst nooit zou doen: ze loopt door berekeningen heen.
Hieronder staan de negen foutwaarden die je het vaakst tegenkomt; de huidige Excel kent er nog een paar, zoals #GEGEVENS_OPHALEN en een fout voor gegevenstypen. Ze beginnen allemaal met # en de meeste eindigen op ! of ?.
De namen zijn vertaald. Engels Excel toont #N/A en #DIV/0!, Nederlands Excel toont #N/B en #DEEL/0! voor dezelfde fouten. In een formule typ je de foutnaam niet: je test erop met een functie als ISNB.
Twee dingen lijken op een foutwaarde maar zijn het niet: een cel vol ##### betekent meestal dat de kolom te smal is voor het getal (of, bij een datum of tijd, dat de waarde negatief is), en een groen driehoekje in de hoek is een hint, geen foutwaarde.
De negen meest voorkomende foutwaarden, hun oorzaak en oplossing
Het type foutwaarde vertelt waar je moet zoeken. Ga uit van de naam: #N/B wijst op een opzoekactie, #DEEL/0! op een deler, #VERW! op iets dat is verwijderd. Los de oorzaak op in de cel die de fout als eerste toont, want de cellen die ervan afhangen tonen dezelfde fout zonder zelf fout te zijn.
| Foutwaarde | Betekent | Gebruikelijke oorzaak | Oplossing |
|---|---|---|---|
| #N/B | Een waarde is niet beschikbaar. | Een opzoekfunctie vond de zoekwaarde niet: een typefout, een spatie aan het eind, een getal dat als tekst is opgeslagen of een zoekbereik dat te kort is. NB() geeft hem met opzet. | Vergelijk de zoekwaarde teken voor teken met de lijst. Gebruik ALS.NB alleen als niet gevonden een verwacht antwoord is. |
| #WAARDE! | Een waarde heeft het verkeerde type. | Rekenen met tekst, zoals 100 + "n.v.t.", of een cel die leeg lijkt maar een spatie bevat. Datums en bedragen die als tekst zijn geïmporteerd. | Zoek de tekstcel met ISGETAL, maak hem schoon met SPATIES.WISSEN en zet hem om met NUMERIEKE.WAARDE. |
| #VERW! | Een verwijzing is niet meer geldig. | Een rij, kolom of blad waar de formule naar verwees is verwijderd, of een gekopieerde formule wijst buiten het werkblad. INDEX met een rijnummer buiten het bereik geeft hem ook. | Maak de verwijdering meteen ongedaan met Ctrl+Z. Lukt dat niet meer, dan is de oorspronkelijke verwijzing weg en moet je haar opnieuw opbouwen. |
| #DEEL/0! | Een deling door nul. | De deler is 0 of een lege cel, bijvoorbeeld een marge op een project zonder omzet. | Test eerst de deler: ALS(B2=0; ...; A2/B2). Vraag je af waarom hij nul is voordat je bepaalt wat je toont. |
| #NAAM? | Excel herkent een naam niet. | Een functienaam met een typefout, een functie die jouw versie niet heeft (X.ZOEKEN in Excel 2016), tekst zonder aanhalingstekens of een benoemd bereik dat niet bestaat. | Kijk bij het bewerken van de cel naar het deel dat Excel onderstreept, en controleer de spelling en de versie. |
| #GETAL! | Een getal is hier niet geldig. | Een onmogelijk argument, zoals de wortel uit een negatief getal, een resultaat dat te groot is voor Excel of een rentefunctie die geen oplossing vindt. | Controleer de argumenten tegen wat de functie toestaat. Geef bij rentefuncties een startschatting op. |
| #LEEG! | Twee bereiken snijden elkaar niet. | Er is een spatie getypt waar een scheidingsteken hoort: =SOM(A1:A5 C1:C5). Een spatie tussen twee bereiken vraagt om hun doorsnede, en die is er niet. | Vervang de spatie door een scheidingsteken (puntkomma in Nederlands Excel, komma in Engels Excel) of een dubbele punt. |
| #OVERLOPEN! | Het overloopbereik is geblokkeerd. | Een formule die meerdere waarden geeft, vindt een cel met inhoud, een samengevoegde cel of een tabel in de weg. | Wis of verplaats wat in de weg zit. Excel omlijnt het geblokkeerde bereik als je de cel selecteert. |
| #BEREKENEN! | Een formule met een dynamische matrix kan de berekening niet afmaken. | Meestal een FILTER die geen rijen vindt en geen tekst voor dat geval heeft, zodat het resultaat een lege matrix zou zijn. | Geef FILTER zijn derde argument (als_leeg), een tekst voor het lege resultaat, en bepaal of het ontbreken van rijen zelf een probleem is. |
Hoe fouten zich verspreiden
Een foutwaarde is besmettelijk. Een formule die een cel met een fout als invoer gebruikt, geeft dezelfde fout, en elke formule die op die formule voortbouwt ook.
Een enkele #N/B in een kolom van 500 bedragen laat SOM van de kolom #N/B geven, en elk subtotaal, elke verhouding en elke controle op dat totaal volgt. Dat is bedoeld: een totaal ziet er nooit goed uit terwijl een onderdeel onbekend is.
Een paar functies stoppen de verspreiding:
- AANTAL slaat foutcellen in een bereik over (AANTALARG telt ze als gevuld)
- ALS rekent alleen de gekozen tak uit, zodat een fout in de andere tak buiten beeld blijft
- ALS.FOUT, ALS.NB en AGGREGAAT bestaan om met fouten om te gaan
De eerste fout die je ziet is meestal niet de eerste fout die optrad: volg haar terug door de cellen waarvan ze afhangt.
=SOM(B2:B100)
=SOM(B2:B100)
Als een cel in B2:B100 #N/B bevat, is het totaal ook #N/B, en niet de som van de andere cellen.
=AANTAL(B2:B100)
=AANTAL(B2:B100)
Telt alleen de getallen en slaat foutcellen over, dus dit aantal is lager dan het aantal rijen als er fouten zijn.
Fouten opvangen
Let op: ALS.FOUT(formule; 0) maakt van onbekend een nul of een lege tekst: de kolom ziet er schoon uit, het totaal klopt en niemand ziet dat rijen nooit zijn gekoppeld. Bij een controle is dat een volledigheidsprobleem, want de bedragen die je hebt getest zijn niet de bedragen in het grootboek.
Welke functie je kiest, bepaalt welke fouten je accepteert. ALS.FOUT vervangt elk type foutwaarde door je vervangende waarde, ook #VERW! van een verwijderde kolom en #NAAM? door een typefout, en dat zijn fouten in de werkmap en geen antwoorden. ALS.NB vervangt alleen #N/B, de ene fout die een opzoekactie geeft als de waarde er niet is.
Daarom is ALS.NB de veiliger keuze voor een opzoekactie: een ontbrekende waarde krijgt je melding, een kapotte formule blijft zichtbaar.
Wil je testen in plaats van vervangen, gebruik dan de IS-functies uit de tabel, die WAAR of ONWAAR geven. Om een bereik met fouten op te tellen, slaat AGGREGAAT met functienummer 9 (SOM) en optie 6 (foutwaarden negeren) ze over. AGGREGAAT leest het bereik zoals het is, dus de functie slaat ook cellen over die je misschien niet wilt missen: zie de voorbeelden en de veelgemaakte fouten.
| Functie | Reageert op | Gebruik ervoor |
|---|---|---|
ALS.FOUT | Elk type foutwaarde | Een vervangende waarde voor een formule waarvan je de fouten begrijpt, zoals een deling die je al hebt getest. |
ALS.NB | Alleen #N/B | Een opzoekactie waarbij niet gevonden een verwacht antwoord is. |
ISFOUT | Elk type foutwaarde, geeft WAAR of ONWAAR | Elke fout in een kolom markeren of tellen. |
ISNB | Alleen #N/B, geeft WAAR of ONWAAR | De waarden markeren of tellen die een opzoekactie niet vond. |
ISFOUT2 | Elke fout behalve #N/B | De fouten vinden die iets anders zijn dan niet gevonden. |
AGGREGAAT | Met optie 6, foutwaarden in het bereik | Een som, gemiddelde, maximum of iets dergelijks over een bereik met fouten. |
=ALS.NB(X.ZOEKEN(E2,A2:A100, B2:B100), "Niet gevonden")
=ALS.NB(X.ZOEKEN(E2;A2:A100; B2:B100); "Niet gevonden")
Vervangt alleen #N/B. Een #VERW! of #WAARDE! van de opzoekactie blijft zichtbaar.
=ALS(ISNB(VERGELIJKEN(E2,A2:A100, 0)), "Ontbreekt", "Aanwezig")
=ALS(ISNB(VERGELIJKEN(E2;A2:A100; 0)); "Ontbreekt"; "Aanwezig")
Test op #N/B zonder een waarde op te halen. Handig voor een volledigheidscontrole van de ene lijst tegen de andere.
=AGGREGAAT(9,6, B2:B100)
=AGGREGAAT(9;6; B2:B100)
Telt B2:B100 op en slaat de foutcellen over. Het resultaat is de som van minder rijen dan het bereik heeft.
Fouten in een werkmap vinden
In een groot werkblad scrol je niet naar fouten. Voor een snelle blik:
- druk op
F5en kies Speciaal - vink Formules aan en daarbinnen alleen Fouten: Excel selecteert elke formulecel die een fout toont
- herhaal de stap onder Constanten: een geplakte waarde die een fout is, is een constante en geen formule
Om te tellen gebruik je AANTAL.ALS met de fout als criterium, of SOMPRODUCT met ISFOUT als je alle typen tegelijk wilt.
Het criterium in AANTAL.ALS wordt gelezen als een getypte invoer, dus gebruik de foutnaam die jouw Excel toont en test de formule op een cel waarvan je weet dat hij die fout bevat. Voorwaardelijke opmaak met de formule =ISFOUT(A2) kleurt elke foutcel rood, zodat de fouten zichtbaar blijven terwijl je werkt.
=AANTAL.ALS(B2:B100,"#N/B")
=AANTAL.ALS(B2:B100;"#N/B")
Telt de cellen in B2:B100 die #N/B bevatten. Het criterium gebruikt de foutnaam van de taal van jouw Excel.
=SOMPRODUCT(--ISFOUT(B2:B100))
=SOMPRODUCT(--ISFOUT(B2:B100))
Telt elke fout in B2:B100, van welk type ook. ISFOUT geeft per cel WAAR of ONWAAR en -- maakt daar 1 of 0 van.
=SOMPRODUCT(--ISFOUT2(B2:B100))
=SOMPRODUCT(--ISFOUT2(B2:B100))
Telt elke fout behalve #N/B. Vergelijk het met de telling hierboven om te zien hoeveel er iets anders zijn dan niet gevonden.
Waarom fouten verbergen riskant is voor een controleur
Wat dit in de praktijk betekent:
- zie in een werkmap die je van de cliënt krijgt ALS.FOUT om alles heen als reden om beter te kijken: haal de ALS.FOUT weg en tel wat eruit komt
- gebruik in je eigen werkmappen ALS.NB met een zichtbare melding als
Niet gevonden, zodat je de rijen kunt filteren en tellen, en houd een controlecel bij die de fouten telt met SOMPRODUCT - noteer hoeveel fouten het er waren en wat je ermee hebt gedaan, en sluit het totaal aan op het grootboek
Uitgewerkte voorbeelden
Voorbeeld1 van 4Beginner
De facturen tellen die de crediteurenopzoeking niet vond
Veldhuis Installatie BV heeft elke inkoopfactuur met een opzoekactie aan een crediteurennummer gekoppeld en stuurde je het resultaat als waarden. Bij sommige facturen staat een fout in plaats van een crediteurennummer. Voordat je het inkoopgrootboek gaat testen, wil je weten hoeveel facturen niet zijn gekoppeld en hoeveel fouten van een andere soort zijn.
| Rij | A | B | C | D | E |
|---|---|---|---|---|---|
| 1 | Factuurnr. | Crediteurnr. | Niet gekoppeld | ||
| 2 | 25-1101 | C2001 | 33=AANTAL.ALS(B2:B9, "#N/B")=AANTAL.ALS(B2:B9; "#N/B") | ||
| 3 | 25-1102 | #N/B | |||
| 4 | 25-1103 | C2003 | |||
| 5 | 25-1104 | #N/B | |||
| 6 | 25-1105 | C2002 | |||
| 7 | 25-1106 | #WAARDE! | |||
| 8 | 25-1107 | #N/B | |||
| 9 | 25-1108 | C2004 | |||
| 10 |
Veeg opzij om alle kolommen te zien
Formule in D2
=AANTAL.ALS(B2:B9,"#N/B")
=AANTAL.ALS(B2:B9;"#N/B")
Resultaat: 33
Stap voor stap
- Het criterium is de foutwaarde #N/B (in Engels Excel #N/A). AANTAL.ALS vergelijkt elke cel van B2:B9 ermee, en een foutcel voldoet als het dezelfde fout is.
- B2 (C2001): een crediteurennummer, nee. B3 (#N/B): ja. B4 (C2003): nee. B5 (#N/B): ja. B6 (C2002): nee.
- B7 bevat #WAARDE!. Dat is een fout, maar een andere, dus ze voldoet niet: nee. B8 (#N/B): ja. B9 (C2004): nee.
- Drie cellen voldoen (B3, B5 en B8), dus het resultaat is 3: drie facturen hebben geen crediteurennummer omdat de opzoekactie ze niet vond.
- De #WAARDE! in B7 telt niet mee. Dat is een ander probleem, en de eerste variant hieronder telt alle fouten: 4. Het verschil van 1 is de cel die je apart onderzoekt.
Let op: Een telling van 3 zegt hoeveel facturen niet zijn gekoppeld, niet of ze ertoe doen. Haal de bedragen van die drie facturen op voordat je beslist hoeveel werk ze zijn.
Meer over dit voorbeeld: waarom het werkt, 3 varianten
Waarom het werkt
Elk type fout is een andere waarde, dus met een criterium pik je een type eruit. AANTAL.ALS telt de cellen die gelijk zijn aan het criterium, en de fout is gelijk aan zichzelf. Tellen per type geeft je de omvang van elk probleem, wat één telling van alle fouten niet kan.
Varianten
=SOMPRODUCT(--ISFOUT(B2:B9))
=SOMPRODUCT(--ISFOUT(B2:B9))
Telt elke fout, van welk type ook: 4. De formule hangt niet af van de taal van jouw Excel.
=SOMPRODUCT(--ISNB(B2:B9))
=SOMPRODUCT(--ISNB(B2:B9))
Telt alleen #N/B, zoals de hoofdformule: 3. Kies deze variant als het bestand in verschillende Excel-talen wordt geopend.
=SOMPRODUCT(--ISFOUT2(B2:B9))
=SOMPRODUCT(--ISFOUT2(B2:B9))
Telt elke fout behalve #N/B: 1. Dit zijn de fouten die iets anders zijn dan niet gevonden.
Voorbeeld2 van 4Halfgevorderd
De marge per project tonen zonder een deelfout te verbergen
Veldhuis Installatie BV neemt de omzet per installatieproject pas bij oplevering. Je herberekent de brutomarge per project uit de projectenlijst. Project P-2501 heeft kosten maar nog geen omzet, dus de marge is niet te berekenen, en het werkblad moet dat in woorden zeggen in plaats van #DEEL/0! of een misleidende 0% te tonen.
| Rij | A | B | C | D | E |
|---|---|---|---|---|---|
| 1 | Project | Omzet | Kosten | ||
| 2 | P-2501 | €0.00€ 0,00 | €1,840.00€ 1.840,00 | Geen omzet=ALS(B2=0, "Geen omzet", (B2-C2)/B2)=ALS(B2=0; "Geen omzet"; (B2-C2)/B2) | |
| 3 | P-2502 | €40,000.00€ 40.000,00 | €34,000.00€ 34.000,00 | ||
| 4 | P-2503 | €62,500.00€ 62.500,00 | €55,000.00€ 55.000,00 | ||
| 5 | P-2504 | €28,000.00€ 28.000,00 | €29,400.00€ 29.400,00 | ||
| 6 |
Veeg opzij om alle kolommen te zien
Formule in D2
=ALS(B2=0,"Geen omzet", (B2-C2)/B2)
=ALS(B2=0;"Geen omzet"; (B2-C2)/B2)
Resultaat: Geen omzet
Stap voor stap
- B2 is 0, dus de test B2=0 is WAAR. ALS kiest de tekst Geen omzet en rekent de andere tak niet uit, zodat de deling door nul niet plaatsvindt.
- Zonder de test is (B2-C2)/B2 gelijk aan (0 - 1840) / 0, een deling door nul, en de cel zou #DEEL/0! tonen.
- Gekopieerd naar D3 is B3 gelijk aan 40000, dus de test is ONWAAR: (40000 - 34000) / 40000 = 6000 / 40000 = 0,15, een marge van 15%.
- In D4: (62500 - 55000) / 62500 = 7500 / 62500 = 0,12, dus 12%. In D5: (28000 - 29400) / 28000 = -1400 / 28000 = -0,05, een verlies van 5%.
- Als een omzetcel tekst bevat, zoals n.v.t., is B2=0 ONWAAR, de berekening loopt en geeft #WAARDE!. Die fout blijft zichtbaar, en dat is juist: de gegevens zijn fout, niet alleen leeg.
Let op: Het resultaat Geen omzet is tekst. Een kolom die percentages en deze tekst combineert, kun je niet zinvol optellen, en GEMIDDELDE slaat de tekst over. Toon geen 0% in plaats daarvan: dat leest als een project dat precies break-even draait.
Meer over dit voorbeeld: waarom het werkt, 2 varianten
Waarom het werkt
De test benoemt de ene oorzaak die je verwacht, een omzet van nul, en beantwoordt die met een melding. Elk ander probleem geeft nog steeds zijn eigen fout. Een ALS.FOUT rond dezelfde deling zou het verwachte geval en alle onverwachte op dezelfde manier behandelen.
Varianten
=ALS.FOUT((B2-C2)/B2,0)
=ALS.FOUT((B2-C2)/B2;0)
Hier niet aan te raden: het resultaat is 0, wat leest als een marge van 0%. Een project zonder omzet en een project dat precies break-even draait zien er hetzelfde uit.
=ALS(B2=0,NB(), (B2-C2)/B2)
=ALS(B2=0;NB(); (B2-C2)/B2)
Geeft met opzet #N/B, zodat grafieken het punt overslaan en totalen niet stilletjes meetellen. Gebruik dit als de kolom doorrekent in andere formules.
Voorbeeld3 van 4Gevorderd
Een rekening koppelen en een kapotte koppeling zichtbaar houden
Om de rekeningen van Veldhuis Installatie BV aan jaarrekeningposten te koppelen, gebruik je de koppeltabel van de cliënt. Een rekening die niet in de tabel staat, moet Onbekende rekening tonen, zodat je haar kunt opvolgen. Maar de tabel zelf kan een kapotte verwijzing bevatten, en die mag niet achter dezelfde melding verdwijnen. In E1 typ je de rekening die je wilt koppelen.
| Rij | A | B | C | D | E | F |
|---|---|---|---|---|---|---|
| 1 | Rekening | Jaarrekeningpost | Te koppelen rekening | 49994999 | ||
| 2 | 11001100 | Liquide middelen | Jaarrekeningpost | Onbekende rekening=ALS.NB(X.ZOEKEN(E1, A2:A6, B2:B6), "Onbekende rekening")=ALS.NB(X.ZOEKEN(E1; A2:A6; B2:B6); "Onbekende rekening") | ||
| 3 | 13001300 | Debiteuren | ||||
| 4 | 40004000 | Personeelskosten | ||||
| 5 | 45004500 | #VERW! | ||||
| 6 | 80008000 | Omzet | ||||
| 7 |
Veeg opzij om alle kolommen te zien
Formule in E2
=ALS.NB(X.ZOEKEN(E1,A2:A6, B2:B6), "Onbekende rekening")
=ALS.NB(X.ZOEKEN(E1;A2:A6; B2:B6); "Onbekende rekening")
Resultaat: Onbekende rekening
Stap voor stap
- In E1 staat 4999. X.ZOEKEN zoekt 4999 in A2:A6: 1100, 1300, 4000, 4500, 8000. Geen enkele is gelijk, dus X.ZOEKEN geeft #N/B.
- ALS.NB krijgt #N/B van zijn eerste argument en geeft zijn tweede argument: Onbekende rekening.
- Typ 4000 in E1: X.ZOEKEN vindt hem als derde item en geeft het derde item van B2:B6, Personeelskosten. Er is geen fout, dus ALS.NB laat de waarde door.
- Typ 4500 in E1: X.ZOEKEN vindt het vierde item en geeft het vierde item van B2:B6, de cel met #VERW!. Dat is geen #N/B, dus ALS.NB laat hem door en E2 toont #VERW!.
- Met ALS.FOUT in plaats van ALS.NB zou 4500 ook Onbekende rekening tonen. Je zou zoeken naar een rekening die in de tabel ontbreekt, terwijl de rekening er wel in staat en de tabel beschadigd is.
Let op: Het resultaat Onbekende rekening is tekst. Som je een kolom gekoppelde bedragen met SOM.ALS op de jaarrekeningpost, dan vallen rijen met die tekst uit elke post, dus controleer of het totaal van alle posten nog gelijk is aan het grootboektotaal.
Meer over dit voorbeeld: waarom het werkt, 2 varianten
Waarom het werkt
De twee situaties geven twee verschillende fouten: een ontbrekende rekening geeft #N/B, een beschadigde koppeling geeft #VERW!. ALS.NB beantwoordt de eerste en laat de tweede door, zodat elk probleem terechtkomt bij wie het moet oplossen.
Varianten
=X.ZOEKEN(E1,A2:A6, B2:B6, "Onbekende rekening")
=X.ZOEKEN(E1;A2:A6; B2:B6; "Onbekende rekening")
Hetzelfde gedrag zonder ALS.NB: het vierde argument van X.ZOEKEN wordt alleen gebruikt als de waarde niet is gevonden. Het resultaat voor 4999 is Onbekende rekening.
=ALS.FOUT(X.ZOEKEN(E1,A2:A6, B2:B6), "Onbekende rekening")
=ALS.FOUT(X.ZOEKEN(E1;A2:A6; B2:B6); "Onbekende rekening")
Niet aan te raden: voor 4500 geeft hij ook Onbekende rekening en verbergt hij de #VERW!.
Voorbeeld4 van 4Gevorderd
Openstaande saldi optellen voorbij fouten, en meten wat wegvalt
De debiteurenlijst van Veldhuis Installatie BV heeft een saldokolom die met formules is berekend. Twee saldi tonen een fout, waardoor de SOM van de kolom ook een fout geeft. Je wilt een totaal voor je werkpapier en je wilt weten hoeveel saldi het totaal buiten beschouwing laat.
| Rij | A | B | C | D | E | F |
|---|---|---|---|---|---|---|
| 1 | Debiteurnr. | Openstaand saldo | Totaal zonder fouten | 54346.554346,5=AGGREGAAT(9, 6, B2:B9)=AGGREGAAT(9; 6; B2:B9) | ||
| 2 | D1001 | €12,450.00€ 12.450,00 | Weggelaten saldi | |||
| 3 | D1002 | €8,300.50€ 8.300,50 | ||||
| 4 | D1003 | #N/B | ||||
| 5 | D1004 | €5,120.00€ 5.120,00 | ||||
| 6 | D1005 | #DEEL/0! | ||||
| 7 | D1006 | €9,875.25€ 9.875,25 | ||||
| 8 | D1007 | €3,400.00€ 3.400,00 | ||||
| 9 | D1008 | €15,200.75€ 15.200,75 | ||||
| 10 |
Veeg opzij om alle kolommen te zien
Formule in E1
=AGGREGAAT(9,6, B2:B9)
=AGGREGAAT(9;6; B2:B9)
Resultaat: 54346.554346,5
Stap voor stap
- =SOM(B2:B9) zou #N/B geven: B4 bevat #N/B en de fout loopt door in het totaal.
- AGGREGAAT heeft functienummer 9, dat is SOM, en optie 6, dat foutwaarden negeren betekent. De functie slaat B4 (#N/B) en B6 (#DEEL/0!) over.
- De zes overgebleven saldi: 12,45012.450 + 8,300.508.300,50 = 20,750.5020.750,50; + 5,1205.120 = 25,870.5025.870,50; + 9,875.259.875,25 = 35,745.7535.745,75; + 3,4003.400 = 39,145.7539.145,75; + 15,200.7515.200,75 = 54,346.5054.346,50.
- Het resultaat is 54,346.5054.346,50. Dit is niet het totaal van de debiteurenlijst. Het is het totaal van zes van de acht debiteuren, en het werkblad toont niets dat dat zegt.
- Daarom telt een tweede cel, E2 naast het label Weggelaten saldi, wat is weggevallen: SOMPRODUCT(--ISFOUT(B2:B9)) is 2 (B4 en B6). Zet beide naast elkaar: een totaal van 54,346.5054.346,50 met 2 niet meegenomen saldi.
Let op: AGGREGAAT met functienummers 1 tot en met 13 vraagt om een bereik. Een berekende matrix als B2:B9*1,21 geeft #WAARDE!. Gebruik de nummers 14 tot en met 19 (GROOTSTE, KLEINSTE en dergelijke) als je een matrix nodig hebt, of zet de berekening in een hulpkolom.
Meer over dit voorbeeld: waarom het werkt, nog 1 valkuil, 2 varianten
Waarom het werkt
Optie 6 van AGGREGAAT laat de functie elke cel in het bereik met een fout negeren, van welk type ook, zodat de berekening kan worden afgemaakt. De prijs is dat de lezer niet meer ziet dat er iets is overgeslagen. Een telling van de overgeslagen cellen naast het totaal geeft die informatie terug.
Meer om op te letten
- Een #N/B-saldo kan een debiteur zijn die in de koerstabel ontbreekt, en een #DEEL/0! een factuuraantal van 0. Los de oorzaak op en neem de saldi daarna weer mee; tel ze niet met de hand erbij.
Varianten
=SOMPRODUCT(--ISFOUT(B2:B9))
=SOMPRODUCT(--ISFOUT(B2:B9))
Telt de saldi die het totaal weglaat: 2. Zet deze naast het totaal van AGGREGAAT.
=SOM(ALS.FOUT(B2:B9,0))
=SOM(ALS.FOUT(B2:B9;0))
Hetzelfde totaal, 54346,5, in Excel 365. In Excel 2019 en eerder moet je hem invoeren met Ctrl+Shift+Enter; AGGREGAAT heeft geen bijzondere invoer nodig.
Veelgemaakte fouten
| Symptoom | Oorzaak | Oplossing |
|---|---|---|
| Het totaal lijkt compleet, maar de opzoekacties verbergen mislukte treffers | Een kolom opzoekacties eindigt in een =SOM(...) die compleet lijkt, omdat elke opzoekactie in ALS.FOUT(...; 0) staat. | Niet-gekoppelde rijen tellen ongemerkt voor 0 mee. Gebruik ALS.NB met een tekst als Niet gevonden en tel de teksten. |
| Een toets op #N/B reageert nooit of geeft zelf een fout | =ALS(A2="#N/B"; ...) reageert nooit, of geeft zelf een fout, als A2 #N/B bevat. | Een fout vergelijken met iets anders geeft die fout, en de tekst "#N/B" is niet de foutwaarde. Test met ISNB(A2), of met ISFOUT(A2) voor elk type. |
| ISFOUT2 telt 0 op een kolom met #N/B-cellen | =SOMPRODUCT(--ISFOUT2(B2:B9)) geeft 0 op een kolom met opzoekacties waarin duidelijk #N/B-cellen staan. | ISFOUT2 is per definitie ONWAAR voor #N/B. Gebruik ISNB voor de opzoekacties die niets vonden, ISFOUT voor elk type. |
| SOM(ALS.FOUT(...)) geeft #WAARDE! of een fout totaal in oudere Excel | =SOM(ALS.FOUT(B2:B9; 0)) geeft #WAARDE! of een onjuist totaal in een oudere Excel. | Vóór dynamische matrices (Excel 2019 en eerder) vraagt de formule om Ctrl+Shift+Enter. =AGGREGAAT(9; 6; B2:B9) geeft in elke versie hetzelfde totaal, en een telling van de fouten ernaast laat zien wat ontbreekt. |
| Een cel toont ##### en je zoekt een fout in de formule | Een cel toont ##### en je gaat zoeken naar de fout in de formule. | Dit is geen foutwaarde. De kolom is te smal voor het getal of de datum, of een datum of tijd is negatief. Maak de kolom breder; blijft ##### staan, zoek dan naar een negatieve datum of tijd. |
| Het gemiddelde daalt nadat je #DEEL/0! door 0 vervangt | Je lost de #DEEL/0! in een kolom met verhoudingen op met =ALS.FOUT(A2/B2; 0) en het gemiddelde van de kolom daalt. | De nullen tellen in het gemiddelde mee als echte verhoudingen. Test in plaats daarvan de deler, =ALS(B2=0; ""; A2/B2), zodat die rijen tekst bevatten, die GEMIDDELDE overslaat. |