Cursus
Worstel niet met grote datasets. Beheers het groeperen en aggregeren van gegevens met de DAX-functie SUMMARIZE(), waarmee je verborgen patronen blootlegt en betere beslissingen neemt. Met DAX SUMMARIZE() kun je een mini-rapport maken binnen je grotere dataset en zelf kiezen welke informatie je groepeert en welke getallen je optelt. Het is echt, echt ontzettend handig.
Lees verder, dan help ik je DAX SUMMARIZE() tot in detail te begrijpen zodat je het effectief kunt inzetten in allerlei scenario’s. Als je nieuw bent met DAX en meer bronnen wilt, bekijk dan ook onze Power BI DAX-handleiding voor beginners voor een algemener overzicht. Je kunt ook onze cursus Introductie tot DAX in Power BI volgen voor echte training; de cursus bevat basis- maar ook meer geavanceerde technieken, dus hij is geschikt voor professionals van elk niveau.
Wat is de DAX-functie SUMMARIZE()?
De DAX-functie SUMMARIZE() neemt je gegevens en groepeert ze op basis van de kolommen die je kiest. Vervolgens berekent hij totalen of andere samenvattingen voor elke groep.
Stel bijvoorbeeld dat je een grote lijst met verkoopgegevens hebt met informatie over producten, regio’s en verkoopbedragen. Dan kun je SUMMARIZE() gebruiken om al die gegevens per product of per regio te groeperen en de totale verkoop per groep te zien.
Je komt DAX tegen in verschillende Microsoft-tools, zoals:
- Power BI (superpopulair voor bedrijfsanalyse)
- Excel, specifiek in Power Pivot
- SQL Server Analysis Services (SSAS)
Zodra je SUMMARIZE() begrijpt, kun je je gegevens efficiënt organiseren, betere rapporten maken en dieper graven voor waardevolle inzichten. Dus de volgende keer dat je met een grote dataset werkt en snel overzicht wilt, gebruik dan de functie SUMMARIZE().
DAX SUMMARIZE() en gegevens groeperen
Zo maakt de functie SUMMARIZE() samenvattingstabellen op basis van opgegeven kolommen en aggregaties:
SUMMARIZE (<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, <name>, <expression>]…)
In de bovenstaande syntaxis:
-
tableis de brontabel voor je gegevens. -
groupBy_columnNameis de kolom(men) waarop je wilt groeperen. -
nameis de naam voor je nieuwe berekende kolom. -
expressionis de berekening die je wilt uitvoeren.
Je kunt SUMMARIZE() gebruiken met elke tabel of kolom in je dataset, wat het zeer veelzijdig maakt.
Basisgroepering
Laten we een eenvoudig voorbeeld bekijken van basisgroepering met SUMMARIZE().
Importeer eerst de dataset in Power BI. Ga hiervoor naar de tabblad Home > Gegevens ophalen. Selecteer in het dropdownmenu de optie die overeenkomt met je opgeslagen bestand en laad het in. In dit voorbeeld heb ik een dataset met kolommen voor Year, Product en SalesAmount. Deze importeer ik nu in Power BI.

Een tabel met de naam sales. Afbeelding door de auteur.
Zodra de gegevens zijn geïmporteerd, ga je naar het tabblad Modellering > Nieuwe tabel. Voer vervolgens de volgende formule in om te groeperen op de kolom Year en de Total Sales te aggregeren.
SummaryTable =
SUMMARIZE(
sales,
sales[Year],
"Total Sales", SUM(sales[SalesAmount])
)

