DAX-måttanalys: Bryt ner långa DAX-mått

I den här handledningen kommer jag att visa dig lite detaljerad DAX-mätanalys om hur jag satte ihop en av mina favoritsidor i rapporten jag skickade in för den 10:e LuckyTemplates Challenge.

Rankingssidan använder många utmanande DAX-mått . Men med hjälp av en av våra LuckyTemplates-experter, Antriksh Sharma, plus en viss åtgärdsförgrening, kunde jag få de resultat jag ville ha.

Innehållsförteckning

Ranking Sidöversikt

Innan vi går in i vår DAX-mätanalys vill jag visa dig de olika delarna av sidan som vi arbetar med idag.

Så här ser sidan Rankings ut. Till skillnad från de andra sidorna i min rapport innehåller denna mest kort.

DAX-måttanalys: Bryt ner långa DAX-mått

Vart och ett av dessa kort gjordes med den inbyggda kortvisualen i LuckyTemplates skrivbord under rutan Visualiseringar.

DAX-måttanalys: Bryt ner långa DAX-mått

Det låter dig navigera tillbaka till andra sidor i rapporten genom dessa ikoner här överst.

DAX-måttanalys: Bryt ner långa DAX-mått

Jag diskuterade de andra sidorna i denna rapport i de andra handledningarna. Om du ser de andra sidorna i den här rapporten ser du att de också har ikoner som leder till den här rankningssidan .

Den vänstra sidan av sidan visar de fyra övergripande växterna och leverantörerna medan den högra sidan visar de fyra nedersta.

DAX-måttanalys: Bryt ner långa DAX-mått

Jag skapade även individuella DAX-mått för att få mer specifika resultat. Dessa tre överst visar till exempel de fyra översta och de fyra nedersta anläggningarna och leverantörerna baserat på stilleståndsminuter , genomsnittliga stilleståndsminuter och defekter .

DAX-måttanalys: Bryt ner långa DAX-mått

Jag gick ännu mer specifik på den nedre delen av rapportsidan. På vänster sida fick jag de fyra översta och de nedre fyra plantorna baserat på stilleståndsminuter, genomsnittliga stilleståndsminuter och defekter.

DAX-måttanalys: Bryt ner långa DAX-mått

Till höger gjorde jag samma sak men baserade det på leverantörsuppgifterna den här gången.

DAX-måttanalys: Bryt ner långa DAX-mått

När jag går igenom den här handledningen kommer jag att berätta historien om hur jag kom på idén till den här sidan. Sedan ska jag ge dig en steg-för-steg-uppdelning av hur var och en av dessa åtgärder skapades.

Få idéer för DAX-måtten att använda

Jag fick idén till DAX-måtten i den här bilden från en av våra, Antriksh. Han är en DAX-guru och är bra på att optimera åtgärder. Det var roligt att arbeta med honom på denna DAX-mätanalys.

Ungefär två veckor innan den 10:e LuckyTemplates-utmaningen tillkännagavs hade vi en konversation på Skype om en PBIX-fil som han lade upp på LuckyTemplates-forumet.

DAX-måttanalys: Bryt ner långa DAX-mått

Som ni kan se inkluderade jag en bild på Antriksh eftersom han var inspirationen bakom sidan som vi kommer att diskutera här. Jag sa till honom att jag skulle ge honom kredit när jag kom att slutföra den här handledningen.

Modellen är enkel och använder en del grundläggande data som kund, produkter och försäljning.

DAX-måttanalys: Bryt ner långa DAX-mått

Den har en kort lista över länder på vänster sida.

DAX-måttanalys: Bryt ner långa DAX-mått

Antriksh skapade ett mått för Top N Countries by Sales . Jag har listan sorterad från högsta till lägsta, som indikeras av nedåtpilen.

DAX-måttanalys: Bryt ner långa DAX-mått

Till höger finns ett kort som visar de fyra översta och de fyra nedersta länderna. Topp fyra-listan visar USA , Australien , Storbritannien och Tyskland , som matchar de fyra bästa på listan.

DAX-måttanalys: Bryt ner långa DAX-mått

De fyra nedersta visas dock i motsatt ordning. Istället för att gå från botten, som är Armenien , började det på 5:e plats på listan, vilket är Kirgizistan .

DAX-måttanalys: Bryt ner långa DAX-mått

Det är därför jag gjorde ett annat kort längst ner som använder en reviderad version av måttet ovan.

DAX-måttanalys: Bryt ner långa DAX-mått

Lägg märke till att de fyra nedersta nu matchar den ordning jag ville ha – Armenien , Thailand , Syrien och Kirgizistan .

