Beschikbaar in:Alle versies (Werkt in Excel 2007, elke latere versie, Microsoft 365 en Excel voor het web)Voorbeelden vragen Excel 2021 of nieuwerCategorie:Datum en tijd

ZELFDE.DAG

EDATE in Engelstalige Excel

Geeft de datum die op dezelfde dag van de maand valt, een opgegeven aantal maanden voor of na een begindatum.

Moeilijkheidsgraad 2 van 5. Twee argumenten, maar de dag wordt in kortere maanden teruggebracht naar het maandeinde, en het resultaat is een serieel getal dat een datumnotatie nodig heeft.

Laatst bijgewerkt: 13 oktober 2026

Bekijk de uitgewerkte voorbeelden

Fragment van het werkblad: in C2 staat de formule
RijABC
1BoekstukIngangsdatumVerlenging
225-011815-03-202515-03-202615-03-2026=ZELFDE.DAG(B2, 12)=ZELFDE.DAG(B2; 12)
325-023101-07-2025
425-030529-02-2024
525-037731-10-2025
Formulecel (C2)Invoer

Resultaat: 15-03-2026

=ZELFDE.DAG(B2, 12)
=ZELFDE.DAG(B2; 12)

Wat ZELFDE.DAG doet en wanneer je het gebruikt

Wat het doet: het verschuift een datum met hele kalendermaanden en houdt het dagnummer vast, bijvoorbeeld een verzekering die op 15 maart ingaat en een jaar later op 15 maart afloopt.

Wanneer je het gebruikt: voor verlengingsdatums, einddatums van contracten en proeftijden en termijndatums. Het vervangt 30 dagen optellen, want dat schuift op doordat maanden niet even lang zijn. Voor de laatste dag van een maand gebruik je LAATSTE.DAG.

De twee grootste voordelen:

  • Kalendermaanden: het dagnummer blijft staan, terwijl 30 dagen optellen opschuift.
  • Korte maanden opgevangen: een start op de 31e komt uit op de laatste dag van een kortere maand, zonder foutmelding.

Hoe Excel de functie berekent

Excel neemt het seriële getal van begindatum en splitst het in jaar, maand en dag. Daarna kapt Excel aantal_maanden af tot een heel getal en telt dat bij de maand op, waarbij het doorschuift naar het volgende of vorige jaar als de telling voorbij december of januari gaat.

Bestaat de oorspronkelijke dag in de doelmaand, dan houdt het die; zo niet (dag 31 in een maand van 30 dagen, dag 29 tot 31 in februari), dan gebruikt het de laatste dag van die maand. Het resultaat is het seriële getal van die datum, zoals 46461, dus de cel heeft een datumnotatie nodig.

Let op: Is de doelmaand te kort voor die dag, dan geeft ZELFDE.DAG de laatste dag van die maand: 31 januari plus 1 maand is 28 februari (of 29 in een schrikkeljaar).

Denkmodel

Sla een kalender aan de muur zoveel bladen om als aantal_maanden aangeeft en leg je vinger op hetzelfde dagnummer; heeft dat blad zo'n vakje niet, dan gaat je vinger naar het laatste.

Begrippen op deze pagina: serieel getal, cel

ZELFDE.DAG(begindatum, aantal_maanden)
ZELFDE.DAG(begindatum; aantal_maanden)
Argumenten
ArgumentSoortBetekenis
begindatumVerplichtDe datum waarvan je telt; het dagnummer blijft staan waar de maand dat toelaat.
aantal_maandenVerplichtHoeveel maanden je verschuift: 12 is een jaar later, -3 is drie maanden terug.

Geeft terug:Het seriële getal van dezelfde dag, aantal_maanden later of eerder

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

Verlengingsdatum van vooruitbetaalde verzekeringen

Je test de vooruitbetaalde kosten van Veldhuis Installatie BV per 31 december 2025. Vier jaarpremies voor verzekeringen zijn als INK-boekstuk geboekt. Elke polis loopt 12 maanden vanaf de ingangsdatum en wordt op dezelfde dag van de maand verlengd. Je wilt de verlengingsdatum naast elk boekstuk, om te zien welke premies nog een periode na de jaarwisseling dekken.

Fragment van het werkblad: in C2 staat de formule
RijABCD
1BoekstukIngangsdatumVerlenging
225-011815-03-202515-03-202615-03-2026=ZELFDE.DAG(B2, 12)=ZELFDE.DAG(B2; 12)
325-023101-07-2025
425-030529-02-2024
525-037731-10-2025
6
Formulecel (C2)Invoer

Formule in C2

