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

Leave a Comment

Skapa en datumtabell i LuckyTemplates

Skapa en datumtabell i LuckyTemplates

Ta reda på varför det är viktigt att ha en dedikerad datumtabell i LuckyTemplates och lär dig det snabbaste och mest effektiva sättet att göra det.

LuckyTemplates mobilrapporteringstips och tekniker

LuckyTemplates mobilrapporteringstips och tekniker

Denna korta handledning belyser LuckyTemplates mobilrapporteringsfunktion. Jag ska visa dig hur du kan utveckla rapporter effektivt för mobila enheter.

Professional Service Analytics-rapporter i LuckyTemplates

Professional Service Analytics-rapporter i LuckyTemplates

I denna LuckyTemplates Showcase går vi igenom rapporter som visar professionell serviceanalys från ett företag som har flera kontrakt och kundengagemang.

Microsoft Power Platform-uppdateringar | Microsoft Ignite 2021

Microsoft Power Platform-uppdateringar | Microsoft Ignite 2021

Gå igenom de viktigaste uppdateringarna för Power Apps och Power Automate och deras fördelar och konsekvenser för Microsoft Power Platform.

Vanliga SQL-funktioner: En översikt

Vanliga SQL-funktioner: En översikt

Upptäck några vanliga SQL-funktioner som vi kan använda som sträng, datum och några avancerade funktioner för att bearbeta eller manipulera data.

LuckyTemplates Skapa mall: Guide och tips

LuckyTemplates Skapa mall: Guide och tips

I den här handledningen kommer du att lära dig hur du skapar din perfekta LuckyTemplates-mall som är konfigurerad efter dina behov och preferenser.

Fältparametrar och små multiplar i LuckyTemplates

Fältparametrar och små multiplar i LuckyTemplates

I den här bloggen kommer vi att visa hur man lager fältparametrar med små multiplar för att skapa otroligt användbara insikter och bilder.

LuckyTemplates Rank och anpassad gruppering

LuckyTemplates Rank och anpassad gruppering

I den här bloggen kommer du att lära dig hur du använder LuckyTemplates ranknings- och anpassade grupperingsfunktioner för att segmentera en exempeldata och rangordna den enligt kriterier.

Visar kumulativ total endast upp till ett visst datum i LuckyTemplates

Visar kumulativ total endast upp till ett visst datum i LuckyTemplates

I den här handledningen kommer jag att täcka en specifik teknik kring hur man visar Kumulativ total endast upp till ett specifikt datum i dina bilder i LuckyTemplates.

Punktdiagram: Avancerade anpassade bilder för LuckyTemplates

Punktdiagram: Avancerade anpassade bilder för LuckyTemplates

Lär dig hur du skapar och anpassar punktdiagram i LuckyTemplates, som huvudsakligen används för att mäta prestanda mot mål eller tidigare år.