Formulebalk. Afbeelding door de auteur.
In deze formule:
-
SummarizedTablemaakt een nieuwe tabel. -
SUMMARIZE(begint met het groeperen en samenvatten van gegevens. -
SalesData,is de brontabel. -
SalesData[Year],groepeert op de kolom Year. -
"Total Sales", SUM(SalesData[SalesAmount])maakt een nieuwe kolom met de naam Total Sales die de SalesAmount per jaar optelt.

Samengevatte resultaten. Afbeelding door de auteur.
Hier maakt de functie SUMMARIZE() een samenvattingstabel door de gegevens te groeperen op Year en berekent hij de Total Sales door de SalesAmount per jaar op te tellen.
Meervoudige groepering
SUMMARIZE() kan ook complexere groeperingen aan. Laten we dit begrijpen met een voorbeeld. Hier heb ik een dataset met kolommen voor Year, Product, Region en SalesAmount.

Een tabel met de naam sales_data. Afbeelding door de auteur.
Hier groepeer ik op Year en Region om de Total Sales voor elke combinatie te berekenen.
SummarizedTable =
SUMMARIZE(
sales_data,
sales_data[Year],
sales_data[Region],
"Total Sales", SUM(sales_data[SalesAmount])
)
In deze formule:
-
sales_datais de tabel waarin je gegevens zijn opgeslagen. -
sales_data[Year]is de eerste kolom waarop wordt gegroepeerd, namelijk Year. -
sales_data[Region]is de tweede kolom waarop wordt gegroepeerd: Region. -
"Total Sales"is de aangepaste kolomnaam voor de som van de verkoop. -
SUM(SalesData[SalesAmount])telt de verkoop per groep op.

Meerdere kolommen samengevat. Afbeelding door de auteur.
Hier hielp meervoudige groepering ons om verkooptrends te visualiseren naar zowel Region als Year. De regio’s North en East laten groei zien van 2021 tot 2023. Het South had hoge verkopen in 2022, terwijl het West alleen gegevens heeft voor 2022–2023.
Geavanceerde technieken met DAX SUMMARIZE()
Hoewel SUMMARIZE() handig is, kun je het combineren met andere DAX-functies voor nog geavanceerdere analysemogelijkheden. Laten we dus enkele voorbeelden verkennen om te zien hoe geavanceerde technieken SUMMARIZE() benutten voor complexe aggregaties en samenvattingen.
SUMMARIZE() gebruiken met ROLLUP()
De functie ROLLUP() binnen SUMMARIZE() voegt subtotalen toe aan je samenvattingstabellen om subtotalen over verschillende groeperingsniveaus te tonen en meer gedetailleerde hiërarchische samenvattingen te geven. Als je in finance werkt of een vergelijkbare analysetaak hebt, is dit bijzonder nuttig voor meerlagige aggregaties.
-
Voeg het trefwoord
ROLLUP()toe na je groeperingskolommen inSUMMARIZE(). -
Geef op welke kolommen in de
ROLLUP()-berekening moeten worden opgenomen.
SUMMARIZE(<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, ROLLUP(<groupBy_columnName>[,< groupBy_columnName>…])][, <name>, <expression>]…)
Deze dataset toont bijvoorbeeld de Sales en Quantity van elk Product in een bepaalde Region. Nu moet ik de verkoopsamenvatting vinden per Region en Product, met subtotalen en totalen.

Een tabel met de naam sales_rollup. Afbeelding door de auteur.
Hiervoor gebruik ik de volgende formule:
SalesWithRollup =
SUMMARIZE(
sales_rollup,
ROLLUP(sales_rollup[Region], sales_rollup[Product]),
"Total Sales", SUM(sales_rollup[Sales]),
"Total Quantity", SUM(sales_rollup[Quantity])
)

De functie ROLLUP() gebruiken. Afbeelding door de auteur.
Je ziet het — hier groepeert de functie SUMMARIZE() verkoopgegevens per Region en Product om Total Sales en Total Quantity te berekenen. ROLLUP() voegt subtotalen en een eindtotaal toe en geeft zo een hiërarchische samenvatting van de verkoopprestaties op verschillende detailniveaus.
SUMMARIZE() combineren met ADDCOLUMNS()
Je kunt SUMMARIZE() ook uitbreiden met ADDCOLUMNS() om aangepaste berekende kolommen toe te voegen binnen de gegroepeerde gegevens. Dit is handig als je metingen of complexe berekeningen aan je samenvattingstabel wilt toevoegen.
Ik gebruik bijvoorbeeld dezelfde dataset en pas de volgende formule toe om dit keer een nieuwe kolom toe te voegen:
SalesWithAddColumns =
ADDCOLUMNS(
SUMMARIZE(
sales_rollup,
sales_rollup[Region],
sales_rollup[Product],
"Total Sales", SUM(sales_rollup[Sales]),
"Total Quantity", SUM(sales_rollup[Quantity])
),
"Average Sales per Unit",
DIVIDE(SUM(sales_rollup[Sales]), SUM(sales_rollup[Quantity]), 0)
)