=ZELFDE.DAG(B2, 12)
=ZELFDE.DAG(B2; 12)

Resultaat: 15-03-2026

Stap voor stap
  1. B2 bevat 15 maart 2025, serieel getal 45731. Dat is de begindatum: jaar 2025, maand 3, dag 15.
  2. aantal_maanden is 12, dus ZELFDE.DAG schuift 12 kalendermaanden vooruit: maand 3 van 2025 wordt maand 3 van 2026.
  3. Maart heeft 31 dagen, dus dag 15 bestaat en blijft staan. Het resultaat is 15 maart 2026, serieel getal 46096. Dat is 46096 - 45731 = 365 dagen later.
  4. C2 heeft een datumnotatie, dus de cel toont 15-03-2026 in plaats van 46096. Deze polis dekt na de jaarwisseling nog 74 dagen, dus een deel van de premie hoort bij de vooruitbetaalde kosten.
  5. Kopieer naar beneden:

    • 25-0231: 1 juli 2025 wordt 1 juli 2026
    • 25-0305: begon op 29 februari 2024, een schrikkeldag; februari 2025 heeft 28 dagen, dus ZELFDE.DAG geeft 28 februari 2025, vóór de jaarwisseling: van die premie is niets vooruitbetaald
    • 25-0377: 31 oktober 2025 wordt 31 oktober 2026

Let op: B2 + 365 geeft hier hetzelfde antwoord, maar bij een begindatum die minder dan een jaar vóór een schrikkeldag ligt, zoals 1 maart 2027 + 365, kom je uit op 29 februari 2028 in plaats van 1 maart. Gebruik ZELFDE.DAG voor jaardagen.

Meer over dit voorbeeld: waarom het werkt, 1 variant

Waarom het werkt

ZELFDE.DAG telt kalendermaanden, geen dagen, dus een jaar later is dezelfde datum, of het jaar nu 365 of 366 dagen heeft. De polis met de schrikkeldag laat het terugbrengen zien: een dag die in de doelmaand niet bestaat, wordt de laatste dag van die maand, nooit een datum in de volgende maand.

Varianten

=ZELFDE.DAG(B2, 12) - 1
=ZELFDE.DAG(B2; 12) - 1

De laatste dag van de dekking, 14 maart 2026, als de polis de dag vóór de verlenging eindigt.

Halfgevorderd

Aflossingsdatums van een banklening die op de 31e begint

Veldhuis Installatie BV heeft een banklening die op 31 augustus 2025 is uitbetaald. De lening wordt afgelost in zes maandtermijnen van 4,0004.000, telkens op dezelfde dag van de maand. Een aantal maanden heeft geen 31e.

Je herrekent de vervaldatums om ze aan te sluiten op de bankbevestiging. De begindatum staat in E1 en het termijnnummer in kolom A; één formule, naar beneden gekopieerd, geeft elke vervaldatum.

Fragment van het werkblad: in C2 staat de formule
RijABCDEF
1TermijnBedragVervaldatumStart lening31-08-2025
211€4,000.00€ 4.000,0030-09-202530-09-2025=ZELFDE.DAG($E$1, A2)=ZELFDE.DAG($E$1; A2)
322€4,000.00€ 4.000,00
433€4,000.00€ 4.000,00
544€4,000.00€ 4.000,00
655€4,000.00€ 4.000,00
766€4,000.00€ 4.000,00
8
Formulecel (C2)Invoer

Formule in C2

=ZELFDE.DAG($E$1, A2)
=ZELFDE.DAG($E$1; A2)

Resultaat: 30-09-2025

Stap voor stap
  1. De begindatum komt uit $E$1: 31 augustus 2025, serieel 45900. aantal_maanden komt uit A2: 1.
  2. Eén maand verder is september 2025. September heeft 30 dagen, dus dag 31 bestaat niet en ZELFDE.DAG neemt de laatste dag: 30 september 2025, serieel 45930.
  3. Kopieer naar beneden. C3 is ZELFDE.DAG($E$1; 2): twee maanden na 31 augustus is oktober, en die heeft een 31e, dus 31 oktober 2025 (45961). Het terugbrengen in september werkt niet door, omdat elke rij vanaf E1 telt.
  4. C4 tot en met C7: 30 november (november heeft 30 dagen), 31 december 2025, 31 januari en 28 februari 2026. Elke datum is de 31e waar die bestaat en het maandeinde waar die niet bestaat.
  5. Vergelijk dat met een ketting, waarbij C3 ZELFDE.DAG(C2; 1) is: dat begint bij 30 september en geeft 30 oktober, dan 30 november, 30 december en 30 januari. Drie vervaldatums liggen een dag te vroeg ten opzichte van de bankbevestiging, zonder dat een foutmelding je waarschuwt.
  6. Zonder de $-tekens zou C3 de cel E2 lezen, die leeg is, en tellen vanaf serieel getal 0, een datum in 1900. Zet E1 op 15 augustus 2025 en alle zes de datums schuiven naar de 15e.

