De complete DAX-gids voor Power BI: van CALCULATE tot calculation groups
Power BI architect, LSS Black Belt. 15 jaar ervaring in data & business intelligence.

DAX (Data Analysis Expressions) is de formule-taal die Power BI tot een krachtig analytics-platform maakt. In deze gids leer je alles wat je nodig hebt om van DAX-beginner tot gevorderde gebruiker te groewen — van basisberekeningen tot geavanceerde calculation groups die je rapportages naar een hoger niveau tillen.
Wat is DAX en waarom is het belangrijk?
DAX is de formule-taal die Microsoft ontwikkelde voor het berekenen van waarden in Power BI, Power Pivot en Analysis Services. Het is veel meer dan een simpele rekenmachine — DAX begrijpt de context van je data en past berekeningen automatisch aan op basis van filters, slicers en andere selecties in je rapport.
Het verschil tussen DAX en Excel-formules zit in de manier waarop ze met data omgaan. Waar Excel-formules werken met celreferenties, werkt DAX met hele kolommen en tabellen. Dit maakt DAX extreem krachtig voor het analyseren van grote datasets, maar vereist ook een andere denkwijze.
Een typische DAX-measure ziet er zo uit:
Omzet = SUM(Verkoop[Bedrag])Deze simpele formule berekent de totale omzet, maar past zich automatisch aan wanneer gebruikers filters toepassen. Selecteer een specifieke maand? De measure toont alleen die maand. Filter op een productcategorie? Je ziet alleen die categorie.
De anatomie van DAX: measures, calculated columns en calculated tables
DAX kent drie hoofdtypen berekeningen, elk met hun eigen doel en gedrag. Het begrijpen van deze verschillen is cruciaal voor effectief DAX-gebruik.
Measures: het hart van je analyses
Measures zijn dynamische berekeningen die reageren op de context van je rapport. Ze worden niet opgeslagen in je datamodel maar berekend op het moment dat ze nodig zijn. Dit maakt ze ideaal voor aggregaties zoals sommen, gemiddelden en percentages.
Voorbeelden van goede measure-toepassingen:
- Totale omzet per periode
- Gemiddelde orderwaarde
- Percentage groei ten opzichte van vorig jaar
- Aantal unieke klanten
Calculated columns: statische berekeningen
Calculated columns voegen nieuwe kolommen toe aan je tabellen met waarden die bij het laden van de data worden berekend. Ze zijn statisch — de waarde verandert niet op basis van filters in je rapport.
Gebruik calculated columns voor:
- Het categoriseren van data (bijvoorbeeld leeftijdsgroepen)
- Het berekenen van waarden per rij
- Het combineren van tekstvelden
Calculated tables: nieuwe tabellen maken
Calculated tables creëren volledig nieuwe tabellen op basis van DAX-expressies. Ze zijn handig voor het maken van datumtabellen, lookup-tabellen of gefilterde versies van bestaande tabellen.
CALCULATE: de krachtigste DAX-functie
CALCULATE is het hart van elke Power BI measure en waarschijnlijk de belangrijkste DAX-functie die je moet begrijpen. Deze functie stelt je in staat om de filtercontext van je berekening te wijzigen.
De basissyntax van CALCULATE is:
CALCULATE(expressie, filter1, filter2, ...)Een praktijkvoorbeeld:
Omzet Dit Jaar = CALCULATE(
SUM(Verkoop[Bedrag]),
YEAR(Verkoop[Datum]) = YEAR(TODAY())
)Deze measure berekent alleen de omzet voor het huidige jaar, ongeacht welke datumfilters er in het rapport actief zijn.
CALCULATE kan veel meer dan alleen filters toevoegen. Je kunt er ook filters mee wegnemen, vervangen of combineren. Het begrijpen van hoe CALCULATE werkt met filtercontext is essentieel voor het schrijven van krachtige DAX-measures.
Context in DAX: row context en filter context
DAX werkt met twee soorten context die bepalen welke waarden worden gebruikt in berekeningen. Het begrijpen van deze contexten is cruciaal voor het schrijven van correcte DAX-formules.
Row context
Row context ontstaat wanneer DAX door de rijen van een tabel itereert. Dit gebeurt automatisch in calculated columns en wanneer je functies zoals SUMX of FILTER gebruikt. In row context kun je direct naar kolommen verwijzen zonder aggregatiefuncties.
Filter context
Filter context wordt bepaald door alle actieve filters in je rapport — denk aan slicers, visuele filters en cross-filtering tussen tabellen. Deze context bepaalt welke rijen van je data worden meegenomen in berekeningen.
Het samenspel tussen deze contexten kan complex zijn, vooral wanneer je geavanceerde berekeningen maakt. Functies zoals CALCULATE kunnen de filter context wijzigen, terwijl functies zoals EARLIER toegang geven tot verschillende niveaus van row context.
Variables in DAX: performance en leesbaarheid
Variables maken je measures niet alleen 10x sneller, maar ook veel beter leesbaar. De VAR en RETURN syntax stelt je in staat om complexe berekeningen op te delen in logische stappen.
Een voorbeeld zonder variables:
Percentage van Totaal =
DIVIDE(
SUM(Verkoop[Bedrag]),
CALCULATE(SUM(Verkoop[Bedrag]), ALL(Product))
)Dezelfde berekening met variables:
Percentage van Totaal =
VAR HuidigeBedrag = SUM(Verkoop[Bedrag])
VAR TotaalBedrag = CALCULATE(SUM(Verkoop[Bedrag]), ALL(Product))
RETURN DIVIDE(HuidigeBedrag, TotaalBedrag)Variables bieden meerdere voordelen:
- Betere performance door hergebruik van berekeningen
- Verbeterde leesbaarheid en onderhoudbaarheid
- Makkelijker debuggen van complexe formules
- Minder kans op fouten bij lange formules
Time intelligence: werken met datums en periodes
Time intelligence is een van de krachtigste aspecten van DAX. Deze 12 time intelligence measures zijn essentieel voor elke finance dashboard en laten zien hoe je eenvoudig kunt vergelijken tussen periodes.
De basis van time intelligence in DAX begint met een goede datumtabel. Deze tabel moet:
- Alle datums bevatten in je datarange
- Geen gaten hebben (elke dag moet aanwezig zijn)
- Gemarkeerd zijn als datumtabel in Power BI
- Gerelateerd zijn aan je feitentabellen
Met een goede datumtabel kun je functies gebruiken zoals:
- SAMEPERIODLASTYEAR voor vorig jaar vergelijkingen
- DATEADD voor flexibele periode-verschuivingen
- TOTALYTD voor year-to-date berekeningen
- DATESQTD voor quarter-to-date waarden
Een praktijkvoorbeeld van year-over-year groei:
Groei YoY =
VAR DitJaar = SUM(Verkoop[Bedrag])
VAR VorigJaar = CALCULATE(SUM(Verkoop[Bedrag]), SAMEPERIODLASTYEAR(Datum[Datum]))
RETURN DIVIDE(DitJaar - VorigJaar, VorigJaar)Geavanceerde DAX-patronen voor business analyses
Zodra je de basis van DAX beheerst, kun je complexere analyses maken die echte business value toevoegen. Deze DAX patterns voor budget versus actuals zijn voorbeelden van hoe geavanceerde DAX business problemen oplost.
Ranking en top-N analyses
Voor het maken van top-10 lijsten of ranking-analyses gebruik je functies zoals RANKX en TOPN:
Product Ranking =
RANKX(
ALL(Product[ProductNaam]),
[Totale Omzet],
,
DESC
)What-if parameters en scenario analyses
Disconnected tables zijn de truc voor what-if analyses en stellen gebruikers in staat om verschillende scenario's te verkennen zonder de onderliggende data te wijzigen.
Complexe aggregaties met SUMX en AVERAGEX
Voor berekeningen die per rij moeten worden uitgevoerd voordat ze worden geaggregeerd, gebruik je de X-functies:
Gewogen Gemiddelde =
SUMX(
Product,
Product[Gewicht] * Product[Waarde]
) / SUM(Product[Gewicht])Calculation groups: één measure voor tientallen varianten
Calculation groups stellen je in staat om één measure te maken voor 20 verschillende KPI-varianten. Deze geavanceerde functie elimineert de noodzaak om tientallen vergelijkbare measures te maken.
Calculation groups werken door een nieuwe dimensie toe te voegen aan je model die verschillende berekeningen bevat. In plaats van aparte measures voor 'Omzet', 'Omzet YoY', 'Omzet YTD', etc., maak je één 'Omzet' measure en laat de calculation group de verschillende varianten berekenen.
Voordelen van calculation groups:
- Minder measures in je model
- Consistente berekeningen across alle KPI's
- Makkelijker onderhoud en updates
- Flexibelere rapportages voor eindgebruikers
Calculation groups vereisen wel Tabular Editor voor het maken en bewerken, omdat deze functionaliteit nog niet beschikbaar is in de standaard Power BI interface.
DAX performance optimalisatie
Naarmate je datamodellen groter worden en je DAX-formules complexer, wordt performance steeds belangrijker. Deze 7 technieken maken je modellen aanzienlijk sneller en zorgen voor een betere gebruikerservaring.
Query-plannen begrijpen
DAX Studio is een onmisbare tool voor het analyseren van je DAX-performance. Het toont je precies hoe DAX je formules uitvoert en waar knelpunten zitten.
Materialisatie versus berekening
Niet alles hoeft in DAX berekend te worden. Soms is het efficiënter om berekeningen in Power Query te doen tijdens het laden van data, vooral voor statische waarden die niet afhankelijk zijn van filters.
Relationele optimalisaties
De structuur van je datamodel heeft grote impact op DAX-performance. Star schema's presteren beter dan complexe relationele structuren, en het vermijden van bidirectionele relaties verbetert de snelheid.
DAX best practices en veelgemaakte fouten
Het schrijven van goede DAX-code gaat verder dan alleen werkende formules. Hier zijn de belangrijkste best practices die je moet kennen.
Naamgeving en documentatie
Gebruik duidelijke, beschrijvende namen voor je measures. 'Omzet YTD' is beter dan 'Measure1'. Voeg comments toe aan complexe formules om ze later nog te begrijpen.
Herbruikbaarheid
Maak base measures die je kunt hergebruiken in andere berekeningen. In plaats van dezelfde berekening steeds opnieuw te schrijven, verwijs naar bestaande measures.
Veelgemaakte fouten vermijden
De meest voorkomende DAX-fouten zijn:
- Het gebruik van calculated columns waar measures beter zouden zijn
- Het niet begrijpen van filter context en row context
- Inefficiënte formules die de hele dataset scannen
- Het mixen van aggregatie-niveaus zonder SUMX/AVERAGEX
Tools en resources voor DAX-ontwikkeling
Professionele DAX-ontwikkeling vereist de juiste tools. DAX Studio is essentieel voor performance-analyse en het testen van formules. De DAX Formula Assistant kan helpen bij het genereren van complexe formules en het begrijpen van DAX-syntax.
Voor calculation groups en geavanceerde modelleringen is Tabular Editor onmisbaar. Deze tool geeft je toegang tot functionaliteiten die niet beschikbaar zijn in de standaard Power BI interface.
Online resources zoals sqlbi.com en daxpatterns.com bieden uitgebreide libraries van DAX-patronen en best practices voor veel voorkomende business scenario's.
Samenvatting
DAX is een krachtige taal die Power BI tot een professioneel analytics-platform maakt. De belangrijkste punten uit deze gids:
- Begin met het begrijpen van measures versus calculated columns — measures zijn meestal de betere keuze voor analyses
- CALCULATE is de belangrijkste functie die je moet beheersen voor het manipuleren van filter context
- Variables (VAR/RETURN) maken je formules sneller, leesbaarder en onderhoudbaarder
- Time intelligence vereist een goede datumtabel maar biedt krachtige mogelijkheden voor periode-analyses
- Calculation groups elimineren duplicate measures en maken je model schoner
- Performance optimalisatie wordt cruciaal naarmate je modellen groeien
Volgende stappen
Om je DAX-vaardigheden verder te ontwikkelen, focus je op deze concrete acties:
- Installeer DAX Studio en analyseer de performance van je huidige measures — identificeer de langzaamste berekeningen en optimaliseer deze eerst
- Experimenteer met calculation groups voor je meest gebruikte KPI's — begin met een simpele time intelligence calculation group
- Bouw een library op van herbruikbare base measures die je in verschillende projecten kunt toepassen
Verder lezen
Diepgaande artikelen die op de deelthema's uit deze gids ingaan.