SUMMARIZE() en ADDCOLUMNS() combineren. Afbeelding door de auteur.
Hier groepeert de functie SUMMARIZE() de verkoop per Region en Product om Total Sales en Total Quantity te berekenen. ADDCOLUMNS() berekent vervolgens de Average Sales per Unit door de totale verkoop te delen door de totale hoeveelheid per groep.
Veelvoorkomende DAX-problemen en hoe je ze oplost
Bij het gebruik van SUMMARIZE() kun je op een paar problemen stuiten. Maar maak je geen zorgen, dat overkomt iedereen — ik loop door een paar veelvoorkomende uitdagingen en hoe je ze aanpakt.
Ambiguë resultaten vermijden
Soms geeft SUMMARIZE() resultaten die niet helemaal logisch zijn. Dit gebeurt vaak als je gegevensmodel of relaties niet duidelijk zijn. Zo voorkom je dit:
-
Controleer je gegevensmodel nog eens goed: Zorg dat al je tabellen correct zijn gekoppeld.
-
Gebruik duidelijke kolomnamen: Vermijd dubbele namen over verschillende tabellen.
-
Specificeer tabelnamen: Vermeld bij kolommen de tabelnaam (zoals
Orders[OrderDate]) om verwarring te voorkomen.
Prestatieoverwegingen
Hoewel SUMMARIZE() een handige functie is, kan ze veel resources vergen en vertragen bij het verwerken van grote datasets. Dat betekent dat je rapporten iets langer kunnen ververst worden, vooral als je de functie gebruikt binnen complexe metingen of met veel gegroepeerde kolommen.
Hier zijn enkele tips om je queries snel te houden:
-
Overweeg berekende kolommen: Maak voor vaak gebruikte samenvattingen berekende kolommen in plaats van elke keer
SUMMARIZE()te gebruiken. -
Verwijder onnodige kolommen: Schrap kolommen die niet relevant zijn voor je analyse, zoals primaire sleutels of kolommen die uit andere zijn af te leiden.
-
Gebruik filters: Gebruik DAX
SUMMARIZE()metFilter()vóór het samenvatten om de hoeveelheid te verwerken data te verkleinen.
DAX-alternatieven voor SUMMARIZE()
Hoewel SUMMARIZE() nuttig is, zijn er soms andere tools die het beter doen. Laten we een paar alternatieven bekijken en wanneer je die zou willen gebruiken.
SUMMARIZECOLUMNS()
SUMMARIZECOLUMNS() is een andere DAX-functie die het makkelijker maakt om samenvattingstabellen te maken bij grote data of complexe situaties. Het lijkt op SUMMARIZE(), maar met enkele verschillen.
-
Je kunt filters direct toevoegen aan
SUMMARIZECOLUMNS(), wat het sneller maakt. -
Met
SUMMARIZECOLUMNS()kun je metingen direct opnemen in je output. Extra functies zoalsADDCOLUMNS()zijn niet nodig. -
SUMMARIZECOLUMNS()gaat automatisch om met lege rijen, zodat jij je daar geen zorgen over hoeft te maken.
SUMMARIZECOLUMNS(
<groupBy_columnName> [, <groubBy_columnName>] …, [<filterTable>] … [, <name>, <expression>] …
)
Stel, ik heb een dataset en ik wil salarissen van medewerkers samenvatten per Region en Department terwijl ik filter op medewerkers met de voornaam Raven. Ik gebruik de functie SUMMARIZECOLUMNS() om het totale salaris voor Raven te berekenen over verschillende regio’s en afdelingen.

Een tabel met de naam employee_data. Afbeelding door de auteur.
Hiervoor gebruik ik de volgende formule:
SalarySummary =
SUMMARIZECOLUMNS(
employee_data[Name],
employee_data[Region],
employee_data[Department],
FILTER(employee_data, employee_data[Name] = "Raven"),
"Total Salary", SUM(employee_data[Salary])
)
In bovenstaande formule:
-
SalarySummaryis de naam van de berekende tabel die wordt gemaakt. -
SUMMARIZECOLUMNS(...)maakt een samenvattingstabel op basis van de opgegeven kolommen en berekeningen. -
employee_data[Name], employee_data[Region], employee_data[Department]zijn de kolommen waarop wordt gegroepeerd. -
FILTER(employee_data, employee_data[Name] = "Raven")beperkt de resultaten tot rijen waar de Name Raven is. -
"Total Salary", SUM(employee_data[Salary])maakt een berekende kolom in het resultaat. -
SUM(employee_data[Salary])berekent de som van alle Salary-waarden per groep.

