Artikel · Datamodel

Een datumtabel in Power BI voor vorig jaar en cumulatief

Met een datumtabel werken vorig jaar, cumulatief en begroting in elk rapport. Wat erin moet, hoe je hem maakt en hoe je eerlijk vergelijkt met vorig jaar.

Jan-Willem den Hollander · 26 oktober 2026 · 5 minuten lezen

Kort gezegd
  1. Eén regel per dag, zonder gaten, en gemarkeerd als datumtabel
  2. Dan werken TOTALYTD en SAMEPERIODLASTYEAR voor elke measure
  3. Vergelijk vorig jaar tot dezelfde dag, anders vergelijk je appels met peren
Reken uit wat je nodig hebt

Een datumtabel is een tabel met één regel per dag, zonder gaten, gemarkeerd als datumtabel. Met zo’n tabel werken berekeningen als cumulatief tot nu toe en vergelijken met vorig jaar voor elke measure, en kun je begroting en realisatie op dezelfde manier filteren. Bijna elke vraag in een rapportage gaat over tijd. De datumtabel maakt die vragen eenvoudig.

In dit artikel lees je wat er in een datumtabel moet, hoe je hem maakt, welke berekeningen je ermee schrijft en hoe je eerlijk vergelijkt met vorig jaar. Het voorbeeld komt uit de Noordkade-demo. Waar de datumtabel in het model past, staat in de gids over het Power BI-datamodel.

Wat erin moet

Een goede datumtabel voldoet aan vier eisen.

  1. Eén regel per dag. Ook voor weekenden en feestdagen, ook voor dagen zonder boekingen.
  2. Geen gaten. Van de eerste dag van het eerste jaar tot de laatste dag van het laatste jaar.
  3. Alle jaren. Van het oudste jaar in je gegevens tot en met het jaar van de begroting.
  4. Gemarkeerd als datumtabel. Dan weet Power BI dat dit de tabel is voor berekeningen over tijd.

Daarbij horen een paar kolommen om mee te filteren en te groeperen: jaar, maandnummer, maandnaam en een kolom voor jaar en maand samen, voor grafieken over meerdere jaren. Werk je met een boekjaar dat niet in januari begint, dan komt er een kolom voor het boekjaar bij.

Zo maak je hem

In het model van Noordkade Techniek, het fictieve installatiebedrijf uit de demo, is de datumtabel gemaakt in Power Query. De kern is één regel die alle dagen opsomt:

Datums = List.Dates ( #date(2025, 1, 1), Duration.Days ( #date(2026, 12, 31) - #date(2025, 1, 1) ) + 1, #duration(1, 0, 0, 0) )

Daarna voeg je de kolommen voor jaar en maand toe, en markeer je de tabel in Power BI als datumtabel, met de kolom Date als sleutel. Je kunt een datumtabel ook in DAX maken. Het resultaat is hetzelfde. Kies wat je team het best begrijpt.

Leg daarna de relaties. Het grootboek koppel je op de boekdatum. De begroting staat per maand, en koppel je op de eerste dag van die maand. Zo hangen allebei aan dezelfde datumtabel.

Grootboekelke boekingBegrotingper maand en rubriekFTEper maand en afdelingDatumjaar, maand, dagKostenplaatsafdeling, eigenaarRekeningrekeningschemaRubriekregel in de W&Vfeiten: wat er gebeurdedimensies: hoe je kijkt+ 27 measures in ééntabel Kengetallen
De datumtabel is een dimensie in het midden van alles. Grootboek, begroting en fte hangen er allemaal aan, zodat één keuze voor een maand ze alle drie filtert.

Cumulatief en vorig jaar

Met een datumtabel schrijf je berekeningen over tijd in één regel.

Omzet cumulatief = TOTALYTD ( [Omzet], Datum[Date] )
Omzet vorig jaar = CALCULATE ( [Omzet], SAMEPERIODLASTYEAR ( Datum[Date] ) )

De eerste telt de omzet op vanaf 1 januari tot en met de gekozen periode. De tweede geeft de omzet van dezelfde periode een jaar eerder. Ze werken voor elke maand, elke kostenplaats en elk project, omdat ze op de datumtabel rekenen en niet op een vaste periode.

Begint je boekjaar niet op 1 januari, dan geef je bij TOTALYTD de laatste dag van het boekjaar mee, bijvoorbeeld 30 juni. Dan telt het cumulatief vanaf 1 juli.

Omzet cumulatief, jan t/m aug20262025828k1.677k2.567k3.403k4.265k5.184k5.901k6.492kjanfebmrtaprmeijunjulaug
De cumulatieve omzet van Noordkade in 2026 naast 2025. Eind augustus staat 2026 op 6,49 miljoen, 7,5 procent boven vorig jaar. Met een datumtabel is dit één measure.

Eerlijk vergelijken met vorig jaar

Er is één valkuil die bijna iedereen tegenkomt. Halverwege de maand zet SAMEPERIODLASTYEAR de eerste helft van deze maand naast de hele maand van vorig jaar. Het lijkt dan alsof het slecht gaat, terwijl de maand gewoon nog niet voorbij is.

Het model van Noordkade lost dat op door vorig jaar te vergelijken tot dezelfde dag als de laatste boeking:

Realisatie vorig jaar =
VAR _laatste = [Laatste boekdatum]
RETURN CALCULATE ( [Realisatie], SAMEPERIODLASTYEAR ( FILTER ( VALUES ( Datum[Date] ), Datum[Date] <= _laatste ) ) )

Zo vergelijk je altijd dezelfde periode: tot en met 15 september dit jaar naast tot en met 15 september vorig jaar. Dat is eerlijker, en het voorkomt een schrikreactie halverwege de maand.

Bij een verzekeraar zijn er meerdere datums: boekjaar, tekenjaar, offertejaar. In het model moet vastliggen welke datum je waarvoor gebruikt. Daar ontstaan in Excel veel fouten, omdat ook de organisatie zelf niet altijd weet welke datum de juiste is.

Ik bouw daarom altijd één eigen datumtabel, en zet de automatische datumtabellen van Power BI uit. Dan is er één plek waar de kalender staat, en kies je per vraag bewust welke datum je gebruikt.

Maand tot nu toe en vorige maand

Met dezelfde datumtabel schrijf je ook andere vergelijkingen over tijd.

Omzet maand tot nu toe = CALCULATE ( [Omzet], DATESMTD ( Datum[Date] ) )
Omzet vorige maand = CALCULATE ( [Omzet], PREVIOUSMONTH ( Datum[Date] ) )

De eerste is handig halverwege de maand, de tweede voor een vergelijking met de maand ervoor. Bij een bedrijf met een seizoen, zoals een installatiebedrijf met een bouwvak, zegt de vergelijking met vorige maand weinig. Juli is altijd lager dan juni. Gebruik dan liever vorig jaar.

Handige kolommen

Kolom Voorbeeld Waarvoor
Date 15-09-2026 De sleutel voor alle relaties
Jaar 2026 Filteren en vergelijken per jaar
Maandnummer 9 Sorteren van de maanden in de goede volgorde
Maand sep Leesbare labels in grafieken
Jaarmaand 202609 Grafieken over meerdere jaren

Zet de kolom Maand gesorteerd op Maandnummer, anders staat april voor januari.

Begroting per maand

De begroting staat bijna altijd per maand, niet per dag. Koppel hem daarom op de eerste dag van de maand. Kijk je dan per maand, dan kloppen begroting en realisatie. Kijk je per dag, dan staat het hele begrote bedrag op de eerste. Toon de begroting daarom alleen op maandniveau of hoger.

Wil je halverwege de maand weten of je op koers ligt, dan kun je de maandbegroting verdelen over de dagen. Dat is een extra stap, en voor de meeste maandrapportages niet nodig.

Wat ik vaak zie misgaan

  • De automatische datum van Power BI. Power BI maakt standaard verborgen datumtabellen per datumkolom. Dat werkt voor een simpel rapport, maar niet voor een model met meerdere feitentabellen. Zet het uit en maak een eigen datumtabel.
  • Een datumtabel met gaten. Alleen de dagen waarop is geboekt. Dan werken de berekeningen over tijd niet goed.
  • Vorig jaar met een halve maand. Een vergelijking die halverwege de maand een daling laat zien die er niet is. Vergelijk tot dezelfde dag.

Wat je nu kunt doen

  1. Controleer of je model een eigen datumtabel heeft, gemarkeerd als datumtabel.
  2. Kijk of grootboek en begroting allebei aan die tabel hangen. Zo niet, dan kun je ze niet goed naast elkaar zetten.
  3. Schrijf je cumulatief en vorig jaar als measure. Wil je dit samen met je team opzetten? Dan bouwt je team zelf, met mij als coach, vanaf een half dagdeel per week.
Zelf bouwen, met iemand die meekijkt?

Je team bouwt zelf, ik ontwerp het model en review elke stap. Dat kan vanaf een half dagdeel per week.

Reken uit wat je nodig hebt

Veelgestelde vragen

Waarom heb je een datumtabel nodig in Power BI?

Omdat berekeningen over tijd, zoals cumulatief tot nu toe en vergelijken met vorig jaar, een doorlopende reeks datums nodig hebben. Met een eigen datumtabel werken die berekeningen voor elke measure en kun je begroting en realisatie op dezelfde manier filteren.

Hoe maak je een datumtabel in Power BI?

Met Power Query of met DAX. Maak een lijst met één regel per dag over alle jaren die in je gegevens voorkomen, voeg kolommen toe voor jaar en maand, en markeer de tabel als datumtabel.

Hoe vergelijk je met vorig jaar in Power BI?

Met CALCULATE en SAMEPERIODLASTYEAR op de datumtabel. Let erop dat je vergelijkt tot dezelfde dag als de laatste boeking, anders zet je een halve maand naast een hele.