M365Con 2027 – gratis online conferentie · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

DAX-evaluatiecontext onder de knie krijgen: waarom Power BI geen Excel is

By ·

Bij de overstap van traditionele spreadsheettoepassingen naar business intelligence-tools trappen veel analisten in een comfortabele valkuil. Ze gaan ervan uit dat data-analyse-expressies zich gedragen als gewone spreadsheetformules. Maar wie Power BI behandelt als een gigantische werkmap, krijgt vaak kapotte rapporten, onverwachte getallen en enorme frustratie. Om het volledige potentieel van mod

Automatically translated with AI from the original post. Read the English original

Cover: Power BI DAX and Semantic Models with Bernat Agulló Roselló [MVP]

Wanneer je overstapt van traditionele spreadsheettoepassingen naar business intelligence-tools, trappen veel analisten in een comfortabele valkuil. Ze gaan ervan uit dat data-analyse-expressies zich gedragen als gewone spreadsheetformules. Maar wie Power BI behandelt als een gigantische werkmap, krijgt vaak kapotte rapporten, onverwachte getallen en enorme frustratie. Om het volledige potentieel van moderne analyse te benutten, moet je de mechanismen achter evaluatiecontext beheersen. In deze uitgebreide gids onderzoeken we waarom semantische modellen een andere manier van denken vereisen, ontrafelen we rij- en filtercontext en laten we zien hoe je je datamodelleringsvaardigheden naar een hoger niveau tilt.

Inleiding tot evaluatiecontext in Power BI

Power BI is in de kern gebouwd op een krachtige relationele engine die data anders verwerkt dan traditionele cel-gebaseerde software. Wanneer je expressies schrijft met Data Analysis Expressions, kijken je formules niet simpelweg naar een statische cel of een vaste rij erboven of eronder. In plaats daarvan werken ze binnen een onzichtbare omgeving die evaluatiecontext heet. Het begrijpen van deze omgeving is dé belangrijkste mijlpaal voor elke rapportontwikkelaar. Zonder dat begrip raad je eigenlijk waarom je getallen veranderen zodra je een veld in een visual zet. Door evaluatiecontext te beheersen, overbrug je de kloof tussen basisrapportage en geavanceerde business intelligence op enterprise-niveau.

Waarom DAX behandelen als Excel tot kapotte rapporten leidt

De meest voorkomende misvatting onder nieuwe ontwikkelaars is dat formules sequentieel van boven naar beneden berekenen, precies zoals in een spreadsheetrooster. In spreadsheets evalueert een formule in cel C2 rij 2, omdat je die cel expliciet hebt aangewezen. Spreadsheetberekeningen zijn statisch en expliciet.

Power BI-berekeningen zijn daarentegen dynamisch en contextueel. Een measure weet niet vanzelfsprekend op welke rij hij zich bevindt, tenzij je hem dat laat zoeken of tenzij de omliggende visual dat bepaalt. Wanneer je een measure op een matrix, een kaart of een staafdiagram zet, plaatst de software die formule binnen onzichtbare grenzen. Als je negeert hoe die grenzen werken, loop je tegen klassieke valkuilen aan, zoals totalen die niet overeenkomen met de som van hun rijen, of slicers die je berekeningsresultaten volledig wegvagen. Afstand nemen van celverwijzingen is de eerste stap naar het schrijven van waterdichte semantische modellen.

MisvattingUitleg
DAX werkt net als ExcelDAX werkt binnen dynamische, onzichtbare evaluatiecontexten, in tegenstelling tot de rij-voor-rij-berekening van Excel.
Measures geven in alle visuals de juiste waardeMeasures kunnen door de filtercontext in verschillende visuals verschillende resultaten geven, wat tot verwarring leidt.
ALL()-functie verwijdert alle filtersHet ongericht gebruiken van ALL() kan leiden tot het negeren van noodzakelijke filters, wat onjuiste resultaten in rapporten veroorzaakt.

Rijcontext ontrafelen: berekeningen record voor record

Om evaluatiecontext te beheersen, moet je eerst de twee belangrijkste onderdelen begrijpen: rijcontext en filtercontext. Laten we beginnen met rijcontext. Kort gezegd is rijcontext actief wanneer je een expressie evalueert voor één specifiek record tegelijk.

