LuckyTemplates Dax-variabler er konstante: Hvad betyder det?

Hver gang du har hørt en forklaring på, hvordan du bruger LuckyTemplates DAX-variabler, har du måske hørt udtrykket "variabler er konstanter". Det virker simpelt, men der er en del nuancer og kompleksitet i disse ord. I denne blog vil jeg lede dig igennem, hvad denne sætning betyder, og konsekvenserne for, hvordan dine mål beregnes. At forstå disse begreber er afgørende for at sikre, at dine foranstaltninger giver de ønskede resultater. Du kan se den fulde video af denne tutorial nederst på denne blog.

En variabel i DAX kan virkelig være et hvilket som helst gyldigt DAX-udtryk. Det kan være en værdi, en beregning, et mål eller en variabel, der repræsenterer en tabel, en anden variabel eller en kombination af disse ting.

Der er to dele til en variabel. Der ererklæring, hvor du initialiserer variablen; du giver det et navn og derefter en værdi. Den anden er RETURN- sætningen, som derefter kalder mindst én af de variabler, som du erklærer. Det er ikke som parenteser, hvor du skal have én RETURN-sætning for hver variabel, men du skal have mindst én RETURN-sætning, hvis du har erklæret nogen variable.

Nøglen her er, som jeg sagde før, variabler er konstante. Hvad det betyder er, at når først variable er blevet tildelt en værdi, kan denne værdi ikke ændres før RETURN-sætningen .

Indholdsfortegnelse

Anvendelse af LuckyTemplates DAX-variabler i mål

Lad os tage et kig på et simpelt eksempel, hvor jeg har lande og samlet salg. Målingen for det samlede salg er blot vores mest grundlæggende mål, som eraf linjesalg i salgstabellen.

LuckyTemplates Dax-variabler er konstante: Hvad betyder det?

Lad os sige, at vi ønsker at få det samlede salg for år 2020. I dette datasæt har vi salg for 2019, 2000 og 2021. For at få salget for 2020 skal vi anvende en meget simpel filterbetingelse, som er. Så vi ændrer vores filterkontekst. Vi har vores samlede salgsmål, og så er vores år 2020.

LuckyTemplates Dax-variabler er konstante: Hvad betyder det?

Hvis vi dropper det mål i tabellen, får vi præcis, hvad vi forventer, hvilket er det rigtige tal for 2020.

LuckyTemplates Dax-variabler er konstante: Hvad betyder det?

Hvis vi nu vil anvende variabler på dette, er her en lidt revideret version af den tidligere måling, hvor jeg oprettede en variabel kaldet TotalSales , og bare satte den lig med vores Total Sales-mål.

LuckyTemplates Dax-variabler er konstante: Hvad betyder det?

Hvis vi tænker på det ud fra et algebraisk substitutionssynspunkt, hvis vi bare erstatter det, der tidligere var vores Total Sales-mål her med TotalSales, som er lig med det Total Sales-mål, vil du tro, at det kan være det samme og producere det samme resultat. Men hvis vi tager et kig, og vi dropper det mål i vores tabel, vil vi se, at det ikke giver det samme resultat.

LuckyTemplates Dax-variabler er konstante: Hvad betyder det?

Variablen TotalSales deklareres, og det får værdien af ​​det samlede salg. Lad os sige, at vi er på Moldova-rækken, og den variabel får en værdi af 2,35 mio. Husk nu, at værdien ikke kan ændre sig, før RETURN-sætningen er kaldt. Så når vi går ned for at beregne vores mål i RESULT- variablen, er det, vi har, TotalSales, som er en konstant på 2,35 mio.

Og så anvender vi vores filterkontekst på det, Dates[Year] er lig med 2020 , men det gør ikke noget, for den konstant kan ikke ændres. Så vi kunne sige Dates[Year] er lig med 2019, 2021, og så videre, det vil stadig være de samme 2,35 millioner, fordi det TotalSales nu er låst som en konstant indtil RETURN .

