DAGEN
DAYS in Engelstalige Excel
Telt de kalenderdagen van een begindatum tot een einddatum, en geeft een negatief getal als het einde vóór het begin ligt.
Laatst bijgewerkt: 13 oktober 2026
| Rij | A | B | C | D |
|---|---|---|---|---|
| 1 | Boekstuk | Factuurdatum | Boekdatum | Dagen tot boeking |
| 2 | 25-0412 | 18-12-2025 | 22-12-2025 | 44=DAGEN(C2, B2)=DAGEN(C2; B2) |
| 3 | 25-0418 | 29-12-2025 | 06-01-2026 | |
| 4 | 25-0431 | 30-12-2025 | 15-01-2026 |
Veeg opzij om alle kolommen te zien
Resultaat: 4
=DAGEN(C2,B2)
=DAGEN(C2;B2)
Wat DAGEN doet en wanneer je het gebruikt
Wat het doet: het telt de kalenderdagen van een begindatum tot een einddatum, bijvoorbeeld hoeveel dagen een factuur openstaat.
Wanneer je het gebruikt: voor doorlooptijden, dagen te laat, de ouderdom van facturen en de betaaltermijn. De functie neemt alleen geldige datums aan, dus slechte invoer geeft een foutmelding. Voor werkdagen gebruik je NETTO.WERKDAGEN.
Hoe Excel de functie berekent
Excel leest eerst einddatum en dan begindatum. Zijn het allebei getallen, dan controleert Excel of ze binnen het datumbereik vallen (seriële getallen 1 tot en met 2958465, dat is 31 december 9999); een getal daarbuiten geeft #GETAL!. Is een argument tekst, dan probeert Excel die als datum te lezen volgens de regio-instelling, in Nederlandse Excel dus dag-maand-jaar; lukt dat niet, dan is het resultaat #WAARDE!.
Daarna trekt Excel af: einddatum - begindatum. Ligt het einde later, dan is het resultaat positief, bij dezelfde dag 0 en ligt het einde eerder, dan negatief.
Let op: DAGEN wil de latere datum eerst: DAGEN(einddatum; begindatum). Schrijf je ze in de volgorde van de kolommen, dan wordt elke doorlooptijd negatief.
Denkmodel
Een meetlint langs de kalender dat je van het verre eind terug naar het begin afleest: het verre eind noem je eerst, en leg je het lint verkeerd om, dan lees je een negatief getal af.
Begrippen op deze pagina: serieel getal, argument, bereik
Syntaxis
Officiële documentatie van DAGENDAGEN(einddatum,begindatum)
DAGEN(einddatum;begindatum)
| Argument | Soort | Betekenis |
|---|---|---|
einddatum | Verplicht | De latere datum. Die komt eerst, anders dan bij de meeste datumfuncties. |
begindatum | Verplicht | De eerdere datum waarvandaan geteld wordt. |
Geeft terug:Een getal: het aantal dagen van begindatum tot einddatum
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
Dagen tussen factuurdatum en boekdatum
Je test de afgrenzing in de XAF-auditfile van Veldhuis Installatie BV. Per boekstuk wil je weten hoeveel kalenderdagen er zitten tussen de factuurdatum en de datum waarop het boekstuk is geboekt, zodat je inkoopfacturen van december 2025 vindt die pas in het nieuwe jaar zijn geboekt.
| Rij | A | B | C | D | E |
|---|---|---|---|---|---|
| 1 | Boekstuk | Factuurdatum | Boekdatum | Dagen tot boeking | |
| 2 | 25-0412 | 18-12-2025 | 22-12-2025 | 44=DAGEN(C2, B2)=DAGEN(C2; B2) | |
| 3 | 25-0418 | 29-12-2025 | 06-01-2026 | ||
| 4 | 25-0431 | 30-12-2025 | 15-01-2026 | ||
| 5 |
Veeg opzij om alle kolommen te zien
Formule in D2
=DAGEN(C2,B2)
=DAGEN(C2;B2)
Resultaat: 44
Stap voor stap
- Excel leest het eerste argument, einddatum:
C2, de boekdatum 22 december 2025, serieel getal 46013. - Dan het tweede argument, begindatum:
B2, de factuurdatum 18 december 2025, serieel getal 46009. - Beide zijn geldige datums, dus Excel trekt af: 46013 - 46009 = 4. Boekstuk
25-0412is 4 dagen na de factuurdatum geboekt. - Naar beneden gekopieerd geeft
D346028 - 46020 = 8 enD446037 - 46021 = 16. Beide facturen hebben een datum in 2025 maar zijn in januari 2026 geboekt, dus ze horen op je lijst voor de afgrenzing.
Let op: Schrijf je DAGEN(B2; C2), in de volgorde waarin de kolommen staan, dan toont D2 -4. De grootte klopt; alleen het minteken verraadt de fout.
Meer over dit voorbeeld: waarom het werkt
Waarom het werkt
Datums zijn dagtellingen, dus de afstand tussen twee datums is een aftreksom. DAGEN zet bij die aftreksom de latere datum vooraan, en daarom is het antwoord positief als je de boekdatum vóór de factuurdatum noemt.
Halfgevorderd
Dagen te laat per debiteurenbevestiging
Je hebt aan het einde van het jaar debiteurenbevestigingen verstuurd en volgt de antwoorden op. Per klant wil je de dagen tussen de uiterste antwoorddatum en de datum waarop het antwoord binnenkwam: positief als het antwoord te laat was, negatief als het eerder kwam.
Klanten die nog niet hebben gereageerd, moeten dat laten zien in plaats van een getal dat nergens op slaat. Je kopieert de formule in kolom D naar beneden.
| Rij | A | B | C | D | E |
|---|---|---|---|---|---|
| 1 | Relatie | Uiterste antwoorddatum | Antwoord ontvangen | Dagen te laat | |
| 2 | D1001 | 23-01-2026 | 27-01-2026 | 44=ALS(C2 = "", "Niet ontvangen", DAGEN(C2, B2))=ALS(C2 = ""; "Niet ontvangen"; DAGEN(C2; B2)) | |
| 3 | D1002 | 30-01-2026 | 27-01-2026 | ||
| 4 | D1003 | 06-02-2026 | |||
| 5 | D1004 | 06-02-2026 | 06-02-2026 | ||
| 6 |
Veeg opzij om alle kolommen te zien
Formule in D2
=ALS(C2 = "","Niet ontvangen", DAGEN(C2, B2))
=ALS(C2 = "";"Niet ontvangen"; DAGEN(C2; B2))
Resultaat: 44
Stap voor stap
- Excel berekent eerst de test:
C2bevat 27 januari 2026, dus C2 = "" is ONWAAR en ALS gaat naar het derde argument. - DAGEN(C2; B2) trekt de uiterste antwoorddatum af van de ontvangstdatum: 46049 - 46045 = 4. Klant D1001 antwoordde 4 dagen na de deadline.
D3: antwoord op 27 januari, deadline 30 januari: 46049 - 46052 = -3. Het negatieve getal is de informatie: 3 dagen te vroeg.D4:C4is leeg, dus de test is WAAR en ALS geeftNiet ontvangen. Zonder ALS zou DAGEN de lege cel als 0 lezen en een enorm negatief getal geven dat eruitziet als echte gegevens.D5: antwoord op de deadline zelf, 46059 - 46059 = 0. Op tijd.
Let op: Neem je met GEMIDDELDE het gemiddelde van kolom D, dan slaat Excel de tekst Niet ontvangen over, en dat is goed, maar vroege en late antwoorden strepen elkaar dan ook weg. Rapporteer te laat en te vroeg apart als dat verschil ertoe doet voor je opvolging.
Meer over dit voorbeeld: waarom het werkt, 1 variant
Waarom het werkt
Zet je de ontvangstdatum eerst, dan is een laat antwoord positief en een vroeg antwoord negatief, en kan één kolom beide laten zien. ALS controleert of het antwoord ontbreekt voordat DAGEN aan de beurt is, dus de lege cel komt nooit in de berekening terecht. $-tekens zijn niet nodig, want elke rij kijkt alleen naar zijn eigen datums.
Varianten
=ALS(C2 = "","Niet ontvangen", C2 - B2)
=ALS(C2 = "";"Niet ontvangen"; C2 - B2)
Aftrekken zonder functie geeft bij echte datums dezelfde getallen en werkt ook in versies van vóór 2013, maar waarschuwt niet bij een ongeldige datum.
GevorderdExcel 2021 of nieuwer (Dit voorbeeld vereist Excel 2021 of nieuwer)
Ouderdomsklassen debiteuren per balansdatum
Je sluit de ouderdomsanalyse debiteuren aan op het grootboek per 31 december 2025. Elke openstaande factuur komt in een ouderdomsklasse, in dagen sinds de factuurdatum en gemeten op de rapportdatum in G1:
0-3031-6061-9091+
De klassentabel staat in I1:J5, zodat je de grenzen kunt aanpassen. Een factuur met een datum na de rapportdatum is een afgrenzingsfout en moet opvallen.
| Rij | A | B | C | D | E | F | G | H | I | J | K |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Factuur | Factuurdatum | Openstaand bedrag | Ouderdomsklasse | Rapportdatum | 31-12-2025 | Vanaf dag | Klasse | |||
| 2 | F-6098 | 15-10-2025 | €980.00€ 980,00 | 61-90=X.ZOEKEN(DAGEN($G$1, B2), $I$2:$I$5, $J$2:$J$5, "Datum controleren", -1)=X.ZOEKEN(DAGEN($G$1; B2); $I$2:$I$5; $J$2:$J$5; "Datum controleren"; -1) | 00 | 0-30 | |||||
| 3 | F-6120 | 22-12-2025 | €1,450.00€ 1.450,00 | 3131 | 31-60 | ||||||
| 4 | F-6071 | 29-08-2025 | €2,300.00€ 2.300,00 | 6161 | 61-90 | ||||||
| 5 | F-6110 | 01-12-2025 | €1,100.00€ 1.100,00 | 9191 | 91+ | ||||||
| 6 | F-6085 | 01-11-2025 | €750.00€ 750,00 | ||||||||
| 7 | F-6133 | 03-01-2026 | €600.00€ 600,00 | ||||||||
| 8 |
Veeg opzij om alle kolommen te zien
Formule in D2
=X.ZOEKEN(DAGEN($G$1,B2), $I$2:$I$5, $J$2:$J$5, "Datum controleren", -1)
=X.ZOEKEN(DAGEN($G$1;B2); $I$2:$I$5; $J$2:$J$5; "Datum controleren"; -1)
Resultaat: 61-90
Stap voor stap
- Excel berekent eerst de binnenste DAGEN: einddatum is de rapportdatum
$G$1, 31 december 2025 (46022), en begindatum isB2, 15 oktober 2025 (45945). 46022 - 45945 = 77 dagen. - X.ZOEKEN zoekt 77 in
$I$2:$I$5(0, 31, 61, 91) met overeenkomstmodus -1: exact, en anders de eerstvolgende kleinere waarde. 77 staat er niet in, dus X.ZOEKEN neemt 61, de derde cel,I4. - X.ZOEKEN geeft de derde cel van
$J$2:$J$5terug, en dat isJ4:61-90. Naar beneden gekopieerd:
F-6120is 46022 - 46013 = 9 dagen, klasse0-30F-6071is 124 dagen,91+F-6110is precies 30 dagen, nog0-30F-6085is 60 dagen,31-60
F-6133heeft als datum 3 januari 2026, na de rapportdatum: 46022 - 46025 = -3. Geen enkele klasse begint bij -3 of lager, dus X.ZOEKEN geeftDatum controlerenin plaats van een klasse.
Let op: Staan de beginpunten als 0, 30, 60 en 90 in de tabel, dan komt een factuur van precies 30 dagen in 31-60, terwijl het label 0-30 belooft. Er verschijnt geen foutmelding; de ouderdomsanalyse zit op elke grens er ongemerkt naast en sluit niet aan op de specificatie van de cliënt.
Meer over dit voorbeeld: waarom het werkt, nog 1 valkuil, 1 variant
Waarom het werkt
DAGEN zet elke factuurdatum om in een ouderdom op één vaste rapportdatum, en juist het negatieve resultaat bij een toekomstige datum maakt de afgrenzingsfout zichtbaar. X.ZOEKEN met overeenkomstmodus -1 vindt daarna het hoogste beginpunt dat niet boven de ouderdom ligt, dus je hoeft alleen de beginpunten van de klassen op te slaan. De $-tekens houden de rapportdatum en de klassentabel vast terwijl B2 naar beneden schuift.
Meer om op te letten
- Gebruik je VANDAAG() in plaats van
$G$1, dan verschuiven de klassen elke dag nadat je het werkpapier hebt vastgelegd, en sluiten de cijfers niet meer aan op het grootboek per 31 december 2025.
Varianten
=X.ZOEKEN($G$1 - B2,$I$2:$I$5, $J$2:$J$5, "Datum controleren", -1)
=X.ZOEKEN($G$1 - B2;$I$2:$I$5; $J$2:$J$5; "Datum controleren"; -1)
Aftrekken in plaats van DAGEN geeft bij schone datums dezelfde klassen; DAGEN is veiliger als de factuurdatums uit een import komen.
ExpertExcel 2021 of nieuwer (Dit voorbeeld vereist Excel 2021 of nieuwer)
Betaaltermijn gewogen naar bedrag, alleen betaalde facturen
Je beoordeelt hoe snel klant D1001 van Veldhuis Installatie BV betaalt, als input voor je oordeel over de voorziening voor oninbare vorderingen. Een ongewogen gemiddelde laat een kleine factuur even zwaar meetellen als een grote, dus je wilt de betaaltermijn gewogen naar bedrag, en alleen over betaalde facturen; één factuur staat nog open.
De formule moet de lege betaaldatum zichtbaar afhandelen en leesbaar blijven in het controledossier.
| Rij | A | B | C | D | E | F | G | H |
|---|---|---|---|---|---|---|---|---|
| 1 | Factuur | Factuurdatum | Betaald op | Bedrag | Gewogen betaaltermijn | 39.0039,00=LET( factuurdatum, B2:B6, betaaldatum, C2:C6, bedrag, D2:D6, betaald, ISGETAL(betaaldatum), looptijd, ALS(betaald, DAGEN(betaaldatum, factuurdatum), 0), gewicht, bedrag * betaald, SOM(looptijd * gewicht) / SOM(gewicht) )=LET( factuurdatum; B2:B6; betaaldatum; C2:C6; bedrag; D2:D6; betaald; ISGETAL(betaaldatum); looptijd; ALS(betaald; DAGEN(betaaldatum; factuurdatum); 0); gewicht; bedrag * betaald; SOM(looptijd * gewicht) / SOM(gewicht) ) | ||
| 2 | F-5401 | 06-10-2025 | 10-11-2025 | €2,000.00€ 2.000,00 | ||||
| 3 | F-5402 | 14-10-2025 | 07-11-2025 | €1,000.00€ 1.000,00 | ||||
| 4 | F-5403 | 20-11-2025 | €1,500.00€ 1.500,00 | |||||
| 5 | F-5404 | 03-11-2025 | 29-12-2025 | €3,000.00€ 3.000,00 | ||||
| 6 | F-5405 | 17-11-2025 | 12-12-2025 | €2,000.00€ 2.000,00 | ||||
| 7 |
Veeg opzij om alle kolommen te zien
Formule in G1
=LET( factuurdatum,B2:B6, betaaldatum, C2:C6, bedrag, D2:D6, betaald, ISGETAL(betaaldatum), looptijd, ALS(betaald, DAGEN(betaaldatum, factuurdatum), 0), gewicht, bedrag * betaald, SOM(looptijd * gewicht) / SOM(gewicht) )
=LET( factuurdatum;B2:B6; betaaldatum; C2:C6; bedrag; D2:D6; betaald; ISGETAL(betaaldatum); looptijd; ALS(betaald; DAGEN(betaaldatum; factuurdatum); 0); gewicht; bedrag * betaald; SOM(looptijd * gewicht) / SOM(gewicht) )
Resultaat: 39.0039,00
Stap voor stap
- LET geeft de drie kolommen een naam. betaald is ISGETAL(betaaldatum): WAAR, WAAR, ONWAAR, WAAR, WAAR. De lege betaaldatum van
F-5403is geen getal. - looptijd berekent DAGEN voor elke rij, betaaldatum eerst: 45971 - 45936 = 35, 45968 - 45944 = 24, 46020 - 45964 = 56, 46003 - 45978 = 25. Voor
F-5403geeft ALS 0, en wat DAGEN van de lege cel maakte, valt weg. looptijd is dus 35, 24, 0, 56, 25. - gewicht vermenigvuldigt de bedragen met betaald, waarbij WAAR 1 is en ONWAAR 0: 2000, 1000, 0, 3000, 2000. De openstaande factuur telt niet meer mee.
- De teller: 35 × 2000 + 24 × 1000 + 0 + 56 × 3000 + 25 × 2000 = 70000 + 24000 + 168000 + 50000 = 312000.
- De noemer: 2000 + 1000 + 3000 + 2000 = 8000. Het resultaat is 312000 / 8000 = 39 dagen.
- Het ongewogen gemiddelde van de vier betaalde facturen is (35 + 24 + 56 + 25) / 4 = 35. Het gewogen getal ligt 4 dagen hoger, omdat de grootste factuur, 3000, het langst openstond: 56 dagen.
Let op: De omgekeerde fout is DAGEN(factuurdatum; betaaldatum), met het begin eerst zoals bij NETTO.WERKDAGEN. Dan krijg je -39. Zet je er ABS omheen, dan ziet het er goed uit, maar verdwijnt ook elke betaling die vóór de factuurdatum is geboekt uit beeld, en dat is een gegevensfout die je juist wilt zien.
Meer over dit voorbeeld: waarom het werkt, nog 2 valkuilen, 1 variant
Waarom het werkt
DAGEN neemt hele kolommen aan en geeft per rij één duur terug, dus voor de termijnen heb je geen hulpkolom nodig. betaald doet dubbel werk: binnen ALS houdt het de lege betaaldatum buiten het resultaat, en als vermenigvuldiger van 1 of 0 haalt het de openstaande factuur uit de weging.
Gebruik dit niet als formele DSO (die zet het debiteurensaldo af tegen de omzet over een periode); dit meet het betaalgedrag bij afgewikkelde facturen. Zijn de bedragen ongeveer even groot, dan is het ongewogen gemiddelde uit de variant het alternatief: beter uit te leggen, maar blind voor één grote factuur die laat is betaald.
Meer om op te letten
- Laat je de ALS weg en vertrouw je alleen op gewicht, dan gaat het mis: een lege betaaldatum kan DAGEN op die rij een foutwaarde of een enorm negatief getal laten geven, en 0 keer een foutwaarde blijft een foutwaarde.
- Is er nog geen enkele factuur betaald, dan is SOM(gewicht) 0 en is het resultaat #DEEL/0!. Dat is eerlijk; verberg het niet met ALS.FOUT.
Varianten
=GEMIDDELDE(DAGEN(FILTER(C2:C6,ISGETAL(C2:C6)), FILTER(B2:B6, ISGETAL(C2:C6))))
=GEMIDDELDE(DAGEN(FILTER(C2:C6;ISGETAL(C2:C6)); FILTER(B2:B6; ISGETAL(C2:C6))))
Het ongewogen gemiddelde van de betaalde facturen, 35 dagen: FILTER haalt de openstaande rij uit beide kolommen voordat DAGEN draait.
Veelgemaakte fouten
| Symptoom | Oorzaak | Oplossing |
|---|---|---|
| Elke doorlooptijd is negatief | Elke doorlooptijd komt negatief uit. | De argumenten staan in de volgorde begin, einde, zoals bij NETTO.WERKDAGEN. Draai ze om. |
| #GETAL! bij datums uit een export | DAGEN geeft #GETAL! bij datums uit een ERP-export, terwijl C2 - B2 op dezelfde cellen een groot getal geeft. | De export heeft datums geschreven als getallen zoals 20260331, ver voorbij het laatste geldige seriële getal. DAGEN weigert die; aftrekken niet. Zet ze eerst om met DATUM(LINKS(...); DEEL(...); RECHTS(...)). |
| Een doorlooptijd is één dag te kort | Een doorlooptijd is één dag korter dan het team verwacht. | DAGEN telt de stappen tussen de datums, dus maandag tot vrijdag is 4. Tellen de eerste en de laatste dag allebei mee, tel er dan 1 bij op, of gebruik NETTO.WERKDAGEN voor werkdagen. |