Wanneer heb je met rijcontext te maken? Voornamelijk in twee situaties: wanneer je berekende kolommen maakt en wanneer je iteratorfuncties gebruikt (vaak "X-functies" genoemd, zoals SUMX, AVERAGEX of FILTER). Als je bijvoorbeeld een berekende kolom "Totale regelkosten" maakt door Aantal te vermenigvuldigen met Stukprijs, maakt Power BI voor elk afzonderlijk record in die tabel een rijcontext. Het loopt de tabel rij voor rij door, evalueert de vermenigvuldiging voor die specifieke rij en slaat het resultaat fysiek op in je model.

Berekende kolommen kosten echter geheugen en vergroten je bestandsgrootte. Daarom geven gevorderde ontwikkelaars de voorkeur aan measures. Wanneer je een iteratorfunctie zoals SUMX gebruikt, creëer je tijdelijk programmatisch een rijcontext. SUMX loopt een tabel rij voor rij door, evalueert een expressie voor elke rij en telt die tussenresultaten vervolgens op. Begrip van rijcontext zorgt ervoor dat je berekeningen op het juiste moment toepast: kolommen voor statische attributen op rijniveau en measures voor dynamische aggregaties.

Filtercontext ontrafelen: hoe visuals en slicers resultaten bepalen

Waar rijcontext naar één record tegelijk kijkt, kijkt filtercontext naar het bredere plaatje. Filtercontext is de verzameling van alle actieve filters die op je datamodel zijn toegepast op het moment dat een formule wordt geëvalueerd. Die filters kunnen afkomstig zijn van rapportslicers, filters op paginaniveau, visuele interacties, rijkoppen en expliciete filterfuncties binnen je measures.

Stel je voor dat je een eenvoudige measure hebt die de totale verkoop berekent. Als je deze measure op een lege kaartvisual bekijkt, omvat de filtercontext je volledige datamodel en krijg je de totale verkoop over alle tijden. Maar zodra je een kolom "Regio" in een staafdiagram naast die measure zet, verandert de filtercontext aanzienlijk. Voor elke staaf past Power BI automatisch een verborgen filter toe voor die specifieke regio. De engine evalueert je verkoopmeasure dan alleen voor de rijen die bij Noord-Amerika horen, daarna alleen voor Europa, en zo verder.

Filtercontext maakt je dashboards interactief en dynamisch. Met slicers kunnen gebruikers deze context direct aanpassen, zodat ze data kunnen opdelen op datumbereiken, productcategorieën of klantsegmenten. Leren hoe je filtercontext manipuleert met krachtige functies zoals CALCULATE is wat beginnende rapportbouwers scheidt van echte semantic model-experts.

De brug slaan: evaluatiecontext beheersen voor geavanceerde analyses

Zodra je begrijpt hoe rij- en filtercontext op elkaar inwerken, kun je geavanceerde bedrijfslogica gaan bouwen. Een klassiek geavanceerd patroon is contexttransitie. Contexttransitie treedt op wanneer je een rijcontext gebruikt (binnen een berekende kolom of een iterator) en de functie CALCULATE aanroept. Wanneer CALCULATE wordt uitgevoerd, zet het de huidige rijcontext automatisch om in een gelijkwaardige filtercontext.

Hiermee kun je complexe vragen stellen, zoals: "Wat is voor elke productcategorie in deze tabel de totale verkoop van producten die een bepaalde prijsdrempel overschrijden?" Door te beheren hoe filters doorwerken, bijvoorbeeld met functies als KEEPFILTERS, ALLEXCEPT of variabelen, optimaliseer je je berekeningen op zowel nauwkeurigheid als snelheid.

Bovendien zorgt een goed gestructureerd model met een heldere sterrenschema-opzet ervoor dat filtercontext soepel van je dimensietabellen naar je feittabellen stroomt. Wanneer relaties en evaluatiecontexten goed samenwerken, laden je rapporten snel, blijven ze eenvoudig te onderhouden en leveren ze consequent betrouwbare bedrijfsinzichten op.

Conclusie en volgende stappen voor Power BI-ontwikkelaars

Evaluatiecontext onder de knie krijgen kost tijd, oefening en de bereidheid om spreadsheetgewoontes los te laten. Door te begrijpen hoe rijcontext individuele records evalueert en hoe filtercontext je visuals vormgeeft, krijg je volledige controle over je semantic models. Wil je meer over dit onderwerp leren en expertmeningen horen over businessintelligence-architectuur, bekijk dan zeker de bijbehorende podcastaflevering, Power BI DAX and Semantic Models with Bernat Agulló Roselló [MVP]. Blijf oefenen, test je formules met tools zoals DAX Studio en zoek de wereldwijde community op om je analytics-reis te versnellen!

Power BI Microsoft Excel DAX Agent skill

Related articles

RSS