LuckyTemplates anpassad sortering med DAX

Många tror att vi inte kan utföra anpassad sortering med DAX , men det är inte sant. DAX kan absolut garantera sortering, och det är faktiskt ganska enkelt att göra. I dagens blogg visar jag hur du enkelt kan göra just det. Du kan se hela videon av denna handledning längst ner på den här bloggen.

Innehållsförteckning

Vår datamodell

Låt oss börja med en enkel datamodell. Vår datatabell har tre kampanjer, analyserad ROI och kostnad. 

LuckyTemplates anpassad sortering med DAX

Som du kan se i tabellen har de samma kostnader men deras ROI är olika. Konceptet här är att veta vilka kampanjer vi ska köra beroende på deras ROI för en given budget. 

LuckyTemplates anpassad sortering: Använda While-slingan

Låt oss börja med ett mått med en enkel while-loop. 

LuckyTemplates anpassad sortering med DAX

Vi ställer in vår budget på 20 000 och sparar den i budgetvariabeln med _Budget.

LuckyTemplates anpassad sortering med DAX

Och sedan använder vi while-loopen genom att skapa en tabellvariabel VAR_Table

LuckyTemplates anpassad sortering med DAX

Vi använder dåsom går emot vår bastabell 4 och lägger till en löpande totalkolumn med "_RT" .

LuckyTemplates anpassad sortering med DAX

Därefter tar vi [Analyzed ROI] i vår nuvarande rad sparad som VAR_ROI . Sedan tar vi vår budget . Från det subtraherar vi, filtrera Tabell 4 för den analyserade ROI som är större än eller lika med den ROI som vi tar för vår nuvarande rad, och ta [ Cost]

LuckyTemplates anpassad sortering med DAX

Dessa rader kommer att ta den högsta ROI i den första raden, sedan den näst högsta för nästa rad, och så vidare. Så i huvudsak kommer vi att ha en kolumn som är en löpande summa som räknar ner till noll i negativa.

Sedan lämnar vi vår while-loop. Vi skapar vår FinalTable-variabel med VAR_FinalTable där vi helt enkelt filtrerar vår Tabellvariabel för den löpande summan som är större än eller lika med noll. Vi tillämpar det här filtret eftersom allt under noll betyder att vi har blivit negativa och vi har slut på budget.

LuckyTemplates anpassad sortering med DAX

Då kan vi använda för dessa värden. Vi tar med våra kolumner – Kampanjer, Analyserad ROI och Kostnad – och lägger till .

LuckyTemplates anpassad sortering med DAX

Vi kan dölja det här kortet i urvalsrutan och se att vi har vår Instagram och SEM, som är våra två högsta ROI.

LuckyTemplates anpassad sortering med DAX

Låt oss kontrollera vår ursprungliga tabell för att jämföra resultaten.

LuckyTemplates anpassad sortering med DAX

Vi kan se att PPC verkligen har en lägre ROI än SEM och Instagram. 

Men som du kanske har märkt kom vårt resultat inte tillbaka i rätt ordning, med Instagrams 8.1 som visades först före SEM:s 8.15. 

Använda LuckyTemplates sorteringsordning

Men vad händer om vi vill att Instagram ska returneras först eftersom det har den högsta ROI och SEM som ska returneras som andra? I grund och botten vill vi garantera sorteringsordning. Det här blir lite knepigt, men det är inte svårt att förstå hur man gör.

Så här ska vår funktion se ut, med den nedre delen som är samma som while-slingan vi hade tidigare.

LuckyTemplates anpassad sortering med DAX

Och för att garantera sorteringsordning måste vi göra lite extraarbete. 

Återigen börjar vi med vår VAR_Budget som vi sätter till 20000. Sedan skapar vi vår Count-variabel med hjälp av VAR_Count I och tillämpar på Tabell 4. 

LuckyTemplates anpassad sortering med DAX

På nästa rad kommer vi att använda CONCATENATEX -funktionen för att sammanfoga våra kampanjer, analyserad ROI och kostnadskolumner. Du kan använda vad som helst som en separator så länge det inte finns i dina data, så i det här fallet, låt oss bara använda asterisker. 

Sedan använder vi ett rörtecken (|) i nästa parameter efter kostnadskolumnen. Vi kommer också att använda VAR_Ordered för att sortera efter den analyserade ROI:en i fallande ordning, vilket innebär att den högsta ROI kommer att vara överst.

LuckyTemplates anpassad sortering med DAX

Om vi ​​tittar på kommentarsraden står det att koden kommer att ge oss resultatet i formatet SEM*8.158*10000 | Instagram*8,1*10000 . Det kommer också att komma ut i ordningen av högsta ROI till lägsta ROI. 

LuckyTemplates anpassad sortering: Används för loop

Det här exemplet är intressant eftersom vi får en , while-loop, och alla möjliga coola funktioner. Den här gången kommer vi att använda for-slingan

Bord 1

I det här exemplet är Tabell1 vår for-loop, och det vi gör är ADDCOLUMNS tillsom går från ett till vårt antal med en skriven som (1,_Count,1).

I vår Row använder vi sedaneftersom vi använder pipetecknet för att separera raderna i vår tabell. Med hjälp av PATHITEM tar vi sedan tag i sökvägen från variabeln Ordered , som är vår sträng. 

Vi använder också Value , som är vår automatiska kolumn som skapas med GENERATESERIES , eller våra kalendrar 1, 2, 3, 4, 5, tills vi tar slut på antalet rader vi har i vår tabell. Sedan returnerar vi det som text