DAX-måttanalys: Bryt ner långa DAX-mått

Låt oss gå in på DAX-måtten bakom dessa kort. Jag börjar med måttet som Antriksh skapade för det första kortet.

DAX-måttanalys: Bryt ner långa DAX-mått

Det ursprungliga måttet har över 97 rader för att få resultaten vi såg på det första kortet.

DAX-måttanalys: Bryt ner långa DAX-mått

DAX-måttanalys: Bryt ner långa DAX-mått

När vi scrollar ner till 20:e raden kan vi se att Antriksh använde ASC . Det är anledningen till att de fyra nedersta visade sig som de gjorde.

DAX-måttanalys: Bryt ner långa DAX-mått

Nu när jag vet var problemet började ska jag visa dig hur mitt reviderade mått ser ut.

Låt mig markera det andra kortet så att jag kan visa dig måttet bakom det.

DAX-måttanalys: Bryt ner långa DAX-mått

Som du kan se finns det bara 41 rader i min reviderade formel.

DAX-måttanalys: Bryt ner långa DAX-mått

Jag arbetade med Antriksh för att krympa det med 60 % eller 70 % än det ursprungliga måttet. Det är inte bara mindre komplicerat, det ger mig också de resultat jag behöver – med de fyra bästa som börjar från 1:a till 4:e, och de fyra nedersta börjar från 8:e till 5:e.

Ett par veckor efter min diskussion med Antriksh lanserades den 10:e LuckyTemplates Challenge. En del av kraven innebar ett rankningssystem, vilket fick mig att tänka tillbaka på Antrikshs DAX-mått. Jag insåg att jag kan kopiera och klistra in måttet, och sedan tillämpa någon åtgärdsförgrening för att komma fram till de resultat jag behöver.

Dax-mätanalys: Bygg måttet steg för steg

Nu ska jag dela upp de mått som jag använde för rankningssidan för att få de resultat jag ville ha. Denna DAX-måttanalys kan hjälpa mig att förklara hur måttet fungerar, med tanke på hur många rader det tog att slutföra det.

I mina andra handledningar har jag visat hur jag gillar att gruppera mina åtgärder för att göra saker mer organiserade . Så jag skapade en undermapp för Top N v2.

DAX-måttanalys: Bryt ner långa DAX-mått

Inom den här mappen finns mitt mått för Top N Plants Vendors Downtime Minutes . Du kommer att se att den har samma 41 rader kod som jag visade dig tidigare när jag diskuterade Antrikshs mått. I princip var allt jag behövde göra att byta ut några föremål för att få de resultat jag vill ha.

För att dela upp det här bättre delar jag upp hela måttet i 9 olika delar. Jag kommer att gå över vart och ett av dessa steg från ett till nio och förklara vad var och en av dessa åstadkommer.

DAX-måttanalys: Bryt ner långa DAX-mått

Måttet använder ett antal variabler för att jag ska få tydligare resultat. Att ställa in dessa variabler hjälper slutanvändaren att se hur måttet går ihop och förklarar detaljerna om hur jag fick varje resultat.

Låt oss börja med det första steget, som ställer inkallas BaseTable.

DAX-måttanalys: Bryt ner långa DAX-mått

I denna BaseTable kan du se att jag refererardata för anläggningsplats och leverantör .

När du går tillbaka till PBIX-filen ser du det översta kortet som refererar till både växterna och leverantörerna. Det är därför jag behöver all data här, till skillnad från kortet längre ner, som också är för stilleståndsminuter, men bara använder anläggningsplatsdata.

DAX-måttanalys: Bryt ner långa DAX-mått

Eftersom det första steget är enkelt, låt oss gå vidare till steg två.

Det andra steget börjar medfungera.

DAX-måttanalys: Bryt ner långa DAX-mått

Denna funktion refererar till variabeln som jag skapade i steg 1 och stilleståndsminuterna .

Den ser till att ett värde dyker upp genom att sätta ihopochfunktioner. Jag vill också att resultaten ska vara större än eller lika med noll. Det beror på att datamängden som användes för den här rapporten inkluderade några kombinationer där antingen anläggningen eller leverantören är tom. Det finns också poster där värdet är noll.

Det tredje steget involverar ytterligare en uppsättning variabler, som börjar med värdet för N.

DAX-måttanalys: Bryt ner långa DAX-mått

Här är N lika med 4 eftersom jag vill att de fyra översta och de fyra nedersta ska dyka upp.

DAX-måttanalys: Bryt ner långa DAX-mått

Den anger också ett prefix för Top & N, plus ett bindestreck.

