Skip to main content

Zoals ik in mijn vorige blogpost vertelde, gebruikt Power BI DAX (Data Analysis Expressions) om berekeningen te maken. DAX en Excel-formules lijken op elkaar, maar hebben toch enkele verschillen.

Het grootste verschil zit in de rij- en filtercontext die DAX voor berekeningen gebruikt. Het is dus heel belangrijk om goed te begrijpen hoe die contexten werken om correcte en performante berekeningen te maken.

Filtercontext

In een Power BI-rapport wijzigen slicers, filters en visuals de filtercontext.

  • Een slicer is een visueel selectie-element dat de gebruiker toelaat om op jaar, klant, product enzovoort te filteren.
  • Visuele, pagina- of rapportfilters zijn filters die bij de opzet van het rapport bepaald worden om een datasubset te vormen. Die filters zijn vaak wat verborgen, hoewel het sinds februari 2019 door een nieuwe lay-out gemakkelijker is om te begrijpen hoe je data gefilterd wordt.
  • Visuele filtering houdt de interactie tussen twee of meer visuals in, evenals filtering binnen in de visual.

In figuur 1 zie je een berekening die gefilterd is door de verschillende waarden van het Category-veld. Tot slot zijn er ook DAX-functies die de filtercontext wijzigen.

Kortom, als je je filtercontext bepaalt, doe je dat door alle mogelijke selectie- en filtermogelijkheden te evalueren.

Figuur 1

Rijcontext

DAX-berekeningen doe je in rijcontext. In de voorgaande blogpost vermeldde ik iteratorfuncties. Die berekenen het resultaat van een formule die voor elke rij in een tabel toegepast wordt. Dat is wat we de rijcontext noemen.

Filter- en rijcontext dragen bij tot de magie van DAX. Eerst bepaal je de filtercontext en daarna voer je je berekeningen in rijcontext uit.

Gemakkelijk toch? Nee? Wil je de rij- en filtercontext of het gedrag van je formules beter begrijpen? Dan ben je meer dan welkom in onze Power BI-opleidingen. Kan je je plan al trekken in Power BI, maar heb je nog wat twijfels? Dan staan onze Power BI-consultants voor je klaar om je rapportering mee te optimaliseren.

 

Leave a Reply