Let op: Is het termijnnummer in kolom A leeg, dan is aantal_maanden 0 en geeft ZELFDE.DAG de begindatum zelf, 31 augustus 2025, en die ziet eruit als een geldige vervaldatum.

Meer over dit voorbeeld: waarom het werkt, nog 1 valkuil, 1 variant

Waarom het werkt

Doordat elke termijn met een oplopend aantal_maanden vanaf dezelfde vaste begindatum wordt geteld, wordt elke datum los berekend, en raakt een korte maand alleen haar eigen rij. De vastgezette verwijzing naar E1 maakt van de kolom een schema in plaats van een ketting.

Meer om op te letten

  • Een vervaldatum in het weekend wordt niet verschoven: 30 november 2025 is een zondag. Incasseert de bank op de volgende werkdag, vergelijk het bankafschrift dan met WERKDAG(datum - 1; 1).

Varianten

=LAATSTE.DAG($E$1, A2)
=LAATSTE.DAG($E$1; A2)

Zegt de leningovereenkomst 'laatste dag van elke maand' in plaats van 'de 31e', dan geeft LAATSTE.DAG hier dezelfde datums; ze verschillen zodra de start geen maandeinde is.

Gevorderd

Laatste dag om een huurcontract op te zeggen

Je beoordeelt de huurtermijn van de gehuurde panden en voertuigen van Veldhuis Installatie BV. De contractenlijst geeft een startdatum, een looptijd in maanden en een opzegtermijn in maanden. Een contract eindigt de dag vóór de jaardag van de start, en opzeggen moet uiterlijk de opzegtermijn vóór die einddatum.

Aan de deadline zie je of het bedrijf per eind 2025 nog kon opzeggen of aan een nieuwe termijn vastzit. Je wilt de deadline in één formule, met de einddatum daarin berekend.

Fragment van het werkblad: in E2 staat de formule
RijABCDEF
1ContractStartLooptijd (mnd)Opzegtermijn (mnd)Uiterste opzegdatum
2H-50101-09-202512122230-06-202630-06-2026=ZELFDE.DAG(ZELFDE.DAG(B2, C2) - 1, -D2)=ZELFDE.DAG(ZELFDE.DAG(B2; C2) - 1; -D2)
3H-50201-12-2025121233
4H-50315-01-2025242411
5
Formulecel (E2)Invoer

Formule in E2

=ZELFDE.DAG(ZELFDE.DAG(B2, C2) - 1, -D2)
=ZELFDE.DAG(ZELFDE.DAG(B2; C2) - 1; -D2)

Resultaat: 30-06-2026

Stap voor stap
  1. Excel berekent eerst de binnenste ZELFDE.DAG: ZELFDE.DAG(B2; C2) schuift 1 september 2025 (serieel 45901) 12 maanden vooruit naar 1 september 2026 (serieel 46266), de jaardag.
  2. Er 1 van aftrekken geeft de einddatum: 46266 - 1 = 46265, 31 augustus 2026.
  3. De buitenste ZELFDE.DAG schuift die einddatum D2 maanden terug: -2. Twee maanden vóór 31 augustus is juni, en die heeft maar 30 dagen, dus ZELFDE.DAG geeft de laatste dag van juni: 30 juni 2026, serieel 46203.
  4. Kopieer naar beneden. H-502: jaardag 1 december 2026, einde 30 november 2026 (46356), drie maanden terug is 30 augustus 2026 (46264). H-503: jaardag 15 januari 2027, einde 14 januari 2027, één maand terug is 14 december 2026.
  5. Alle drie de deadlines vallen na 31 december 2025, dus per de jaarwisseling kon het bedrijf elk contract nog tijdig opzeggen. Zet D2 op 3 en de deadline voor H-501 wordt 31 mei 2026: drie maanden vóór 31 augustus, en mei heeft een 31e.

Let op: ZELFDE.DAG(B2; C2 - D2) - 1 lijkt korter en geeft voor H-501 dezelfde datum, maar voor H-502 geeft het 1 september 2026 - 1 = 31 augustus 2026, een dag later dan 30 augustus. De dag aftrekken vóór of na het verschuiven verandert het antwoord; volg de volgorde van de contracttekst.