DAX-måttanalys: Bryt ner långa DAX-mått

När det sätts ihop vill det helt enkelt visa "Top 4 -", vilket är hur motsvarande kort börjar innan det räknar upp de förväntade resultaten.

DAX-måttanalys: Bryt ner långa DAX-mått

Låt oss nu gå till det fjärde steget. Det är här jag börjar komma med de förväntade resultaten.

DAX-måttanalys: Bryt ner långa DAX-mått

Vissa skulle fundera på att användaI detta fall. Jag försöker trots allt rangordna bidragen och komma fram till de bästa resultaten. Antriksh och jag kände dock detskulle vara mer lämpligt i det här fallet eftersom vi bara behöver de fyra bästa i ASC- ordning.

DAX-måttanalys: Bryt ner långa DAX-mått

Därefter använde jagfunktion, som använder anläggningsplatsdata.

DAX-måttanalys: Bryt ner långa DAX-mått

Det ställer också in formatet på hur jag vill att listan ska visas. Det är därför du kommer att se att den har ett snedstreck och ett kommatecken, plus citattecken för att beteckna mellanslag. Den är också inställd på ASC- ordning så om jag går tillbaka till PBIX-filen kommer du att se listan över de fyra översta med snedstreck och kommatecken mellan resultaten.

DAX-måttanalys: Bryt ner långa DAX-mått

Det femte steget i måttet börjar med att ersätta det sista kommatecken på listan med ett And .

DAX-måttanalys: Bryt ner långa DAX-mått

När du går tillbaka till bilden ser du att den sista posten har ett "och" före leverantörens och anläggningens plats.

DAX-måttanalys: Bryt ner långa DAX-mått

Detta är vad som uppnås i steg fem. Det skapar en lista och använder funktionen för LastCommaPosition .

DAX-måttanalys: Bryt ner långa DAX-mått

Lägg märke till att detta säger att N är större än 2. Detta betyder att substitutionen sker efter den 3:e strängen.

Det sjätte steget kommer att se bekant ut eftersom det i princip kopierar samma sak som jag gjorde på toppen för att starta listan med "Top 4 -".

DAX-måttanalys: Bryt ner långa DAX-mått

Den enda skillnaden här är att jag vill att den ska visas som "Bottom 4 -" istället för "Top 4 -".

DAX-måttanalys: Bryt ner långa DAX-mått

Den del jag tidigare diskuterat om att användaanvänds återigen här längst ner, men nu kallar jag variabeln BottomData istället för TopData. Återigen, den här delen infogar snedstrecket och kommatecken mellan namnen på anläggningarna och leverantörerna.

DAX-måttanalys: Bryt ner långa DAX-mått

När vi ser tillbaka på Antrikshs ursprungliga mått så är detta också samma del där han använde ASC , vilket resulterade i att listan inte kom ut som jag förväntat mig. Det är därför jag använder DESC här istället.

Så i princip, vid denna tidpunkt och framåt, är det mesta bara kopierat och inklistrat från de tidigare delarna av måttet. Jag ersätter bara ordet "Topp" med "Bottom" i de flesta fall.

För steg 8 vill jag ändra det sista kommatecken med ordet And .

DAX-måttanalys: Bryt ner långa DAX-mått

Det nionde steget avslutar denna åtgärd.

DAX-måttanalys: Bryt ner långa DAX-mått

Detta använderfunktion med siffran 10. Detta säkerställer att Top 4 och Bottom 4 visas på separata rader. Tänk på det som returtangenten på ditt tangentbord. Det får dig att gå ner till nästa rad så att de översta och nedersta fyrana inte dyker upp på en enda rad.

Verifiera resultaten

Antriksh och jag kunde trimma ner de ursprungliga 90 plus-raderna av DAX till 41 rader. Men 41 rader kan fortfarande vara mycket för vissa användare. Att bryta ner det måttet som vi gjorde var ett bra sätt att förstå varför måttet måste skrivas på det sättet.

Nu när jag har förklarat vad varje steg handlade om, är det dags att verifiera om den åtgärden verkligen gör vad den ska göra. Låt oss gå till rankningssidan och verifiera resultaten med den andra delen av rapporten.

Jag börjar med anläggningar/leverantörer efter stilleståndsminuter .

DAX-måttanalys: Bryt ner långa DAX-mått

Detta visar topp fyra som Linktype i New Britain, Flashpoint i Frazer, Quinu i Twin Rocks och Layo i Henning. När det gäller de fyra nedersta visar det Wikido i Middletown som den sämsta totalt sett.

Nu ska jag gå över till sidan för leverantörer och växter kombinerade för att se om resultaten kommer att matcha.