Gebruik SUMMARIZECOLUMNS om de resultaten samen te vatten. Afbeelding door de auteur.
Je ziet de resultaten — de functie SUMMARIZECOLUMNS() filtert de dataset en berekent Ravens salaris totalen over verschillende locaties en afdelingen.
GROUPBY()
GROUPBY() is een andere functie die SUMMARIZE() soms kan vervangen wanneer je alleen gegevens hoeft te groeperen en daarop berekeningen wilt uitvoeren. Het kan efficiënter zijn dan SUMMARIZE() voor eenvoudige groeperingen.
Waar SUMMARIZE() over gerelateerde tabellen heen kan werken, richt GROUPBY() zich op groeperen en aggregeren binnen één enkele tabel, wat de prestaties in bepaalde scenario’s verbetert.
Laten we een voorbeeld bekijken. Ik moet een inventarisdataset maken om items, categorieën, verkochte eenheden en eenheidsprijzen bij te houden, en vervolgens de gegevens per categorie groeperen om de totale omzet per categorie te berekenen.

Inventaristabel. Afbeelding door de auteur.
Hiervoor gebruik ik de volgende formule:
SummaryGroupBY =
GROUPBY(
Inventory,
Inventory[Category],
"Total Revenue",
SUMX(
CURRENTGROUP(),
Inventory[Units Sold] * Inventory[Unit Price]
)
)
In de bovenstaande formule:
-
GROUPBY()groepeert de gegevens op Category. -
CURRENTGROUP()verwijst naar elke categoriegroep (bijv. elektronica, meubels of apparatuur). -
SUMX()berekent de totale omzet per groep door Units Sold te vermenigvuldigen met Unit Price.

GROUPBY gebruiken om de gegevens te groeperen. Afbeelding door de auteur.
Je ziet het — de functie GROUPBY() berekent eenvoudig de Total Revenue door Units Sold te vermenigvuldigen met de Unit Price voor elk item in de categorie en deze individuele omzetten samen te vatten.
Tot slot over DAX SUMMARIZE()
Je weet nu hoe de functie SUMMARIZE() in DAX je helpt om gegevens te groeperen en te analyseren in Power BI, Excel en andere tools. Van basisgroepering tot geavanceerde technieken zoals ROLLUP() en ADDCOLUMNS(), SUMMARIZE() helpt bij het maken van inzichtelijke samenvattingen.
Oefening baart kunst, dus probeer deze technieken met je eigen gegevens om te zien hoe ze je helpen nuttige inzichten te ontdekken. Wil je je DAX-vaardigheden verder aanscherpen, schrijf je dan in voor onze Introductie tot DAX in Power BI om een echte power user te worden.
Ik ben een contentstrateeg die graag complexe onderwerpen eenvoudig maakt. Ik heb bedrijven als Splunk, Hackernoon en Tiiny Host geholpen om boeiende en informatieve content te maken voor hun doelgroep.
DAX Summarize() Veelgestelde vragen
Is SUMMARIZE() hoofdlettergevoelig?
DAX is over het algemeen niet hoofdlettergevoelig, dus de kolomnamen die in SUMMARIZE() worden gebruikt, hoeven niet overeen te komen met de hoofdletters/kleine letters van de originele data.
Wat zijn veelvoorkomende fouten bij het gebruik van SUMMARIZE()?
Veelvoorkomende fouten zijn syntaxisfouten, niet-bestaande kolomnamen en prestatieproblemen bij grote datasets. Controleer altijd de argumenten van de functie en je gegevensmodel om deze problemen te voorkomen.
Hoe verschillen SUMMARIZE() en SUMMARIZECOLUMNS() qua context?
SUMMARIZE() behoudt zowel rij- als filtercontext voor aggregaties, terwijl SUMMARIZECOLUMNS() alleen een filtercontext heeft.

