Ga naar hoofdinhoud

Power BI CALCULATE-tutorial

Leer hoe je de Power BI-functie CALCULATE() gebruikt, met voorbeelden van hoe je die kunt toepassen.
Bijgewerkt 2 okt 2026  · 6 min lezen

Verken met AI

ChatGPTClaudePerplexity

De functie CALCULATE() is waarschijnlijk een van de belangrijkste (en populairste) DAX-functies in Power BI. Hij is makkelijk te gebruiken en enorm veelzijdig, waardoor je je data-analyses kunt uitbreiden en nog waardevollere Power BI-rapporten kunt ontwikkelen.

Deze tutorial richt zich op wat de functie CALCULATE() is en hoe je die gebruikt, en gaat ervan uit dat je de basis van Power BI en DAX al kent.

Wat is de Power BI-functie Calculate()? 

Volgens de Microsoft Power BI-documentatie valt de functie CALCULATE() onder de categorie filterfuncties en wordt die gedefinieerd als "het evalueren van een expressie in een aangepaste filtercontext". Een expressie is in essentie een maat en omvat functies zoals SUM(), AVERAGE() en COUNT(). Deze expressie wordt geëvalueerd in de context van een of meer filters. 

Zoals je weet, kunnen filters ook op een Power BI-rapport worden toegepast door slicers toe te voegen, zonder überhaupt een maat aan te maken met de functie CALCULATE(). Toch zijn er veel use-cases waarin de functie CALCULATE() passender is. Het is vooral handig om die te gebruiken als onderdeel van een andere functie. We zien hieronder hoe dat werkt in het voorbeeld voor het berekenen van het percentage van een totaal.

DAX Calculate() basis­synthax

De basis-DAX-syntaxis van de functie CALCULATE() is:

CALCULATE( <expression> [, <filter1> [, <filter2> [, ...]]])

De functie CALCULATE() bestaat uit 2 hoofdonderdelen:

  • De expressie - dit is het aggregatieonderdeel dat net als een maat wordt opgebouwd met functies als SUM(), AVERAGE() en COUNT().

  • De filters - hiermee kun je een of meer filters opgeven die de context van de aggregatie bepalen.

Er zijn 3 soorten filters die je in de functie CALCULATE() kunt gebruiken:

  • Booleaanse filterexpressies - dit is een eenvoudig filter waarbij het resultaat TRUE of FALSE moet zijn.

  • Tabel­filterexpressies - dit is een complexer filter waarbij het resultaat een tabel is.

  • Filterwijzigingsfuncties - filters zoals ALL en KEEPFILTERS vallen in deze categorie en geven meer controle over de filtercontext die je wilt toepassen.

Je kunt meerdere filters toevoegen aan het filteronderdeel van de functie CALCULATE() door elk filter met een komma te scheiden. Alle filters worden samen geëvalueerd en hun volgorde maakt niet uit. 

Je kunt sturen hoe de filters worden geëvalueerd met logische operatoren. Als je wilt dat aan alle voorwaarden wordt voldaan (TRUE), gebruik je AND (&&). Dit is ook het standaardgedrag van de filters, zoals hierboven beschreven. Met de operator OR (||) hoeft daarentegen maar aan één voorwaarde te worden voldaan (TRUE) om een resultaat te krijgen.

Hoe gebruik je Power BI Calculate()

Om CALCULATE() te gebruiken, voeg je simpelweg een maat toe aan je tabel. Dit doe je via het tabblad Modeling op het lint en vervolgens New measure. 

Selecting New measure in the modeling tab in Power BI

New measure selecteren in het Power BI-tabblad Modeling. Afbeelding door de auteur

Hieronder staat een eenvoudig voorbeeld van de functie CALCULATE() met SUM() om de totale omzet te vinden, gefilterd op Country = United Kingdom. We bespreken dit voorbeeld aan het einde van de tutorial nog eens in meer detail.

UK Revenue = CALCULATE(SUM('Online Retail'[Revenue]), 
               'Online Retail'[Country] = "United Kingdom")

