DAX Studio EVALUATE Nøkkelord: Grunnleggende eksempler
Lær å bruke DAX Studio EVALUATE nøkkelordet med grunnleggende eksempler og få en bedre forståelse av hvordan dette kan hjelpe deg med databehandling.
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.
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.
Hvis vi slipper det målet inn i tabellen, får vi akkurat det vi forventer, som er det riktige tallet for 2020.
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.
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.
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.
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.
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ær å bruke DAX Studio EVALUATE nøkkelordet med grunnleggende eksempler og få en bedre forståelse av hvordan dette kan hjelpe deg med databehandling.
Finn ut hvorfor det er viktig å ha en dedikert datotabell i LuckyTemplates, og lær den raskeste og mest effektive måten å gjøre det på.
Denne korte opplæringen fremhever LuckyTemplates mobilrapporteringsfunksjon. Jeg skal vise deg hvordan du kan utvikle rapporter effektivt for mobil.
I denne LuckyTemplates-utstillingen vil vi gå gjennom rapporter som viser profesjonell tjenesteanalyse fra et firma som har flere kontrakter og kundeengasjementer.
Gå gjennom de viktigste oppdateringene for Power Apps og Power Automate og deres fordeler og implikasjoner for Microsoft Power Platform.
Oppdag noen vanlige SQL-funksjoner som vi kan bruke som streng, dato og noen avanserte funksjoner for å behandle eller manipulere data.
I denne opplæringen lærer du hvordan du lager din perfekte LuckyTemplates-mal som er konfigurert til dine behov og preferanser.
I denne bloggen vil vi demonstrere hvordan du legger feltparametere sammen med små multipler for å skape utrolig nyttig innsikt og grafikk.
I denne bloggen vil du lære hvordan du bruker LuckyTemplates rangering og tilpassede grupperingsfunksjoner for å segmentere et eksempeldata og rangere det i henhold til kriterier.
I denne opplæringen skal jeg dekke en spesifikk teknikk rundt hvordan du viser kumulativ total kun opp til en bestemt dato i grafikken i LuckyTemplates.