DAX-måleanalyse: Nedbrydning af lange DAX-mål

I denne tutorial vil jeg vise dig nogle detaljerede DAX-måleanalyser om, hvordan jeg sammensætter en af ​​mine yndlingssider i den rapport, jeg indsendte til den 10. LuckyTemplates Challenge.

Rangeringssiden bruger en masse udfordrende DAX-mål . Men med hjælp fra en af ​​vores LuckyTemplates-eksperter, Antriksh Sharma, plus en vis forgrening, var jeg i stand til at få de resultater, jeg ønskede.

Indholdsfortegnelse

Rangeringssideoversigt

Før vi hopper ind i vores DAX-målanalyse, vil jeg gerne vise dig de forskellige dele af siden, som vi arbejder på i dag.

Sådan ser siden Rankings ud. I modsætning til de andre sider i min rapport, indeholder denne for det meste kort.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Hvert af disse kort blev lavet ved hjælp af den indbyggede kortvisual i LuckyTemplates-skrivebordet under Visualiseringsruden.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Det giver dig mulighed for at navigere tilbage til andre sider i rapporten gennem disse ikoner her øverst.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Jeg diskuterede de andre sider i denne rapport i de andre selvstudier. Hvis du ser de andre sider i denne rapport, vil du se, at de også har ikoner, der fører til denne rangeringsside .

Venstre side af siden viser de overordnede fire øverste planter og leverandører, mens højre side viser de nederste fire.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Jeg oprettede også individuelle DAX-mål for at få mere specifikke resultater. Disse tre øverst viser for eksempel de fire øverste og de nederste fire fabrikker og leverandører baseret på nedetidsminutter , gennemsnitlige nedetidsminutter og defekter .

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Jeg gik endnu mere specifik på den nederste del af rapportsiden. På venstre side fik jeg de øverste fire og de nederste fire anlæg baseret på nedetidsminutter, gennemsnitlige nedetidsminutter og defekter.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Til højre gjorde jeg det samme, men baserede det på leverandørdetaljerne denne gang.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Mens jeg gennemgår denne tutorial, vil jeg fortælle dig historien om, hvordan jeg kom på ideen til denne side. Derefter vil jeg give dig en trin-for-trin oversigt over, hvordan hver af disse målinger blev oprettet.

Få ideer til de DAX-foranstaltninger, du kan bruge

Jeg fik ideen til DAX-målene i denne slide fra en af ​​vores, Antriksh. Han er en DAX-guru og er god til at optimere foranstaltninger. Det var sjovt at arbejde sammen med ham på denne DAX-målanalyse.

Omkring to uger før den 10. LuckyTemplates Challenge blev annonceret, havde vi en samtale på Skype om en PBIX-fil, han lagde ud på LuckyTemplates Forum.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Som du kan se, inkluderede jeg et billede af Antriksh, fordi han var inspirationen bag siden, som vi vil diskutere her. Jeg fortalte ham, at jeg ville give ham kredit, da jeg kom til at fuldføre denne tutorial.

Modellen er enkel og bruger nogle grundlæggende data som kunde, produkter og salg.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Den har en kort liste over lande til venstre.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Antriksh oprettede et mål for Top N Countries by Sales . Jeg har listen sorteret fra højeste til laveste, som angivet med pil ned.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Til højre er der et kort, der viser de fire øverste og de nederste fire lande. Top fire-listen viser USA , Australien , Storbritannien og Tyskland , som matcher top fire på listen.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

De nederste fire dukker dog op i den modsatte rækkefølge. I stedet for at gå fra bunden, som er Armenien , startede den på 5. pladsen på listen, som er Kirgisistan .

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Det er grunden til, at jeg lavede et andet kort nederst, der bruger en revideret version af det mål, der blev brugt ovenfor.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Læg mærke til, at de fire nederste nu matcher den rækkefølge, jeg ønskede – Armenien , Thailand , Syrien og Kirgisistan .

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Lad os gå ind i DAX-målene bag disse kort. Jeg starter med det mål, som Antriksh lavede til det første kort.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Det originale mål har over 97 rækker for at få de resultater, vi så på det første kort.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Når vi scroller ned til 20. række, kan vi se, at Antriksh brugte ASC . Det er grunden til, at de fire nederste dukkede op, som de gjorde.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Nu hvor jeg ved, hvor problemet startede, vil jeg vise dig, hvordan mit reviderede mål ser ud.

Lad mig fremhæve det andet kort, så jeg kan vise dig målet bag det.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Som du kan se, er der kun 41 rækker i min reviderede formel.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Jeg arbejdede sammen med Antriksh for at skrumpe det med 60 % eller 70 % end det oprindelige mål. Ikke alene er det mindre kompliceret, det giver mig også de resultater, jeg har brug for – med de fire øverste starter fra 1. til 4. og de nederste fire starter fra 8. til 5..

Et par uger efter min diskussion med Antriksh blev den 10. LuckyTemplates Challenge lanceret. En del af kravene indebar et rangeringssystem, som fik mig til at tænke tilbage på Antrikshs DAX-mål. Jeg indså, at jeg kan kopiere og indsætte målingen og derefter anvende en vis forgrening for at komme frem til de resultater, jeg har brug for.

Dax-måleanalyse: Opbygning af mål trin for trin

Nu vil jeg nedbryde de mål, jeg brugte til rangeringssiden for at få de resultater, jeg ønskede. Denne DAX-måleanalyse kan hjælpe mig med at forklare, hvordan målingen fungerer, i betragtning af hvor mange rækker det tog at fuldføre den.

I mine andre selvstudier har jeg vist, hvordan jeg kan lide at gruppere mine mål for at gøre tingene mere organiserede . Så jeg oprettede en undermappe til Top N v2.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

I denne mappe er mit mål for Top N Plants Vendors Downtime Minutes . Du vil se, at den har de samme 41 linjer kode, som jeg viste dig tidligere, mens jeg diskuterede Antrikshs mål. Grundlæggende var alt, hvad jeg skulle gøre, at erstatte nogle elementer for at få de resultater, jeg ønsker.

For at opdele dette bedre opdelte jeg hele dette mål i 9 forskellige dele. Jeg vil gennemgå hvert af disse trin fra et til ni og forklare, hvad hver af disse udretter.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Målingen bruger en række variable, så jeg kan få klarere resultater. Indstilling af disse variabler hjælper slutbrugeren med at se, hvordan målingen hænger sammen, og forklarer detaljerne om, hvordan jeg fik hvert resultat.

Lad os starte med det første trin, som sætterkaldet BaseTable.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

I denne BaseTable kan du se, at jeg referererdata for fabriksplacering og leverandør .

Når du går tilbage til PBIX-filen, vil du se det øverste kort, der refererer til både planter og leverandører. Det er derfor, jeg har brug for alle data her, i modsætning til kortet længere nede, som også er til nedetidsminutter, men kun bruger anlægsplaceringsdata.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Da det første trin er ligetil, lad os gå videre til trin to.

Det andet trin starter medfungere.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Denne funktion refererer til den variabel , jeg oprettede i trin 1, og nedetidsminutterne .

Den sørger for, at en værdi dukker op ved at sammensætteogfunktioner. Jeg ønsker også, at resultaterne skal være større end eller lig med nul. Det skyldes, at datasættet, der blev brugt til denne rapport, inkluderede nogle kombinationer, hvor enten fabrikken eller leverandøren er tom. Der er også poster, hvor værdien er nul.

Det tredje trin involverer endnu et sæt variabler, der starter med værdien for N.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Her er N lig med 4, fordi jeg vil have de fire øverste og de nederste fire til at dukke op.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Den sætter også et præfiks for Top & N plus en bindestreg.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Når det er sat sammen, vil det blot vise "Top 4 -", hvilket er, hvordan det tilsvarende kort starter, før det opregner de forventede resultater.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Lad os nu gå til det fjerde trin. Det er her, jeg begynder at komme med de forventede resultater.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Nogle ville overveje at brugeI dette tilfælde. Jeg prøver trods alt at rangere bidragene og komme med de bedste resultater. Det følte Antriksh og jeg dogville være mere passende i dette tilfælde, da vi kun har brug for de fire bedste i ASC- rækkefølge.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Dernæst brugte jegfunktion, som bruger planteplaceringsdata.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Det indstiller også formatet på, hvordan jeg ønsker, at listen skal vises. Det er derfor, du vil se, at den har en omvendt skråstreg og et komma, plus anførselstegn for at angive mellemrum. Den er også indstillet til ASC- rækkefølge, så hvis jeg går tilbage til PBIX-filen, vil du se listen over de fire øverste med skråstreger og kommaer mellem resultaterne.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Det femte trin i takten starter med at erstatte det sidste komma på listen med et And .

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Når du går tilbage til diaset, vil du se, at den sidste post har et "og" før leverandørens og fabrikkens placering.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Dette er, hvad der bliver opnået i trin fem. Det er at oprette en liste og bruge funktionen til LastCommaPosition .

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Bemærk, at dette siger, at N er større end 2. Det betyder, at substitutionen sker efter 3. streng.

Det sjette trin vil se bekendt ud, fordi det grundlæggende kopierer det samme, som jeg gjorde øverst for at starte listen med "Top 4 -".

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Den eneste forskel her er, at jeg ønsker, at den skal vises som "Bund 4 -" i stedet for "Top 4 -".

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Den del, jeg tidligere diskuterede om at brugebruges igen her i bunden, men nu kalder jeg variablen BottomData i stedet for TopData. Igen indsætter denne del skråstreg og komma mellem navnene på fabrikkerne og leverandørerne.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Når vi ser tilbage på Antrikshs oprindelige mål, er dette også den samme del, hvor han brugte ASC , hvilket resulterede i, at listen ikke kom ud som forventet. Derfor bruger jeg DESC her i stedet.

Så dybest set, på dette tidspunkt og fremefter, er det meste af det bare kopieret og indsat fra de tidligere dele af takten. Jeg erstatter bare ordet "Top" med "Bund" i de fleste tilfælde.

Til trin 8 vil jeg ændre det sidste komma med ordet And .

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Det niende trin afslutter denne foranstaltning.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Dette brugerfunktion med tallet 10. Dette sikrer, at Top 4 og Bund 4 vises på separate linjer. Tænk på det som returtasten på dit tastatur. Det får dig til at gå ned til næste række, så de øverste og nederste fire ikke dukker op på en enkelt linje.

Bekræftelse af resultaterne

Antriksh og jeg var i stand til at trimme de originale 90 plus rækker af DAX ned til 41 linjer. Dog kan 41 linjer stadig være meget for nogle brugere. At nedbryde denne målestok, som vi gjorde, var en god måde at forstå, hvorfor målingen skulle skrives på den måde.

Nu hvor jeg har forklaret, hvad hvert trin handlede om, er det tid til at kontrollere, om den foranstaltning virkelig gør, hvad den skal. Lad os gå til rangeringssiden og verificere resultaterne med den anden del af rapporten.

Jeg starter med anlæg/leverandører efter nedetid minutter .

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Dette viser top fire som Linktype i New Britain, Flashpoint i Frazer, Quinu i Twin Rocks og Layo i Henning. Hvad angår de fire nederste, viser den Wikido i Middletown som den dårligste samlet set.

Nu går jeg over til siden for Sælgere og planter kombineret for at se, om resultaterne stemmer overens.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Med kolonnen Rangér efter nedetidsminutter sorteret fra top til bund viser den det korrekte resultat for de fire øverste.

Nogle af jer vil måske undre sig over, hvorfor New Britain dukker op på andenpladsen på denne liste, når det kommer op på toppen af ​​ranglistens sidekort .

Bemærk, at ranglisten viser tre poster som top 1. Disse blev rangeret ved hjælp af RANKX.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Men hvis du ser på kolonnen for Downtime Minutes , viser den, at New Britain viser 0, mens Frazer og Twin Rocks hver viser 1. Det er derfor, på kortet på ranglisten, at New Britain stadig kom ud over Frazer og Twin Rocks også selvom de alle var placeret som nummer et.

Lad os nu tjekke, om de nederste fire er korrekte. Du skal bare sortere efter nedetidsminutter i faldende rækkefølge.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Som du kan se, viser den Middletown, Waldoboro, Barling og Chesaning som de nederste fire på kortet. Det betyder, at målet for anlæg/leverandører efter nedetidsminutter er korrekt.

Lad os nu se på kortet for Plants By Downtime Minutes .

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Dette viser, at de fire bedste er Reading, Middletown, Waldoboro og Clarksville. De fire nederste er Riverside, Charles City, Twin Rocks og Chesaning.

For at verificere disse resultater vil jeg tjekke på siden Planter og se, om resultaterne stemmer overens. Den største forskel her er, at det kort, vi tidligere verificerede, var baseret på både Plants og Vendors data, hvorimod dette kun ser på Plants data.

Når vi sorterer rangeringen efter nedetidsminutter fra top til bund, viser det, at de fire øverste er Reading, Middletown, Waldoboro og Clarksville.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Lad os nu vende rangeringen denne gang for at se, om de fire nederste matcher. Du vil se, at ud af de 30 planter på vores liste får Riverside, Charles City, Twin Rocks og Chesaning de nederste rækker.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Det betyder, at vi ser de rigtige resultater for planter.

Lad os denne gang se på et kort, der rangerer Leverandører efter mangler .

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Jeg vil gå til siden Leverandører denne gang for at se, om Dablist er den bedste leverandør, og Yombu er den værste baseret på defekter.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Når vi sorterer leverandørerne fra bedst til værst, ser det ud til, at de fire øverste passer til kortet på rangeringssiden .

Lad mig skifte rang fra dårligst til bedst og se, om de fire nederste også matcher.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Du vil se, at Yombu faktisk er den værste, sammen med de tre andre inkluderet på de fire nederste liste på kortet.

Dax-måleanalyse: Anvendelse af måleforgrening

DAX-måleanalysen, som vi lavede tidligere, så kun på målingen bag Plants/Vendors By Downtime Minutes . Men hvordan arbejdede jeg med målene for de andre kort? Det er herkommer i.

Målforgrening involverer brugen af ​​et eksisterende mål til at udlede andre resultater.

I denne rapport kopierede og indsatte jeg simpelthen det mål, vi diskuterede tidligere, og ændrede nogle af elementerne, så de passer til det, jeg har brug for.

Navnet på foranstaltningen er åbenbart det første, jeg vil ændre. Men mere end det, så skal jeg også ændre de data, jeg refererer til. For eksempel brugte vi både anlægsplacering og leverandørdata til vores oprindelige mål.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Men hvis jeg skal bruge det samme mål for Plants By Downtime Minutes , så bliver jeg nødt til at fjerne leverandørdata og bare fokusere på Plant Location.

Jeg bliver nødt til at ændre det for alle de andre dele af det samme mål, der også refererer til begge datasæt, som da jeg brugte CONCATENATEX .

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Det samme gælder for nedetidsminutterne . Hvis jeg skulle arbejde på et kort, der ser på Gennemsnitlige nedetidsminutter eller defekter , så skal jeg bare ændre denne del.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Hvad angår den del, hvor der står "@DowntimeMins" i målingen, ville det ikke skade at holde det på den måde, selvom jeg refererer til mine defekter eller mine gennemsnitlige nedetidsminutter.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Men hvis du er typen, der kan lide at holde tingene i en bestemt rækkefølge, kan du også gå ind og ændre dette. Bare husk, at hvis du ændrer dette, skal du ændre det hele vejen igennem siden. Det betyder, at der skal ydes en ekstra indsats for de samme resultater.

Du kan lige forestille dig, hvor meget tid jeg sparede ved at bruge måleforgrening . At gøre det på denne måde betyder, at jeg ikke behøver at blive ved med at oprette nye foranstaltninger for hver del af rapporten, jeg arbejder på. Jeg skal bare justere den eksisterende foranstaltning baseret på de resultater, jeg ønsker at se, hvilket reducerer min rapportudviklingstid en hel del.

For at vise dig, hvordan jeg gjorde det, lad os se på Leverandører efter nedetidsminutter .

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Når jeg trækker målet op, vil du se, at det har de samme 41 rækker som Plants / Vendors By Downtime Minutes .

DAX-måleanalyse: Nedbrydning af lange DAX-mål

På trin 1 henviste jeg dog kun til leverandørdata og fjernede fabriksplacering.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Jeg har ændret dataene andre steder, hvor det også er relevant.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Jeg beholdt nedetidsminutter, da det er det, jeg baserer resultaterne på.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Så det er hurtige løsninger til foranstaltningen, så den kan anvendes på de andre områder af rapporten.

Lad mig vise dig et andet eksempel her. Denne gang, lad os se på Leverandører ved defekter .

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Endnu en gang kigger vi bare på sælgeren her.

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Det, jeg ændrede her, er henvisningen til Downtime Minutes . I stedet brugte jeg Defects .

DAX-måleanalyse: Nedbrydning af lange DAX-mål

Jeg sørgede også for, at de andre rækker stadig bruger data for Leverandør.

DAX-måleanalyse: Nedbrydning af lange DAX-mål




Konklusion

Det var noget kraftfuldt DAX-værk af Antriksh. Jeg nød bestemt at arbejde med det , forgrene det og anvende det på de forskellige dele af min rapport .

Den dybdegående DAX-målingsanalyse, vi lavede, var også en fantastisk måde at forstå alle aspekter af processen på. At arbejde på et langt mål kan virke skræmmende i starten, men en grundig DAX-målanalyse som denne kan hjælpe med at ordne tingene.

Arbejdet på denne side understregede også vigtigheden af ​​at have et samarbejdsfællesskab som det, vi har her på LuckyTemplates. Det er dejligt, at alle har mulighed for at arbejde med folk som Antriksh, såvel som andre medlemmer og eksperter, der også har et par egne tips og tricks.

Alt det bedste,

Jarrett


Pipe In R: Tilslutningsfunktioner med Dplyr

Pipe In R: Tilslutningsfunktioner med Dplyr

I denne øvelse lærer du, hvordan du kæder funktioner sammen ved hjælp af dplyr-røroperatoren i programmeringssproget R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX fra LuckyTemplates giver dig mulighed for at returnere rangeringen af ​​et specifikt tal i hver tabelrække, der udgør en del af en liste over tal.

Udpakning af LuckyTemplates-temaer og -billeder fra PBIX

Udpakning af LuckyTemplates-temaer og -billeder fra PBIX

Lær, hvordan du adskiller en PBIX-fil for at udtrække LuckyTemplates-temaer og -billeder fra baggrunden og bruge den til at oprette din rapport!

Excel Formler Snydeark: Mellemvejledning

Excel Formler Snydeark: Mellemvejledning

Excel Formler Snydeark: Mellemvejledning

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

Python i LuckyTemplates: Sådan installeres og konfigureres

Python i LuckyTemplates: Sådan installeres og konfigureres

Lær, hvordan du installerer programmeringssproget Python i LuckyTemplates, og hvordan du bruger dets værktøjer til at skrive koder og vise billeder.

Beregning af dynamiske fortjenestemargener – nem analyse af LuckyTemplates med DAX

Beregning af dynamiske fortjenestemargener – nem analyse af LuckyTemplates med DAX

Lær, hvordan du beregner dynamiske fortjenstmargener ved siden af ​​LuckyTemplates, og hvordan du kan få mere indsigt ved at grave dybere ned i resultaterne.

Sortering af datotabelkolonner i LuckyTemplates

Sortering af datotabelkolonner i LuckyTemplates

Lær, hvordan du sorterer felterne fra kolonner med udvidet datotabel korrekt. Dette er en god strategi at gøre for vanskelige felter.

Find dine topprodukter for hver region i LuckyTemplates ved hjælp af DAX

Find dine topprodukter for hver region i LuckyTemplates ved hjælp af DAX

I denne artikel gennemgår jeg, hvordan du kan finde dine topprodukter pr. region ved hjælp af DAX-beregninger i LuckyTemplates, herunder funktionerne TOPN og CALCUATE.

Junk Dimension: Hvad er det, og hvorfor det er alt andet end junk

Junk Dimension: Hvad er det, og hvorfor det er alt andet end junk

Lær, hvordan du bruger en uønsket dimension til flag med lav kardinalitet, som du ønsker at inkorporere i din datamodel på en effektiv måde.