Meer over dit voorbeeld: waarom het werkt, nog 1 valkuil, 1 variant

Waarom het werkt

Elke stap past bij een zinsdeel in het contract: de binnenste ZELFDE.DAG is 'de looptijd', min 1 is 'eindigt de dag ervoor', en de buitenste ZELFDE.DAG met een negatief aantal_maanden is 'opzeggen vóór het einde'. Negatieve maanden worden op dezelfde manier naar het maandeinde teruggebracht als positieve, en daarom komt de deadline vóór 31 augustus uit op 30 juni.

Meer om op te letten

  • De deadline van H-502, 30 augustus 2026, valt op een zondag. ZELFDE.DAG weet niets van weekenden; zie de variant voor de laatste werkdag.

Varianten

=WERKDAG(ZELFDE.DAG(ZELFDE.DAG(B3, C3) - 1, -D3) + 1, -1)
=WERKDAG(ZELFDE.DAG(ZELFDE.DAG(B3; C3) - 1; -D3) + 1; -1)

De laatste werkdag op of vóór de deadline: voor H-502 wordt zondag 30 augustus 2026 vrijdag 28 augustus 2026. WERKDAG stapt één werkdag terug vanaf de dag erna.

ExpertExcel 2021 of nieuwer (Dit voorbeeld vereist Excel 2021 of nieuwer)

Verwachte boekingsdatums van periodieke facturen, op maandeinden gehouden

Je test de volledigheid van periodieke inkoopfacturen (INK) bij Veldhuis Installatie BV. Elk contract heeft een datum van de eerste factuur en een aantal maandelijkse facturen. Het beleid in de contracten: een factuur met de laatste dag van een maand als datum, krijgt ook de laatste dag van elke volgende maand als datum.

ZELFDE.DAG alleen doet dat niet bij een eerste factuur op 30 september, want die functie houdt dag 30 vast en geeft 30 december, niet 31 december. Eén formule per contract laat de verwachte datums over de rij overlopen en kiest LAATSTE.DAG voor een start op het maandeinde en ZELFDE.DAG voor de rest, zodat je elke datum in de auditfile kunt opzoeken.

Fragment van het werkblad: in D2 staat de formule
RijABCDEFGH
1ContractEerste factuurFacturenVerwachte factuurdatums
2R-20130-09-20254431-10-2025=LET( begin, B2, aantalMaanden, C2, stap, REEKS(1, aantalMaanden), isEindeMaand, begin = LAATSTE.DAG(begin, 0), ALS(isEindeMaand, LAATSTE.DAG(begin, stap), ZELFDE.DAG(begin, stap)) )=LET( begin; B2; aantalMaanden; C2; stap; REEKS(1; aantalMaanden); isEindeMaand; begin = LAATSTE.DAG(begin; 0); ALS(isEindeMaand; LAATSTE.DAG(begin; stap); ZELFDE.DAG(begin; stap)) )30-11-202531-12-202531-01-2026
3R-20215-09-202544
4R-20330-06-202544
5
Formulecel (D2)InvoerOverloopresultaat

Formule in D2

=LET(
  begin, B2,
  aantalMaanden, C2,
  stap, REEKS(1, aantalMaanden),
  isEindeMaand, begin = LAATSTE.DAG(begin, 0),
  ALS(isEindeMaand, LAATSTE.DAG(begin, stap), ZELFDE.DAG(begin, stap))
)
=LET(
  begin; B2;
  aantalMaanden; C2;
  stap; REEKS(1; aantalMaanden);
  isEindeMaand; begin = LAATSTE.DAG(begin; 0);
  ALS(isEindeMaand; LAATSTE.DAG(begin; stap); ZELFDE.DAG(begin; stap))
)

Resultaat: 31-10-2025 | 30-11-2025 | 31-12-2025 | 31-01-202631-10-2025 | 30-11-2025 | 31-12-2025 | 31-01-2026

