Förståelse för rad- och filterkontext
Svep för att visa menyn
Varje DAX-beräkning körs inom en kontext — en definition av vilka rader som är relevanta vid utvärderingstillfället. Utan förståelse för kontext är det omöjligt att förutsäga vad ett mått kommer att returnera eller att felsöka varför det returnerar fel värde.
Radkontext
Radkontext är den kontext som finns inuti en beräknad kolumn. När Power Pivot utvärderar en beräknad kolumn behandlar den varje rad individuellt — DAX vet exakt vilken rad den befinner sig på och använder endast värdena från den raden i beräkningen.
Vad är det? Medvetenheten om den aktuella raden. Formeln kan referera till vilken kolumn som helst i samma tabell och få värdet för just den specifika raden — inte en summa eller ett medelvärde, utan det exakta cellvärdet.
Radkontext existerar inte för mått. När ett mått utvärderas finns det ingen aktuell rad — endast en uppsättning aktiva filter. Därför ger det ett fel att skriva en radnivåetikett som ett mått: måttet har ingen rad att utvärdera mot.
Filterkontext
Filterkontext är den kontext som finns när ett mått utvärderas. Det är den kompletta uppsättningen av aktiva filter på datamodellen vid det tillfälle måttet beräknas — bestämt av allt som pivottabellen för närvarande vet om just den specifika cellen.
Varje cell i en pivottabell har sin egen unika kombination av aktiva filter.
En tom cell indikerar inte ett fel — det betyder att filterkontexten för den cellen returnerar noll matchande rader. Under den aktuella kombinationen av aktiva filter finns det helt enkelt inga data.
De fyra källorna till filterkontext
Filterkontext samlas från fyra oberoende källor samtidigt. Var och en begränsar datamängden ytterligare:
- Radrubriker: varje värde i radområdet applicerar ett filter på sin rad. Region = North och Region = South skapar olika filterkontexter — varje cell i raden North ser endast försäljning för North;
- Kolumnrubriker: varje värde i kolumnområdet lägger till en andra filterdimension. I kombination med radrubriker befinner sig nu varje cell i skärningspunkten mellan två oberoende filter;
- Utsnitt: ett urval i ett utsnitt applicerar sitt filter på varje cell i pivottabellen samtidigt. Om januari väljs i ett månadsutsnitt begränsas alla celler till data för januari oavsett rad- eller kolumnposition;
- Pivottabellfilter: filter som appliceras direkt i pivottabellens filterområde bidrar också till filterkontexten för varje cell och staplas ovanpå redan aktiva rad-, kolumn- och utsnittsfilter.
Uppgift
Steg 1 — Radkontext-experiment
-
Öppna arbetsboken. Gå till Power Pivot → Hantera → Datavy → Sales-fliken.
-
Titta på den beräknade kolumnen Order Size. Den innehåller antingen Large eller Small för varje rad, baserat på Quantity-värdet i den raden.
-
Lägg nu till en andra beräknad kolumn i tabellen Sales med följande formel:
= Sales[Quantity] * Sales[UnitPrice]
-
Döp om den till
Row Revenue. -
Bläddra igenom kolumnen och bekräfta att varje rad visar ett annat värde, nämligen produkten av just den radens Quantity och UnitPrice.
Steg 2 — Svara sedan på följande frågor
- Vilken typ av kontext används när DAX utvärderar Row Revenue för varje rad?
- Är Row Revenue samma som kolumnen Total som redan finns i tabellen Sales?
- Skulle det vara meningsfullt att skapa Row Revenue som ett mått istället för en beräknad kolumn?
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal