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!
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.
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.
Vi ställer in vår budget på 20 000 och sparar den i budgetvariabeln med _Budget.
Och sedan använder vi while-loopen genom att skapa en tabellvariabel VAR_Table .
Vi använder dåsom går emot vår bastabell 4 och lägger till en löpande totalkolumn med "_RT" .
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] .
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.
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 .
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.
Låt oss kontrollera vår ursprungliga tabell för att jämföra resultaten.
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.
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.
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.
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 .
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.
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.
Å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.
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.
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
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ä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.
Förstå konceptet med variabler i DAX inom LuckyTemplates och konsekvenserna av variabler för hur dina mått beräknas.
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.
Upptäck färgteman i LuckyTemplates. Dessa är viktiga för att dina rapporter och visualiseringar ska se ut och fungera sömlöst.
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.
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.
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.
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.
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.