In een tabel zien we dat de maat UK Revenue simpelweg een filter toepast op Country, bovenop de filtercontext die al in de tabel aanwezig is voor Month. De functie CALCULATE() op deze manier gebruiken geeft ons meer fijnmazige controle over welke informatie in onze visual wordt getoond. 

Revenue table in Power BIOmzettabel in Power BI. Afbeelding door de auteur

Een belangrijk punt bij het maken van maten is het volgen van goede datamodelleerpraktijken, met name qua snelheid en optimalisatie van je query’s. Daardoor zijn sommige toepassingen van de functie CALCULATE() sneller of passender dan andere. 

Zo raadt de Microsoft-documentatie aan om de functie FILTER() te vermijden als argument van andere functies (zoals in de functie CALCULATE()). Gebruik waar mogelijk booleaanse expressies, omdat die expliciet hiervoor zijn geoptimaliseerd.

In het bovenstaande voorbeeld gebruikten we een booleaanse expressie om ons filter te definiëren voor Country = United Kingdom. Dit is een snellere en beter geoptimaliseerde aanpak. Hieronder staat daarentegen een voorbeeld met de functie FILTER() waarbij we hetzelfde resultaat krijgen, maar de berekening trager is:

UK Revenue = CALCULATE(SUM('Online Retail'[Revenue]),
              FILTER('Online Retail',
                        'Online Retail'[Country] = "United Kingdom")

Voorbeelden van de Power BI-functie Calculate()

Met een echte e-commercedataset verkennen we een paar belangrijke manieren waarop de functie CALCULATE() kan worden gebruikt om bedrijfsproblemen op te lossen. Om deze tutorial te volgen kun je de e-commercedataset op DataLab gebruiken.

Deze dataset bevat informatie over elke aankoop die een klant doet: het land van aankoop, de productbeschrijving, de datum en tijd van aankoop en de hoeveelheid en prijs van elk gekocht product.

Met behulp van de functie CALCULATE() beantwoorden we de volgende vragen:

  • Hoe verhoudt de totale maandelijkse omzet in het VK zich tot alle andere landen?
  • Welk percentage van de totale omzet komt uit het VK?
  • Wat is de cumulatieve dagelijkse omzet?

Hoe verhoudt de totale maandelijkse omzet in het VK zich tot alle andere landen?

Om deze vraag te beantwoorden, moeten we twee maten maken met de functie CALCULATE(). Eerst gebruiken we een eenvoudige booleaanse filter om een maat te maken die de totale omzet (met een SUM()-functie) in het VK teruggeeft:

UK Revenue = CALCULATE(SUM('Online Retail'[Revenue]),
              'Online Retail'[Country] = "United Kingdom")

Vervolgens maken we een vergelijkbare maat, maar dit keer gebruiken we de functie FILTER(). Deze filterexpressie loopt door elke rij van de kolom Country en retourneert een tabel met de rijen die aan de filtervoorwaarde voldoen. De functie FILTER() is hier nodig omdat we niet simpelweg TRUE of FALSE uit het filter kunnen teruggeven. In plaats daarvan krijgen we een tabel met meerdere waarden.

Non-UK Revenue = CALCULATE(SUM('Online Retail'[Revenue]),
                    FILTER('Online Retail',
                        'Online Retail'[Country] <>"United Kingdom")

Hieruit blijkt dat het VK het grootste deel van de omzet voor deze webwinkel vormt in vergelijking met alle andere landen.

Power BI line graph showing revenue by year and monthLijngrafiek in Power BI met maandelijkse omzet. Afbeelding door de auteur. 

Welk percentage van de totale omzet komt uit het VK?

Dit is een veelvoorkomende vraag voor Power BI-ontwikkelaars en -gebruikers, en een perfect geval om de functie CALCULATE() toe te passen.

Om het percentage van een totaal te vinden, moeten we eerst het totaal kunnen teruggeven zónder dat dit wordt beïnvloed door andere filtercontexten in het rapport. Om dit te bereiken gebruiken we een filtermodifier, de functie ALL(). Met deze functie geven we aan voor welke kolom onze berekening alle filters volledig moet negeren. 

In dit voorbeeld zoeken we het percentage van de totale omzet in het VK. Dat betekent dat onze berekening alle filters in de kolom Country moet negeren.

Total Revenue = CALCULATE(SUM('Online Retail'[Revenue]),
                  ALL('Online Retail'[Country]))

Dit is relevant omdat CALCULATE() kan worden uitgevoerd binnen een filtercontext die al Product[Color] filtert. In dat scenario zorgt de aanwezigheid van ALL ervoor dat de externe filter op Product[Color] wordt genegeerd en vervangen door de nieuwe filter die door CALCULATE() wordt geïntroduceerd. Dit is duidelijk als we in de matrix in plaats van op Brand op Color slicen.

Nu we onze totale omzet kennen, kunnen we een maat opstellen om het percentage van de totale omzet te tonen. Omdat we specifiek geïnteresseerd zijn in het VK, gebruiken we opnieuw de functie CALCULATE(), maar dit keer met een eenvoudige booleaanse filter.

UK % of Revenue = CALCULATE(SUM('Online Retail'[Revenue])/[Total Revenue],
                    'Online Retail'[Country] = "United Kingdom")

Nu zien we dat het VK 84% van de totale omzet van deze webwinkel uitmaakt.

Calculating a percent in Power BIEen percentage berekenen in Power BI. Afbeelding door de auteur

Wat is de cumulatieve dagelijkse omzet?

De cumulatieve omzet kan inzicht geven in de omzettrends. Door deze cumulatieve omzet in een grafiek te plotten, kunnen we ook visueel zien of de omzet over de tijd sneller is gestegen of niet.

Om deze vraag te beantwoorden moeten we een maat maken met de functie CALCULATE() en de volgende filterfuncties: ALLSELECTED(), FILTER() en een evaluatie met de functie MAX().

Cumulative Revenue = CALCULATE(SUM('Online Retail'[Revenue]),
                FILTER( ALLSELECTED('Online Retail'[InvoiceDate]),
                'Online Retail'[InvoiceDate] <= MAX('Online Retail'[InvoiceDate])))

Laten we doornemen waarom deze filters hier belangrijk zijn:

  • De functie FILTER() zorgt ervoor dat elk van de 2 filters die we opgeven rij-voor-rij wordt geëvalueerd en retourneert een tabel in de gevallen waar er een match is.

  • De functie ALLSELECTED() reset de filter op InvoiceDate in de huidige query (in het onderstaande resultaat is de huidige query de lijngrafiek), terwijl externe filters (zoals vanuit slicers) wel toegestaan blijven.

  • De functie MAX() wordt gebruikt als onderdeel van een evaluatie: we willen de omzet optellen voor alle datums die kleiner dan of gelijk zijn aan de huidige datum in de query.

Calculating revenue by date in Power BIOmzet per datum berekenen in Power BI. Afbeelding door de auteur. 

Slotopmerkingen

In deze tutorial bespraken we wat de functie CALCULATE() in Power BI is en hoe je die gebruikt. We pasten de functie CALCULATE() ook toe op een echte e-commercedataset en gebruikten die om enkele belangrijke bedrijfs­vragen te beantwoorden.

CALCULATE() is een van de nuttigste functies in Power BI en je zult die waarschijnlijk vaak nodig hebben bij het bouwen van rapporten en het genereren van diepere inzichten in je data. 

Hopelijk helpt deze tutorial je niet alleen de basis­synthax van CALCULATE() te begrijpen, maar ook hoe dit zich verhoudt tot het oplossen van echte bedrijfsproblemen als Power BI-data-analist. 

Onderwerpen
Power BI
Data Science
Datavisualisatie

Cursussen voor Power BI

Cursus

Introductie tot Power BI

4 uur
824.4K
Beheers de basis van Power BI en leer met deze datavisualisatiesoftware impactvolle rapporten te maken.
Bekijk detailsRight Arrow
Start Cursus
Meer bekijkenRight Arrow
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer BekijkenMeer Bekijken