Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Forståelse av rad- og filterkontekst | Skrive DAX-mål
Excel-datamodellering

Forståelse av rad- og filterkontekst

Sveip for å vise menyen

Hver DAX-beregning kjøres innenfor en kontekst — en definisjon av hvilke rader som er relevante på evalueringspunktet. Uten forståelse for kontekst er det umulig å forutsi hva et mål vil returnere eller å finne ut hvorfor det returnerer feil verdi.

Radkontekst

Radkontekst er konteksten som eksisterer inne i en beregnet kolonne. Når Power Pivot evaluerer en beregnet kolonne, behandles hver rad individuelt — DAX vet nøyaktig hvilken rad den er på og bruker kun verdiene fra den raden i beregningen.

Hva er det? Bevisstheten om nåværende rad. Formelen kan referere til hvilken som helst kolonne i samme tabell og motta verdien for akkurat den raden — ikke en sum eller et gjennomsnitt, men den eksakte celleverdien.

Note
Merk

Radkontekst eksisterer ikke for mål. Når et mål evalueres, finnes det ingen nåværende rad — kun et sett med aktive filtre. Dette er grunnen til at det oppstår en feil hvis man skriver en radnivå-etikett som et mål: målet har ingen rad å evaluere mot.

Filterkontekst

Filterkontekst er konteksten som eksisterer når et mål evalueres. Det er det komplette settet med aktive filtre på datamodellen i det øyeblikket målet beregnes — bestemt av alt pivottabellen for øyeblikket vet om den spesifikke cellen.

Hver celle i en pivottabell har sin egen unike kombinasjon av aktive filtre.

En tom celle indikerer ikke en feil — det betyr at filterkonteksten for den cellen gir null treffende rader. Med den nåværende kombinasjonen av aktive filtre finnes det rett og slett ingen data.

De fire kildene til filterkontekst

Filterkontekst akkumuleres samtidig fra fire uavhengige kilder. Hver av dem snevrer inn datasettet ytterligere:

  1. Radelabeler: hver verdi i radområdet legger til et filter på sin rad. Region = North og Region = South skaper ulike filterkontekster — hver celle i North-raden ser kun North-salg;
  2. Kolonnelabeler: hver verdi i kolonneområdet legger til en andre filterdimensjon. Kombinert med radelabeler befinner hver celle seg nå i skjæringspunktet mellom to uavhengige filtre;
  3. Utsnitt: et valg i en utsnittkontroll legger sitt filter på alle celler i pivottabellen samtidig. Å velge January fra en måned-utsnitt begrenser alle celler til January-data uavhengig av rad- eller kolonneposisjon;
  4. Pivottabellfiltre: filtre som brukes direkte i filterområdet til pivottabellen bidrar også til filterkonteksten for hver celle, og legger seg oppå eventuelle rad-, kolonne- og utsnittfiltre som allerede er aktive.

Oppgave

Steg 1 — Eksperiment med radkontekst

  • Åpne arbeidsboken. Gå til Power Pivot → Behandle → Datavisning → Sales-fanen.

  • Se på den beregnede kolonnen Order Size. Den inneholder enten Large eller Small for hver rad, basert på Quantity-verdien i den raden.

  • Legg nå til en andre beregnet kolonne i Sales-tabellen ved å bruke følgende formel:

= Sales[Quantity] * Sales[UnitPrice]

  • Gi den navnet Row Revenue.

  • Bla gjennom kolonnen og bekreft at hver rad viser en forskjellig verdi, nemlig produktet av den spesifikke radens Quantity og UnitPrice.

Steg 2 — Svar deretter på følgende spørsmål

  1. Hvilken type kontekst brukes når DAX evaluerer Row Revenue for hver rad?
  2. Er Row Revenue det samme som Total-kolonnen som allerede finnes i Sales-tabellen?
  3. Ville det vært fornuftig å opprette Row Revenue som et mål i stedet for en beregnet kolonne?
question mark

Hvilket av følgende utsagn beskriver mest presist forskjellen mellom radkontekst og filterkontekst i DAX?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 4

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 4. Kapittel 4
some-alt