LuckyTemplates anpassad sortering med DAX

Det vi har nu är en garanterad sorteringsordning för vårt bord, som går från högsta ROI till lägsta. Så här är din DAX för att garantera sorteringsordning. 

Tabell 2

Nu, för att få detta i ett användbart format, måste vi göra tabell 2 där vi ska plocka ut de enskilda kolumnerna från vår sträng som vi har.

Låt oss använda ytterligare ADDCOLUMNS för att lägga till i Tabell1, vår for-loop. För Kampanjer skapar du en kampanjkolumn och använderatt ersätta asterisker med rör. Sedan använder vi PATHITEM på RowPath för att ta tag i det första elementet och returnera det som TEXT.

LuckyTemplates anpassad sortering med DAX

I kolumnen Analyserad ROI kommer vi i princip att göra samma sak. ERSÄTTA asterisker med rör. Ta sedan tag i det andra föremålet i vår väg och returnera det som TEXT. Vi gör detta eftersom PATHITEM av någon anledning låter oss returnera som heltal eller text men inte decimaltal.

Det är lite konstigt, men vi kan lösa det eftersom allt vi behöver göra är att lägga till noll, och DAX konverterar automatiskt TEXT-strängen till ett numeriskt värde. 

LuckyTemplates anpassad sortering med DAX

Återigen, vi gör samma sak för kolumnen Kostnad . Vi använder SUBSTITUTE och PATHITEM för att ta tag i det tredje föremålet. Sedan, för att returnera ett tal, lägger vi till noll igen eftersom det är ett heltal i det här fallet.

LuckyTemplates anpassad sortering med DAX

Resten av vår kod är while-slingan som vi diskuterade tidigare. Det vi får nu är vår garanterade sorteringsordning från högsta till lägsta kampanj. 

LuckyTemplates anpassad sortering med DAX

Vår SEM var vår högst rankade ROI för vår kampanj och Instagram är den andra. 




Slutsats

Genom att använda medan och för loopar använde vi framgångsrikt LuckyTemplates anpassade sortering i vår datamodell baserat på deras ROI – ett bevis på att DAX definitivt kan garantera sorteringsordning. 

Det är viktigt att se till att din data är korrekt sorterad i DAX för att korrekt analysera och visualisera den. Du kan tillämpa det du lärde dig i den här självstudien för att sortera dina data på lämpligt sätt för din nästa rapport.

Med vänliga hälsningar,

Greg Deckler


Lös en dataanalysutmaning med LuckyTemplates Accelerator

Lös en dataanalysutmaning med LuckyTemplates Accelerator

Finslipa dina färdigheter i rapportutveckling genom att gå med i en dataanalysutmaning. Acceleratorn kan hjälpa dig att bli en LuckyTemplates superanvändare!

Löpande summor i LuckyTemplates med DAX

Löpande summor i LuckyTemplates med DAX

Lär dig hur du beräknar löpande summor i LuckyTemplates med DAX. Löpande summor låter dig inte fastna i ett individuellt resultat.

LuckyTemplates Dax-variabler är konstanta: Vad betyder detta?

LuckyTemplates Dax-variabler är konstanta: Vad betyder detta?

Förstå konceptet med variabler i DAX inom LuckyTemplates och konsekvenserna av variabler för hur dina mått beräknas.

LuckyTemplates Slope Chart: En översikt

LuckyTemplates Slope Chart: En översikt

Lär dig mer om den anpassade visual som kallas LuckyTemplates Slope-diagram, som används för att visa ökning/minskning för en enstaka eller flera mätvärden.

LuckyTemplates färgteman för enhetliga visualiseringar

LuckyTemplates färgteman för enhetliga visualiseringar

Upptäck färgteman i LuckyTemplates. Dessa är viktiga för att dina rapporter och visualiseringar ska se ut och fungera sömlöst.

Beräkna medelvärde i LuckyTemplates: Isolera veckodags- eller helgresultat med DAX

Beräkna medelvärde i LuckyTemplates: Isolera veckodags- eller helgresultat med DAX

Att beräkna ett genomsnitt i LuckyTemplates kan göras på många sätt för att ge dig exakt information för dina affärsrapporter.

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

Låt oss fördjupa oss i Standard LuckyTemplates-teman och granska några av funktionerna som är inbyggda i själva LuckyTemplates Desktop-applikationen.

LuckyTemplates Map Visual: Hur man skapar och lägger till en anpassad legend i LuckyTemplates

LuckyTemplates Map Visual: Hur man skapar och lägger till en anpassad legend i LuckyTemplates

I den här handledningen lär du dig hur du bygger en anpassad förklaring i en LuckyTemplates Map Visual för att visa dina föredragna färger och segmentering.

LuckyTemplates bakgrundsbild för rapporter som använder PPT

LuckyTemplates bakgrundsbild för rapporter som använder PPT

Lär dig hur du ställer in en LuckyTemplates-bakgrundsbild med PowerPoint. Detta är en av mina tekniker för att skapa mina LuckyTemplates-rapporter.

Upphandlingsbeslutsmodell och analys i LuckyTemplates

Upphandlingsbeslutsmodell och analys i LuckyTemplates

I den här handledningen kommer vi att dyka in i en del inköpsanalyser inom en organisation, med hjälp av en interagerande funktion och kraften i datamodellen.