Stap voor stap
  1. LET geeft de invoer een naam: begin is 30 september 2025 (serieel 45930) en aantalMaanden is 4. stap is REEKS(1; 4), een rij met 1, 2, 3 en 4: de maandverschuivingen van de vier facturen.
  2. isEindeMaand vergelijkt begin met LAATSTE.DAG(begin; 0), de laatste dag van zijn eigen maand. September 2025 eindigt op de 30e, 45930 = 45930, dus isEindeMaand is WAAR.
  3. ALS kiest LAATSTE.DAG(begin; stap) voor de hele rij: de maandeinden 1 tot en met 4 maanden verder: 31 oktober (45961), 30 november, 31 december 2025 en 31 januari 2026. Ze lopen over van D2 tot G2.
  4. Ter vergelijking: ZELFDE.DAG(begin; stap) had 30 oktober, 30 november, 30 december en 30 januari gegeven: ZELFDE.DAG houdt dag 30 vast, dus alleen november klopt, en alleen omdat die maand 30 dagen heeft. Je zou zoeken naar een factuur van 30 december en die van 31 december missen.
  5. In D3 start R-202 op 15 september 2025, geen maandeinde (dat is 30 september), dus ALS kiest ZELFDE.DAG: 15 oktober, 15 november, 15 december 2025 en 15 januari 2026.
  6. In D4 start R-203 op 30 juni 2025, het einde van juni, dus dit contract krijgt 31 juli, 31 augustus, 30 september en 31 oktober. ZELFDE.DAG had 30 juli, 30 augustus, 30 september en 30 oktober gegeven: alleen in september goed.

Let op: De omgekeerde fout is LAATSTE.DAG(begin; stap) voor elk contract. Dat klopt voor R-201 en R-203, dus een test daarop slaagt, maar R-202 verwacht dan facturen op 31 oktober, 30 november en 31 december in plaats van op de 15e.

Meer over dit voorbeeld: waarom het werkt, nog 2 valkuilen, 1 variant

Waarom het werkt

ZELFDE.DAG schuift alleen naar het maandeinde als de dag niet bestaat, dus een start op de laatste dag van een korte maand wordt gelezen als 'dag 30', niet als 'maandeinde'. De test begin = LAATSTE.DAG(begin; 0) maakt de bedoeling weer zichtbaar, en LAATSTE.DAG met dezelfde verschuivingen houdt die contracten op maandeinden. REEKS maakt alle verschuivingen in één keer, en LET geeft elk onderdeel een naam, zodat het beleid in de formule leesbaar is.

Gebruik deze opbouw niet als het contract een vast dagnummer noemt (factuur op de 30e), ongeacht de start: dan is ZELFDE.DAG zonder meer de juiste keus. Het alternatief voor oudere Excel-versies is één ZELFDE.DAG of LAATSTE.DAG per kolom met de verschuiving in een koprij; meer cellen om te onderhouden, maar geen overloop en geen LET.

Meer om op te letten

  • De overloop heeft E2:G2 leeg nodig, anders toont D2 #OVERLOPEN!. Een contract met meer facturen dan vrije kolommen loopt tegen de gegevens in de volgende kolom aan.
  • Geef je aantal_maanden een bereik in plaats van een matrix, zoals ZELFDE.DAG(begin; D1:G1), dan kan Excel #WAARDE! teruggeven, omdat ZELFDE.DAG in dat argument geen bereiken accepteert. REEKS geeft een matrix terug, en dat werkt.

Varianten

=ZELFDE.DAG(B2, REEKS(1, C2))
=ZELFDE.DAG(B2; REEKS(1; C2))

Alleen ZELFDE.DAG voor elk contract: korter, en juist als het contract 'zelfde dagnummer' zegt. R-201 verwacht dan zijn facturen op de 30e van elke maand.

Veelgemaakte fouten

Veelgemaakte fouten
SymptoomOorzaakOplossing
Een getal van vijf cijfers in plaats van een datumDe formule geeft een getal van vijf cijfers, zoals 46461, in plaats van een datum.Het resultaat is een serieel getal en klopt. Geef de cel een datumnotatie.
Maanddatums schuiven op: 15 jan, 14 feb, 16 mrtMaanddatums die je maakt door telkens 30 dagen op te tellen, schuiven op: 15 januari, 14 februari, 16 maart, 15 april.Gebruik ZELFDE.DAG(begin; n), dat per kalendermaand verschuift en de 15e vasthoudt.
Na februari blijft de 31e de 28eElke termijn wordt vanuit de vorige berekend, ZELFDE.DAG(C2; 1), en na een februari is de 31e voorgoed de 28e geworden.Tel altijd vanaf de oorspronkelijke begindatum: ZELFDE.DAG($E$1; n). Het terugbrengen naar het maandeinde geldt dan maar voor één maand.

Gebruikt in combinaties

  • Omzet per maand voor twaalf maanden in één formuleTotaal omzet voor elk van twaalf maanden met één SOMMEN.ALS: REEKS telt de maanden, ZELFDE.DAG maakt van elk getal de eerste dag van een maand, en die datums vormen de criteria.Excel 2021 of nieuwer (Deze combinatie vereist Excel 2021 of nieuwer)