Inzicht in Rij- en Filtercontext
Veeg om het menu te tonen
Elke DAX-berekening wordt uitgevoerd binnen een context — een definitie van welke rijen op het moment van evaluatie relevant zijn. Zonder begrip van context is het onmogelijk te voorspellen wat een maatregel zal retourneren of te achterhalen waarom deze een onjuiste waarde oplevert.
Rijcontext
Rijcontext is de context die bestaat binnen een berekende kolom. Wanneer Power Pivot een berekende kolom evalueert, verwerkt het elke rij afzonderlijk — DAX weet precies op welke rij het zich bevindt en gebruikt alleen de waarden uit die specifieke rij in de berekening.
Wat is het? Het bewustzijn van de huidige rij. De formule kan naar elke kolom in dezelfde tabel verwijzen en ontvangt de waarde voor die specifieke rij — niet een som of gemiddelde, maar de exacte celwaarde.
Rijcontext bestaat niet voor maatregelen. Wanneer een maatregel wordt geëvalueerd, is er geen huidige rij — alleen een set actieve filters. Daarom geeft het schrijven van een rij-niveau label als maatregel een foutmelding: de maatregel heeft geen rij om tegen te evalueren.
Filtercontext
Filtercontext is de context die bestaat wanneer een maatregel wordt geëvalueerd. Dit is de volledige set actieve filters op het datamodel op het moment dat de maatregel wordt berekend — bepaald door alles wat de draaitabel op dat moment weet over die specifieke cel.
Elke cel in een draaitabel heeft zijn eigen unieke combinatie van actieve filters.
Een lege cel duidt niet op een fout — het betekent dat de filtercontext voor die cel geen overeenkomende rijen oplevert. Onder de huidige combinatie van actieve filters is er simpelweg geen data.
De vier bronnen van filtercontext
Filtercontext wordt gelijktijdig opgebouwd uit vier onafhankelijke bronnen. Elke bron beperkt de dataset verder:
- Rijlabels: elke waarde in het rijgebied past een filter toe op zijn rij. Region = North en Region = South creëren verschillende filtercontexten — elke cel in de rij North ziet alleen North sales;
- Kolomlabels: elke waarde in het kolomgebied voegt een tweede filterdimensie toe. In combinatie met rijlabels bevindt elke cel zich nu op het snijpunt van twee onafhankelijke filters;
- Slicers: een selectie in een slicer past zijn filter gelijktijdig toe op elke cel in de draaitabel. Het selecteren van January in een maand-slicer beperkt alle cellen tot January data, ongeacht hun rij- of kolompositie;
- Draaitabelfilters: filters die direct in het filtergebied van de draaitabel worden toegepast, dragen ook bij aan de filtercontext van elke cel, bovenop reeds actieve rij-, kolom- en slicerfilters.
Taak
Stap 1 — Rijcontext-experiment
-
Open het werkboek. Ga naar Power Pivot → Beheren → Gegevensweergave → tabblad Sales.
-
Bekijk de berekende kolom Order Size. Deze bevat voor elke rij Large of Small, gebaseerd op de waarde van Quantity in die rij.
-
Voeg nu een tweede berekende kolom toe aan de Sales-tabel met de volgende formule:
= Sales[Quantity] * Sales[UnitPrice]
-
Hernoem deze naar
Row Revenue. -
Scroll door de kolom en controleer dat elke rij een andere waarde toont, namelijk het product van de Quantity en UnitPrice van die specifieke rij.
Stap 2 — Beantwoord vervolgens de volgende vragen
- Welk type context wordt gebruikt wanneer DAX Row Revenue voor elke rij evalueert?
- Is Row Revenue hetzelfde als de kolom Total die al in de Sales-tabel staat?
- Zou het logisch zijn om Row Revenue als een maatregel in plaats van een berekende kolom te maken?
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.