DAX-måttanalys: Bryt ner långa DAX-mått

Med kolumnen Rang efter stilleståndsminuter sorterad från topp till botten visar den rätt resultat för de fyra översta.

En del av er kanske undrar varför New Britain hamnar på andra plats på den här listan, när den kommer upp på sidan med Rankings .

Lägg märke till att rankningen visar tre bidrag som topp 1. Dessa rankades med RANKX.

DAX-måttanalys: Bryt ner långa DAX-mått

Men om du tittar på kolumnen för Downtime Minutes , visar den att New Britain visar 0 medan Frazer och Twin Rocks vardera visar 1. Det är därför på kortet på rankningssidan, New Britain fortfarande kom ut över Frazer och Twin Rocks även om de alla var rankade som etta.

Låt oss nu kontrollera om de fyra nedersta är korrekta. Sortera bara rangordning efter stilleståndsminuter i fallande ordning.

DAX-måttanalys: Bryt ner långa DAX-mått

Som du kan se visar den Middletown, Waldoboro, Barling och Chesaning som de fyra nedersta på kortet. Detta betyder att måttet för anläggningar/leverantörer efter stilleståndsminuter är korrekt.

Låt oss nu titta på kortet för Plants By Downtime Minutes .

DAX-måttanalys: Bryt ner långa DAX-mått

Detta visar att de fyra bästa är Reading, Middletown, Waldoboro och Clarksville. De fyra nedersta är Riverside, Charles City, Twin Rocks och Chesaning.

För att verifiera dessa resultat ska jag kolla på sidan Växter och se om resultaten matchar. Den största skillnaden här är att kortet vi tidigare verifierade var baserat på både växt- och leverantörsdata, medan det här bara tittar på växtdata.

När vi sorterar rankningen efter stilleståndsminuter från topp till botten visar det att de fyra bästa är Reading, Middletown, Waldoboro och Clarksville.

DAX-måttanalys: Bryt ner långa DAX-mått

Låt oss nu vända om rangordningen den här gången för att se om de fyra nedersta matchar. Du kommer att se att av de 30 växterna på vår lista kommer Riverside, Charles City, Twin Rocks och Chesaning i botten.

DAX-måttanalys: Bryt ner långa DAX-mått

Det betyder att vi ser rätt resultat för växter.

Den här gången ska vi titta på ett kort som rankar leverantörer efter defekter .

DAX-måttanalys: Bryt ner långa DAX-mått

Jag ska gå till sidan för leverantörer den här gången för att se om Dablist är den bästa leverantören och Yombu är den sämsta baserat på defekter.

DAX-måttanalys: Bryt ner långa DAX-mått

När vi sorterar leverantörerna från bäst till sämst ser det ut som att de fyra översta matchar kortet på sidan Rankings .

Låt mig byta rang från sämst till bäst och se om de fyra nedersta matchar också.

DAX-måttanalys: Bryt ner långa DAX-mått

Du kommer att se att Yombu verkligen är värst, tillsammans med de andra tre som ingår i de fyra nedersta listan på kortet.

Dax Measure Analysis: Tillämpa måttförgreningar

DAX-måttanalysen som vi gjorde tidigare tittade bara på måttet bakom Plants/Vendors By Downtime Minutes . Men hur arbetade jag med måtten för de andra korten? Det är härkommer in.

Åtgärdsgrening innebär användning av ett befintligt mått för att härleda andra resultat.

I den här rapporten kopierade och klistrade jag helt enkelt in måttet vi diskuterade tidigare och ändrade några av elementen för att passa det jag behöver.

Namnet på åtgärden är uppenbarligen det första jag ska ändra. Men mer än så måste jag också ändra data jag refererar till. Till exempel använde vi både anläggningsplats och leverantörsdata för vårt ursprungliga mått.

DAX-måttanalys: Bryt ner långa DAX-mått

Men om jag ska använda samma mått för Plants By Downtime Minutes , då måste jag ta bort leverantörsdata och bara fokusera på Plant Location.

Jag måste ändra det för alla andra delar av samma mått som också refererar till båda datauppsättningarna, som när jag använde CONCATENATEX .

DAX-måttanalys: Bryt ner långa DAX-mått

Detsamma gäller för stilleståndsminuterna . Om jag skulle arbeta med ett kort som tittar på Genomsnittliga stilleståndsminuter eller defekter , så behöver jag bara ändra den här delen.

DAX-måttanalys: Bryt ner långa DAX-mått

När det gäller delen där det står "@DowntimeMins" i måttet, skulle det inte skada att hålla det så även om jag hänvisar till mina defekter eller mina genomsnittliga stilleståndsminuter.

