Rijcontext en filtercontext in DAX
Rijcontext en filtercontext in DAX begrijpen met SUMX, CALCULATE, context transition, measures, een stermodel en praktijkcontroles.
Lees artikel →Vind de juiste training en kies het niveau dat bij je past.
Samenwerken & moderne werkplek
Dagelijks productiever werken
Data omzetten in inzichten
Copilot, AI en slimme processen
Ontdek trainingen voor jouw team, afgestemd op jullie dagelijkse praktijk.
Samenwerken & moderne werkplek
Dagelijks productiever werken
Data omzetten in inzichten
Copilot, AI en slimme processen
Ontdek wie we zijn, hoe we werken en wat anderen van onze trainingen vinden.
Berekeningen en measures met DAX.
Rijcontext en filtercontext in DAX begrijpen met SUMX, CALCULATE, context transition, measures, een stermodel en praktijkcontroles.
Lees artikel →DAX-measures en berekende kolommen in Power BI uitgelegd: filtercontext, opslag, voorbeelden, DAX-formules en kwaliteitscontroles.
Lees artikel →Context transition is de omzetting van een bestaande rijcontext naar een filtercontext wanneer CALCULATE in het juiste scenario wordt gebruikt. Daardoor kan een aggregatie worden geëvalueerd voor de kenmerken van de huidige rij. Dit mechanisme is belangrijk in berekende kolommen en iteratoren. Een verwijzing naar een bestaande measure binnen rijcontext kan eveneens automatisch relevante context transition activeren. Test de uitkomst altijd met bekende records.
Een measure wordt in iedere context opnieuw geëvalueerd. De totaalrij van een matrix heeft meestal een andere filtercontext dan de afzonderlijke detailrijen. Bij gemiddelden, percentages en andere niet-additieve berekeningen kan het juiste totaal daarom afwijken van het optellen van zichtbare celwaarden. Controleer eerst de zakelijke definitie van de KPI; probeer het resultaat niet zonder analyse met extra SUMX- of ALL-constructies te forceren.
Rijcontext betekent dat een DAX-uitdrukking toegang heeft tot de waarden van de huidige rij, bijvoorbeeld in een berekende kolom of binnen de iterator SUMX. De formule FactSales[Quantity] * FactSales[UnitPrice] kan zo een bedrag per transactieregel berekenen. Rijcontext filtert echter niet automatisch alle geaggregeerde tabellen. Voor zulke berekeningen is ook de filtercontext en soms context transition relevant.
Filtercontext bepaalt welke gegevens tijdens de evaluatie van een DAX-expressie meetellen. Die context kan ontstaan via slicers, visualfilters, paginafilters, relaties en bepaalde DAX-functies. De measure SUM(FactSales[LineAmount]) kan daardoor op een kaart totale omzet tonen en in een matrix per productgroep verschillende waarden. De formuletekst blijft gelijk; de selectie van relevante factregels verandert.
SUM telt waarden uit een bestaande numerieke kolom op. SUMX doorloopt de rijen van een tabel en berekent per rij een uitdrukking, bijvoorbeeld hoeveelheid maal eenheidsprijs, waarna die resultaten worden opgeteld. SUMX creëert rijcontext binnen de iterator. Kies op basis van het benodigde rekenmodel en de performance; een vooraf gecontroleerd bedrag uit het bronsysteem kan soms passender zijn dan opnieuw berekenen.
Een measure is meestal passend wanneer een waarde moet reageren op de actuele filters en slicers, zoals omzet per regio of marge per maand. Een berekende kolom is geschikt voor een vaste eigenschap van een afzonderlijke rij die als veld in het model nodig is. De keuze beïnvloedt de modelgrootte en het berekenmoment. Test de uitkomst daarom op verschillende detailniveaus en niet alleen op één totaal.
In een gebruikelijk Import-model wordt een berekende kolom verwerkt en opgeslagen bij gegevensverwerking of verversing. Een slicer verandert de opgeslagen rijwaarde niet. Een measure daarentegen wordt opnieuw geëvalueerd binnen de actuele filtercontext van het rapport. Bij andere opslagmodi kunnen aanvullende beperkingen bestaan, waardoor het ontwerp altijd op het daadwerkelijke model moet worden getoetst.
Een margepercentage is meestal niet additief. Het totale margepercentage moet worden berekend als totale brutomarge gedeeld door totale omzet, niet als som van de margepercentages van afzonderlijke orderregels. Een measure met DIVIDE kan de correcte verhouding onder de actieve filters bepalen. Controleer daarnaast wat bij nulomzet, retouren en ontbrekende kostengegevens als uitkomst gewenst is.
Ja. Extra opgeslagen kolommen kunnen de modelgrootte vergroten, vooral bij veel unieke tekstwaarden. Dat betekent niet dat measures altijd sneller zijn; complexe measures kunnen querytijd kosten. Meet de werkelijke prestaties en overweeg of een afgeleid kenmerk beter in de bron of in Power Query kan worden gemaakt. Een keuze op basis van alleen formulelengte is onvoldoende.
Vergelijk de uitkomst met betrouwbare brongegevens op meerdere niveaus, bijvoorbeeld totaal, jaar, regio en productgroep. Test ook lege selecties, retouren en onverwachte combinaties van filters. Controleer relaties en filterrichting in het stermodel. AI of Copilot kan een maatvoorstel doen, maar inhoudelijke definities en mogelijke contextfouten moeten onafhankelijk worden gecontroleerd.
Er is geen specifieke cursus aan dit onderwerp gekoppeld. Bespreek de mogelijkheden voor een maatwerktraining.