Og når den vender tilbage, så går vi til næste række, og variablen henter værdien af ​​Holland (4,4 mio.). Processen gentager sig selv og låser den som en konstant indtil RETURN-sætningen. Det, vi får, er præcis, hvad vi har i målingen af ​​det samlede salg, ikke i målingen, der filtrerer ned til 2020.

Og så tænker du måske, at det faktisk ikke virker særlig brugbart. I denne sammenhæng er det ikke. Dette er faktisk en almindelig fejl, når folk begynder at bruge variabler . De sætter variablen i den første udtryksdel af CALCULATE-sætningen. Det vil typisk ikke give det resultat, de leder efter, fordi det låser det fast som en konstant værdi.

Brug af LuckyTemplates DAX-variabler inden for iteratorer

Variabler skinner virkelig, når du placerer dem i iteratorer. Jeg vil tale dig igennem denne sag, som er en tidligere værdi. Vi leder efter en dato og derefter en tidligere værdi under en række betingelser.

LuckyTemplates Dax-variabler er konstante: Hvad betyder det?

Husk den måde, du plejede at gøre dette, før variabler kom til DAX, var gennem en funktion kaldet. Men nu fungerer variabler faktisk så godt i denne sammenhæng. Med variabler anbefales det på det kraftigste ikke at bruge den EARLIER-funktion længere.

Så lad os tage et kig på et mere komplekst eksempel, hvor vi har variabler i iteratordelen snarere end i udtryksdelen. Nedenfor er faktisk en sag fra et spørgsmål, der kom op ihvori medlemmet ønskede at se på hver dato inden for et interval og derefter komme med den første forudgående dato, der ikke var en weekend eller en helligdag.

LuckyTemplates Dax-variabler er konstante: Hvad betyder det?

Jeg vil især fokusere på tirsdag den 15. oktober som det bedste eksempel. Det ønskede resultat var at se på den dato. Mandag var Columbus Day, så det var en helligdag, så var de næste foregående dage søndag og lørdag. Så datoen, som vi ønskede at få, var den 11. oktober, som var fredagen.

Hvis du ser på kolonnen Forrige dag/Ingen weekend/Ingen ferie for det, var tirsdag den 11. Det samme gjaldt mandag, søndag og lørdag. Det er det, vi ønsker at opnå som resultat.

Ved siden af ​​tabellen ovenfor er det mål, som vi brugte til dette case-scenarie. Vi erklærede en variabel, der var valgt dato ( VAR SelDate ), og det var bareaf datoen. Det ville hente den 15. oktober i vores variabel og derefter holde det som en konstant indtil RETURN-sætningen.

Derefter evaluerer vi DAX'en udenfor. Hvis vi ser på filtertilstanden, er den ved at fjernefiltrene på Datoer, og så sætter den en række yderligere filtre. Det tager den konstant valgte dato, den 15. oktober, og den siger, giv mig alle datoerne forud for det. Og så, af disse datoer, sørg for, at ingen af ​​disse datoer er en lørdag, søndag eller en helligdag. Så tager detaf de datoer, der blev filtreret.

Du kan se her, at det at have valgt data som en konstant er en slags indsats i jorden, hvorpå alle de andre datoer evalueres enten før eller efter.

Vi har vores valgte dato, og så filtrerer vi alt, der er forud for det. Vi tager det maksimale af den filtrerede tabel. Og så, hvad vi får, er det maksimale den 15., når vi udelukker alle de andre betingelser, er den fredag ​​den 11. Så, hvis vi går ned til RETURN-udsagnet, starter det forfra med den næste dag, den 16. Den fortsætter bare med at iterere gennem tabellen, indtil den når til slutningen af ​​dataene.

Som du kan se i dette tilfælde, når vi sætter variabler ind i iteratordelen i stedet for udtryksdelen, fungerer det nøjagtigt som vi havde planlagt. Det udnytter det faktum, at variable er konstanter.




Konklusion

I denne blog har jeg vist dig, hvordan du anvender LuckyTemplatesi et mål, og hvordan det virker, når variabler placeres i iteratordelen af ​​et mål.

Jeg håber, at disse eksempler forklarer udtrykket "variabler er konstante", hvilket giver dig et indblik i, hvorfor dine foranstaltninger ser ud til at virke, og nogle gange gør de ikke. Jeg håber, at dette giver dig en generel forståelse af, hvad det vigtige begreb betyder.

Alt det bedste!


Løs en dataanalyseudfordring med LuckyTemplates Accelerator

Løs en dataanalyseudfordring med LuckyTemplates Accelerator

Udvid dine rapportudviklingsevner ved at deltage i en dataanalyseudfordring. Acceleratoren kan hjælpe dig med at blive LuckyTemplates-superbruger!

Løbende totaler i LuckyTemplates ved hjælp af DAX

Løbende totaler i LuckyTemplates ved hjælp af DAX

Lær, hvordan du beregner løbende totaler i LuckyTemplates ved hjælp af DAX. Løbende totaler giver dig mulighed for ikke at blive fanget af et individuelt resultat.

LuckyTemplates Dax-variabler er konstante: Hvad betyder det?

LuckyTemplates Dax-variabler er konstante: Hvad betyder det?

Forstå konceptet med variabler i DAX i LuckyTemplates og betydningen af ​​variabler for, hvordan dine mål beregnes.

LuckyTemplates hældningsdiagram: en oversigt

LuckyTemplates hældningsdiagram: en oversigt

Lær mere om det brugerdefinerede visuelle kaldet LuckyTemplates Slope-diagrammet, som bruges til at vise stigning/fald for en enkelt eller flere metrics.

LuckyTemplates farvetemaer til ensartede visualiseringer

LuckyTemplates farvetemaer til ensartede visualiseringer

Opdag farvetemaerne i LuckyTemplates. Disse er afgørende for, at dine rapporter og visualiseringer kan se ud og fungere problemfrit.

Beregning af gennemsnit i LuckyTemplates: Isolering af resultater på ugedage eller weekender ved hjælp af DAX

Beregning af gennemsnit i LuckyTemplates: Isolering af resultater på ugedage eller weekender ved hjælp af DAX

Beregning af et gennemsnit i LuckyTemplates kan gøres på mange måder for at give dig præcise oplysninger til dine virksomhedsrapporter.

LuckyTemplates tema | LuckyTemplates Desktop Standard Theming

LuckyTemplates tema | LuckyTemplates Desktop Standard Theming

Lad os dykke ned i Standard LuckyTemplates-temaer og gennemgå nogle af de funktioner, der er indbygget i selve LuckyTemplates Desktop-applikationen.

LuckyTemplates kortvisuelt: Sådan opretter og tilføjer du en brugerdefineret forklaring i LuckyTemplates

LuckyTemplates kortvisuelt: Sådan opretter og tilføjer du en brugerdefineret forklaring i LuckyTemplates

I dette selvstudie lærer du, hvordan du bygger en brugerdefineret forklaring i en LuckyTemplates-kortvisual for at vise dine foretrukne farver og segmentering.

LuckyTemplates baggrundsbillede til rapporter, der bruger PPT

LuckyTemplates baggrundsbillede til rapporter, der bruger PPT

Lær, hvordan du opsætter et LuckyTemplates-baggrundsbillede ved hjælp af PowerPoint. Dette er en af ​​mine teknikker til at skabe mine LuckyTemplates-rapporter.

Indkøbsbeslutningsmodel og analyse i LuckyTemplates

Indkøbsbeslutningsmodel og analyse i LuckyTemplates

I denne tutorial skal vi dykke ned i nogle indkøbsanalyser i en organisation ved at bruge en interagerende funktion og kraften i datamodellen.