DAX CALCULATE volledig uitgelegd: het hart van elke Power BI measure
CALCULATE is de krachtigste DAX-functie die filter context manipuleert. Leer hoe je hem correct gebruikt voor complexe berekeningen.
Lees meer
Disconnected tables in Power BI: de truc voor what-if analyses en parameters
Disconnected tables maken dynamische parameters mogelijk zonder relaties. De complete technische gids voor what-if analyses in Power BI.
Lees meer
DAX patterns voor budget versus actuals: de 5 measures die elke FP&A dashboard nodig heeft
Leer de essentiële DAX measures voor budget vs actuals analyse. Van variance tot cumulative forecast — stap-voor-stap implementatie.
Lees meer
Calculation groups in Power BI: één measure voor 20 KPI-varianten
Met calculation groups creëer je 20 KPI-varianten vanuit één basismeasure. Leer stap voor stap hoe je DAX measures hergebruikt via Tabular Editor.
Lees meer
Variables in DAX: waarom je measures 10x sneller worden met VAR
DAX variables met VAR en RETURN transformeren langzame measures in snelle berekeningen. Ontdek de engine-optimalisaties die het verschil maken.
Lees meer
Time intelligence in DAX: 12 measures die elke finance dashboard nodig heeft
Leer de 12 essentiële DAX time intelligence measures voor finance dashboards en implementeer ze stap voor stap.
Lees meer