DAX-måttanalys: Bryt ner långa DAX-mått

Men om du är den typen som gillar att hålla saker i en viss ordning så kan du gå in och ändra på detta också. Kom bara ihåg att om du ändrar detta måste du ändra det hela vägen på sidan. Det innebär att man lägger ner lite extra ansträngningar för samma resultat.

Du kan bara föreställa dig hur mycket tid jag sparade genom att använda måttförgrening . Att göra på det här sättet innebär att jag inte behöver fortsätta skapa nya åtgärder för varje del av rapporten jag arbetar med. Jag behöver bara justera det befintliga måttet baserat på de resultat jag vill se, vilket minskar min rapportutvecklingstid avsevärt.

För att visa dig hur jag gjorde det, låt oss titta på Leverantörer efter stilleståndsminuter .

DAX-måttanalys: Bryt ner långa DAX-mått

När jag drar upp måttet ser du att det har samma 41 rader som Plants / Vendors By Downtime Minutes .

DAX-måttanalys: Bryt ner långa DAX-mått

Men i steg 1 refererade jag bara till leverantörsdata och tog bort anläggningsplats.

DAX-måttanalys: Bryt ner långa DAX-mått

Jag ändrade data på andra ställen där det också är tillämpligt.

DAX-måttanalys: Bryt ner långa DAX-mått

Jag behöll stilleståndsminuter eftersom det är detta jag baserar resultaten på.

DAX-måttanalys: Bryt ner långa DAX-mått

Så det är snabba lösningar på åtgärden så att den kan tillämpas på de andra områdena i rapporten.

Låt mig visa dig ett annat exempel här. Den här gången ska vi titta på Leverantörer genom defekter .

DAX-måttanalys: Bryt ner långa DAX-mått

Återigen tittar vi bara på säljaren här.

DAX-måttanalys: Bryt ner långa DAX-mått

Det jag ändrade här är hänvisningen till Driftstoppsminuter . Istället använde jag Defects .

DAX-måttanalys: Bryt ner långa DAX-mått

Jag såg också till att de andra raderna fortfarande använder data för leverantören.

DAX-måttanalys: Bryt ner långa DAX-mått




Slutsats

Det var ett kraftfullt DAX-verk av Antriksh. Jag tyckte definitivt om att arbeta med det , förgrena det och tillämpa det på de olika delarna av min rapport .

Den djupgående DAX-mätanalys vi gjorde var också ett utmärkt sätt att förstå varje aspekt av processen. Att arbeta på ett långt mått kan verka skrämmande till en början, men en grundlig DAX-måttanalys som denna kan hjälpa till att reda ut saker och ting.

Arbetet på den här sidan betonade också vikten av att ha en samarbetsgemenskap som den vi har här på LuckyTemplates. Det är bra att alla har möjlighet att arbeta med personer som Antriksh, liksom andra medlemmar och experter som också har lite egna tips och tricks.

Med vänliga hälsningar,

Jarrett


Pipe In R: Anslutningsfunktioner med Dplyr

Pipe In R: Anslutningsfunktioner med Dplyr

I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.

Extrahera LuckyTemplates-teman och bilder från PBIX

Extrahera LuckyTemplates-teman och bilder från PBIX

Lär dig hur du tar isär en PBIX-fil för att extrahera LuckyTemplates-teman och bilder från bakgrunden och använda den för att skapa din rapport!

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

Python i LuckyTemplates: Hur man installerar och ställer in

Python i LuckyTemplates: Hur man installerar och ställer in

Lär dig hur du installerar programmeringsspråket Python i LuckyTemplates och hur du använder dess verktyg för att skriva koder och visa bilder.

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Lär dig hur du beräknar dynamiska vinstmarginaler vid sidan av LuckyTemplates och hur du kan få fler insikter genom att gräva djupare i resultaten.

Sortering av datumtabellkolumner i LuckyTemplates

Sortering av datumtabellkolumner i LuckyTemplates

Lär dig hur du sorterar fälten från en utökad datumtabells kolumner korrekt. Detta är en bra strategi att göra för svåra fält.

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

I den här artikeln går jag igenom hur du kan hitta dina toppprodukter per region med hjälp av DAX-beräkningar i LuckyTemplates, inklusive TOPN- och CALCULATE-funktionerna.

Skräpdimension: Vad är det och varför det är allt annat än skräp

Skräpdimension: Vad är det och varför det är allt annat än skräp

Lär dig hur du använder en skräpdimension för flaggor med låg kardinalitet som du vill infoga i din datamodell på ett effektivt sätt.