Når DAX beregner noget i LuckyTemplates, fungerer det via en to-trins proces. I første omgang evaluerer den den kontekst, den befinder sig i. Når den har gjort det, beslutter den sig så for, hvordan jeg skal beregne disse resultater, og det er her, de to andre sammenhænge spiller ind.
I denne særlige artikel vil vi fokusere på. Jeg vil her gennemgå et simpelt eksempel for at forklare, hvad det egentlig betyder.
Forståelse af evalueringskontekst gennem eksempler
Det, vi har her, er en simpel tabel, der måler antallet eller mængden af det, vi har solgt pr. dag.
Lad os hurtigt vurdere, hvad denne formel gør. Det opsummerer kolonnen Antal i salgstabellen.
Når vi går til salgstabellen, vil vi se, at målingen tæller Mængde-kolonnen op som 1 for alle rækker.
For at få resultaterne i kolonnen Samlet mængde solgt, er formlen, vi bruger, nøjagtig den samme. Intet ændrer sig for nogen af disse resultater. Det eneste, der ændrer sig i starten, er evalueringskonteksten .
For hver enkelt række har vi en anden evalueringskontekst . Og derfor får vi et andet resultat for hver enkelt række.
Hvad er filterudbredelse?
Nu, hvad der sker bag kulisserne er, at for hver eneste række her, bliver der placeret et filter på dataene.
Lad os gå tilbage til datatabellen for vores model. Med evalueringskonteksten kommer kolonnen Dato fra tabellen Datoer. Så et filter bliver placeret på Dato-kolonnen her.
Når vi placerer dette filter, flyder det ned til dette forhold med Salgstabellen og filtrerer automatisk tabellen. Det er det, du kalder filterudbredelse.
Ethvert filter, der flyder fra den ene side ned til minisiden, vil filtrere det bord.
Så i dette særlige eksempel starter konteksten fra tabellen Datoer og flyder derefter automatisk ned til tabellen Salg. Og derfor får vi et forskelligt resultat for hver enkelt række.
Når du auditerer eller evaluerer, hvad en formel gør, skal du tænke på evalueringskonteksten hver eneste gang.
Dette skyldes, at alt altid starter med evalueringskonteksten. Dette er vigtigt, når du begynder at udvikle flere og mere avancerede DAX-formler.
Evalueringskontekst ved at skrive avanceret formel
En anden stor ting ved evalueringskonteksten er , at det er den sande kraft bagformel.
Det giver dig mulighed for at få så mange resultater hurtigt ved at skrive enkle formler.
Det samme kan også siges om at skrive avancerede formler. Du kan bruge en avanceret formel, sætte den ind i en anden evalueringskontekst og få mange forskellige resultater meget hurtigt.
Så vi har lige lavet en lille ændring her og tilføjet produktnavn til vores første tabel. DAX-formlen ændrede sig overhovedet ikke, men det gjorde evalueringskonteksten . Det er derfor, vi har forskellige resultater her.
Den samme proces fungerer også i dette eksempel, hvor evalueringskonteksten for disse resultater starter fra tabellen Produkter og går gennem kolonnen Produktnavn.
Denne proces vil filtrere hver enkelt række. Så uanset hvilket specifikt produktnavn der bruges, vil det filtrere hele vejen ned gennem relationen og derefter også filtrere den underliggende salgstabel.
Konklusion
Dette er blot et kort overblik over, hvad evalueringskontekst er. Alt du skal gøre ier at ændre konteksten, og du vil få et meget andet resultat.
Det er alvorligt vigtigt at forstå, hvordan dette fungerer, fordi du i dit sind er nødt til at tænke over, hvad formlens aktuelle evalueringskontekst er.
Det vil resultere i en forståelse af, hvorfor du får et specifikt resultat i en bestemt kontekst.
Nogle anbefalede links til dig, så du kan lære mere om anvendelsen af de tre kontekster inde i LuckyTemplates: