LuckyTemplates Dax-variabler er konstante: Hva betyr dette?

Hver gang du har hørt en forklaring på hvordan du bruker LuckyTemplates DAX-variabler, har du kanskje hørt uttrykket "variabler er konstanter". Det virker enkelt, men det er en god del nyanser og kompleksitet i disse ordene. I denne bloggen vil jeg lede deg gjennom hva denne setningen betyr, og implikasjonene for hvordan målene dine beregnes. Å forstå disse konseptene er avgjørende for å sikre at tiltakene dine gir de ønskede resultatene. Du kan se hele videoen av denne opplæringen nederst på denne bloggen.

En variabel i DAX kan virkelig være et hvilket som helst gyldig DAX-uttrykk. Det kan være en verdi, en beregning, et mål eller en variabel som representerer en tabell, en annen variabel eller en kombinasjon av disse tingene.

Det er to deler til en variabel. Det ererklæring der du initialiserer variabelen; du gir den et navn og deretter en verdi. Den andre er RETURN- setningen, som deretter kaller opp minst én av variablene du deklarerer. Det er ikke som en parentes der du må ha én RETURN-setning for hver variabel, men du må ha minst én RETURN-setning hvis du deklarerte noen variabler.

Nøkkelen her er at, som jeg sa før, variabler er konstante. Hva det betyr er at når variabler er tilordnet en verdi, kan ikke verdien endres før RETURN-setningen .

Innholdsfortegnelse

Bruk av LuckyTemplates DAX-variabler i mål

La oss ta en titt på et enkelt eksempel der jeg har land og totalt salg. Totalt salg -målet er bare vårt mest grunnleggende mål, som erav linjesalg i salgstabellen.

LuckyTemplates Dax-variabler er konstante: Hva betyr dette?

La oss si at vi ønsker å få det totale salget for år 2020. I dette datasettet har vi salg for 2019, 2000 og 2021. For å få salget for 2020, må vi bruke en veldig enkel filterbetingelse, som er. Så vi endrer filterkonteksten vår. Vi har vårt mål for totalt salg, og da er året vårt 2020.

LuckyTemplates Dax-variabler er konstante: Hva betyr dette?

Hvis vi slipper det målet inn i tabellen, får vi akkurat det vi forventer, som er det riktige tallet for 2020.

LuckyTemplates Dax-variabler er konstante: Hva betyr dette?

Hvis vi nå vil bruke variabler på dette, er her en litt revidert versjon av forrige mål, der jeg opprettet en variabel kalt TotalSales , og bare satte den lik vårt Total Sales-mål.

LuckyTemplates Dax-variabler er konstante: Hva betyr dette?

Hvis vi tenker på det fra synspunktet om algebraisk substitusjon, hvis vi bare erstatter det som tidligere var vårt Total Sales-mål her med Total Sales, som er lik det Total Sales-målet, vil du tro at det kan være det samme og produsere det samme resultat. Men hvis vi tar en titt, og vi slipper det målet inn i tabellen vår, vil vi se at det ikke gir det samme resultatet.

LuckyTemplates Dax-variabler er konstante: Hva betyr dette?

Variabelen TotalSales er deklarert, og som får verdien av totalt salg. La oss si at vi er på Moldova-raden, og den variabelen får en verdi på 2,35 millioner. Husk nå at verdien ikke kan endres før etter at RETURN-setningen er kalt. Så når vi går ned for å beregne vårt mål i RESULTAT- variabelen, er det vi har TotalSales, som er en konstant på 2,35 millioner.

Og så bruker vi filterkonteksten vår på den, Dates[Year] er lik 2020 , men det spiller ingen rolle fordi den konstanten ikke kan endres. Så vi kan si Dates[Year] tilsvarer 2019, 2021, og så videre, det kommer fortsatt til å være de samme 2,35 millioner fordi TotalSales nå er låst som en konstant frem til RETURN .

Og når den kommer tilbake, går vi til neste rad, og variabelen henter verdien av Nederland (4,4 millioner). Prosessen gjentar seg selv, og låser den inn som en konstant til RETURN-setningen. Det vi får er akkurat det vi har i Total Sales-målet, ikke i målet som filtrerer ned til 2020.

Og så tenker du kanskje at det faktisk ikke virker veldig nyttig. I denne sammenhengen er det ikke det. Dette er faktisk en vanlig feil når folk begynner å bruke variabler . De setter variabelen i den første uttrykksdelen av CALCULATE-setningen. Det vil vanligvis ikke gi resultatet de leter etter fordi det låser det som en konstant verdi.

Bruke LuckyTemplates DAX-variabler innen iteratorer

Variabler skinner virkelig når du plasserer dem i iteratorer. Jeg skal snakke deg gjennom denne saken, som er en tidligere verdi. Vi ser etter en dato, og deretter en tidligere verdi underlagt en rekke betingelser.

LuckyTemplates Dax-variabler er konstante: Hva betyr dette?

Husk at måten du pleide å gjøre dette før variabler kom til DAX var gjennom en funksjon kalt. Men nå fungerer faktisk variabler så bra i denne sammenhengen. Med variabler anbefales det på det sterkeste å aldri bruke den EARLIER-funksjonen lenger.

Så, la oss ta en titt på et mer komplekst eksempel, der vi har variabler i iteratordelen i stedet for i uttrykksdelen. Nedenfor er faktisk en sak fra et spørsmål som dukket opp ider medlemmet ønsket å se på hver dato innenfor et område, og deretter komme opp med den første tidligere datoen som ikke var en helg eller en helligdag.

LuckyTemplates Dax-variabler er konstante: Hva betyr dette?

Jeg vil spesielt fokusere på tirsdag 15. oktober som det viktigste eksempelet. Det ønskede resultatet var å se på den datoen. Mandag var Columbus Day, så det var ferie, så var de neste dagene før søndag og lørdag. Så datoen vi ønsket å få var 11. oktober, som var fredagen.

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

Ved siden av tabellen ovenfor er målet vi brukte for dette case-scenarioet. Vi erklærte en variabel som ble valgt dato ( VAR SelDate ), og det var bareav datoen. Den vil plukke opp 15. oktober i variabelen vår og deretter holde den som en konstant inntil RETURN-setningen.

Deretter evaluerer vi DAX-en utenfor innsiden. Hvis vi ser på filtertilstanden, blir den fjernetfiltrene på Datoer, og deretter settes en rekke ekstra filtre. Det tar den konstante valgte datoen, 15. oktober, og den sier, gi meg alle datoene før det. Og så, av disse datoene, sørg for at ingen av disse datoene er en lørdag, søndag eller en helligdag. Deretter tar detav disse datoene som ble filtrert.

Du kan se her at det å ha valgt data som en konstant er en slags innsats i bakken som alle de andre datoene blir evaluert enten før eller etter.

Vi har valgt dato, og så filtrerer vi alt som er før det. Vi tar maks for den filtrerte tabellen. Og så, det vi får er maks den 15. når vi tar ut alle de andre forholdene, er den fredag ​​11. Så, hvis vi går ned til RETURN-setningen, begynner den på nytt med neste dag, den 16. Den fortsetter bare å iterere gjennom tabellen til den kommer til slutten av dataene.

Som du kan se i dette tilfellet, når vi legger variabler inn i iteratordelen i stedet for uttrykksdelen, fungerer det akkurat som vi planla. Den utnytter det faktum at variabler er konstanter.




Konklusjon

I denne bloggen har jeg vist deg hvordan du bruker LuckyTemplatesi et mål og hvordan det fungerer når variabler plasseres i iteratordelen av et mål.

Jeg håper at disse eksemplene forklarer uttrykket "variabler er konstante", og gir deg litt innsikt i kanskje hvorfor tiltakene dine ser ut til å fungere og noen ganger ikke. Jeg håper dette gir deg en generell forståelse av hva det viktige konseptet betyr.

Beste ønsker!


Løs en dataanalyseutfordring med LuckyTemplates Accelerator

Løs en dataanalyseutfordring med LuckyTemplates Accelerator

Utvid rapportutviklingsferdighetene dine ved å bli med i en dataanalyseutfordring. Akseleratoren kan hjelpe deg å bli en LuckyTemplates-superbruker!

Løpende totaler i LuckyTemplates ved hjelp av DAX

Løpende totaler i LuckyTemplates ved hjelp av DAX

Lær hvordan du beregner løpende totaler i LuckyTemplates ved hjelp av DAX. Løpende totaler lar deg ikke bli fanget opp i et individuelt resultat.

LuckyTemplates Dax-variabler er konstante: Hva betyr dette?

LuckyTemplates Dax-variabler er konstante: Hva betyr dette?

Forstå konseptet med variabler i DAX i LuckyTemplates og implikasjonene av variabler for hvordan målene dine beregnes.

LuckyTemplates Slope Chart: En oversikt

LuckyTemplates Slope Chart: En oversikt

Lær mer om det tilpassede visuelle bildet kalt LuckyTemplates Slope-diagram, som brukes til å vise økning/reduksjon for en enkelt eller flere beregninger.

LuckyTemplates fargetemaer for enhetlige visualiseringer

LuckyTemplates fargetemaer for enhetlige visualiseringer

Oppdag fargetemaene i LuckyTemplates. Disse er avgjørende for at rapportene og visualiseringene dine skal se ut og fungere sømløst.

Beregne gjennomsnitt i LuckyTemplates: Isolere ukedag- eller helgeresultater ved hjelp av DAX

Beregne gjennomsnitt i LuckyTemplates: Isolere ukedag- eller helgeresultater ved hjelp av DAX

Å beregne et gjennomsnitt i LuckyTemplates kan gjøres på mange måter for å gi deg nøyaktig informasjon for bedriftsrapportene dine.

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

La oss fordype oss i Standard LuckyTemplates-tema, og gjennomgå noen av funksjonene som er innebygd i selve LuckyTemplates Desktop-applikasjonen.

LuckyTemplates Map Visual: Hvordan lage og legge til en egendefinert legende i LuckyTemplates

LuckyTemplates Map Visual: Hvordan lage og legge til en egendefinert legende i LuckyTemplates

I denne opplæringen lærer du hvordan du bygger en egendefinert legende i en LuckyTemplates Map Visual for å vise dine foretrukne farger og segmentering.

LuckyTemplates bakgrunnsbilde for rapporter som bruker PPT

LuckyTemplates bakgrunnsbilde for rapporter som bruker PPT

Lær hvordan du setter opp et LuckyTemplates-bakgrunnsbilde ved hjelp av PowerPoint. Dette er en av teknikkene mine for å lage mine LuckyTemplates-rapporter.

Anskaffelsesbeslutningsmodell og analyse i LuckyTemplates

Anskaffelsesbeslutningsmodell og analyse i LuckyTemplates

I denne opplæringen skal vi dykke ned i noen innkjøpsanalyser i en organisasjon, ved å bruke en interaksjonsfunksjon og kraften til datamodellen.