DAX-optimering: Var hittar du den dolda DAX-fällan

Jag vill idag fokusera på något jag kallar den dolda DAX-fällan. Om du stöter på den här situationen kommer det att få dig att känna att du tappar förståndet eftersom din DAX kommer att se rätt ut, men det kommer inte att fungera. Jag kommer att gå igenom när det inträffar och vad du kan göra åt det, och i processen pratar jag också om några allmänna bästa praxis för DAX-optimering. Du kan se hela videon av denna handledning längst ner på den här bloggen.

Låt oss först ta en titt på vad vi arbetar med här. Vi har cirka 10 års data från Internet Movie Database. Faktatabellerna är ganska enkla och vi har betygsdata, budgetdata och bruttodata.

Idag ska vi titta på globala brutto.

DAX-optimering: Var hittar du den dolda DAX-fällan

Vi har även vår utökade datumtabell. Det här kommer att bli en tidsintelligensanalys baserad på datumtabellen och faktatabellen.

DAX-optimering: Var hittar du den dolda DAX-fällan

Innehållsförteckning

Totalt globalt brutto per år

Vi vill göra något riktigt vanligt och enkelt. Vår totala världsomspännande brutto är bara ett mycket enkelt aggregerat summamått, som vi vill omvandla till en procentsats.

DAX-optimering: Var hittar du den dolda DAX-fällan

För att göra detta tar vi täljaren ( Totalt globalt bruttomått ) och nämnaren ( Totalt globalt bruttomått , men tog bort sammanhanget från årsfiltret).

DAX-optimering: Var hittar du den dolda DAX-fällan

Jag använde för att jag tycker att det är mer intuitivt när du läser koden, men om du föredrar , fungerar det lika bra. Vi delar bara täljaren med nämnaren för att få resultatet.

Om vi ​​tar den resulterande åtgärden och släpper den i vår tabell, kommer du att se att den gör precis vad vi förväntar oss att den ska göra. Vi får 100% i botten och vi får åren omräknade till deras individuella procentsatser. Hittills har det gått bra och vi har inte stött på några problem än.

DAX-optimering: Var hittar du den dolda DAX-fällan

Totalt globalt brutto per kvartal

Låt oss ta en titt på en liknande situation där vi går kvartalsvis. Detta mått kan vara användbart eftersom det finns hypoteser om att inkomsterna från sommarens filmsäsong skiljer sig från början av året och mot slutet av året som leder till Oscar-säsongen.

Återigen, vi har exakt samma mått med funktionen REMOVEFILTERS på kvartalsnumren istället för årtalet.

DAX-optimering: Var hittar du den dolda DAX-fällan

Och om vi släpper den åtgärd vi just gjorde i tabellen gör den också precis vad vi förväntar oss.

DAX-optimering: Var hittar du den dolda DAX-fällan

Totalt globalt brutto per månad och år

Låt oss ta en titt på det tredje fallet, som kan vara riktigt vanligt, där vi vill titta efter månad och år.

DAX-optimering: Var hittar du den dolda DAX-fällan

Och återigen, vi kommer att använda samma mått som tidigare. Men den här gången tar vi bort filtret på månad och år.

DAX-optimering: Var hittar du den dolda DAX-fällan

Låt oss släppa den i vårt bord. Helt plötsligt fungerar det inte.

DAX-optimering: Var hittar du den dolda DAX-fällan

Vi kan säga vad som inte fungerar med det. Vi vet att måttet Worldwide Gross fungerar, så det betyder att täljaren är bra, men nämnaren är det inte. I vart och ett av de tidigare fallen tog REMOVEFILTERS-funktionen bort filtret ordentligt, men här gjorde det uppenbarligen inte det.

Vi kan faktiskt testa detta genom att ändra vad vi returnerade här i resultatet.

DAX-optimering: Var hittar du den dolda DAX-fällan

Istället för Resultat, låt oss använda nämnaren. Tänk på att det här kommer att formateras i procent så det kommer att se lite roligt ut.

DAX-optimering: Var hittar du den dolda DAX-fällan

Det vi borde få för nämnaren är samma nummer på varje rad, men det är det inte.

DAX-optimering: Var hittar du den dolda DAX-fällan

Vi kan se att det inte tar bort filtret på månad och år, och tror att det beror på att månad och år är i text.

DAX-optimering: Var hittar du den dolda DAX-fällan

Men den föregående för kvartalet uttrycktes också i text, så det beror inte bara på att dess text. Det behöver bara redas ut. När du släpper fältet utan att sortera det kommer det att sorteras alfabetiskt.

I den utökade datumtabellen, låt oss ta en titt på det fältet som heter Månad och år . Om vi ​​tittar på det i kolumnen Sortera efter ser vi något intressant.

Vi kommer att se att den kolumnen är sorterad efter en siffra som kallas Månadsår. När du sorterar en kolumn efter en annan blir den sorteringskolumnen faktiskt en del av filterkontexten. Det är detta som förkastar den här beräkningen.

DAX-optimering: Var hittar du den dolda DAX-fällan

Låt oss gå tillbaka till vårt mått och ta bort sammanhanget för månaden och året som vi använder som vår sorts.

DAX-optimering: Var hittar du den dolda DAX-fällan

Vi får nu precis vad vi ska, vilket är månaden och året räknat som en ordentlig procentsats.

DAX-optimering: Var hittar du den dolda DAX-fällan

När du tar bort en filterkontext kommer det att krävas två fält för att göra detta när det är sorterat . Du kan fråga att istället för att behöva göra två fält här, varför kan vi inte bara ta bort filter på hela datumtabellen?

Svaret är att vi kan, och detta kommer att fungera för de tre exemplen som vi pratade om eftersom var och en av dessa kolumner är en del av vår datumtabell. Att ta bort all filterkontext på den tabellen kommer att fungera för alla tre fallen, men det här är faktiskt en dålig idé.

Som en allmän DAX-optimeringsprincip måste du ta bort så mycket filterkontext som behövs för att få det resultat du vill ha.

I de flesta fall kommer du inte att presentera detta i tabellformat. Du kommer att presentera det som en matris, och du behöver ett mer komplext mått eftersom du har två olika granulariteter i samma kolumn. Den här åtgärden ser komplicerad ut, men det är den verkligen inte.

DAX-optimering: Var hittar du den dolda DAX-fällan

Det här är bara en förlängning av vad vi redan har gjort. Den första delen av denna DAX-optimeringsberäkning visar nämnare för de olika granulariteterna. Vi tar bort filterkontexten för en månad, för året och för hela tabellen.

DAX-optimering: Var hittar du den dolda DAX-fällan

För den andra delen av beräkningen använde vi SWITCH TRUE. För denna funktion måste du gå från den mest specifika till den minst specifika. Månaden är vår snävare och mest specifika omfattning, så det är här vi börjar. Vi måste ta bort sammanhanget med de två fälten som vi identifierade.

DAX-optimering: Var hittar du den dolda DAX-fällan

För årens omfattning måste vi ta bort sammanhanget på året och ta bort sammanhanget på hela tabellen.

DAX-optimering: Var hittar du den dolda DAX-fällan

Låt oss ta en titt på vad som händer om vi ska ta och ta bort sammanhanget på det hela taget. Vi använder ett annat mått som tar bort sammanhanget från hela datumtabellen för alla tre fallen.

DAX-optimering: Var hittar du den dolda DAX-fällan

Vi kommer att se att åtgärden tar bort sammanhanget för mycket. Istället för att beräkna bidraget från varje månad till det året, beräknar det månadens bidrag till hela datamängden. Detta är inte vad vi vill ska hända eftersom att ta bort sammanhang från hela bordet är egentligen bara ett trubbigt instrument när en skalpell behövs.

Slutsats

Det finns många tillfällen där du har en matris och du måste noggrant kontrollera vilket sammanhang du tar bort. Att bara ta bort sammanhanget på hela bordet kommer att orsaka den här typen av problem.

Jag hoppas att när den här situationen uppstår (vilket alltid kommer, någon gång), kommer du att känna igen det som den dolda fällan som vi har diskuterat i detta DAX-optimeringsinlägg, och att du kommer att kunna undvika det utan samma frustration att det orsakade mig när jag först såg det och inte kunde lista ut varför min DAX inte fungerade som den ska.

Om du gillade ämnet för DAX-optimering som behandlas i denna speciella handledning, vänligen prenumerera på LuckyTemplates TV-kanal . Vi har en enorm mängd innehåll som kommer ut hela tiden från mig själv och en rad innehållsskapare, som alla är dedikerade till att förbättra ditt sätt att använda LuckyTemplates och Power Platform.


Upptäck unika insikter med LuckyTemplates TOPN-funktion

Upptäck unika insikter med LuckyTemplates TOPN-funktion

Den här bloggen innehåller LuckyTemplates TOPN DAX-funktion, som gör att du kan få unika insikter från dina data, vilket hjälper dig att fatta bättre marknadsföringsbeslut.

Datamodellering i LuckyTemplates med hjälp av stödtabeller

Datamodellering i LuckyTemplates med hjälp av stödtabeller

Lär dig några fantastiska analytiska tekniker som vi kan göra för datamodellering i LuckyTemplates med hjälp av DAX-stödtabeller.

Avancerad DAX för LuckyTemplates: Implementering av rankningslogik över unika insikter

Avancerad DAX för LuckyTemplates: Implementering av rankningslogik över unika insikter

Här dyker vi in ​​i LuckyTemplates Advanced DAX och implementerar rankningslogik för att få en mycket unik insikt. Jag visar också upp måttförgrening i det här exemplet.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Den här bloggen introducerar den nya funktionen i LuckyTemplates, analysparametern What-If. Du kommer att se hur det gör allt snabbt och enkelt för din scenarioanalys.

Använd LuckyTemplates Mät förgreningar för att kontrollera om dina marginaler ökar när intäkterna växer

Använd LuckyTemplates Mät förgreningar för att kontrollera om dina marginaler ökar när intäkterna växer

Lär dig hur du avgör om din intäktstillväxt är bra genom att kontrollera om dina marginaler ökade med hjälp av LuckyTemplates mäter förgrening.

LuckyTemplates parametrar via frågeredigerare

LuckyTemplates parametrar via frågeredigerare

Lär dig och förstå hur du kan skapa och använda LuckyTemplates-parametrar som är en kraftfull funktion i frågeredigeraren.

Runda stapeldiagram – En visualisering för din instrumentpanel

Runda stapeldiagram – En visualisering för din instrumentpanel

Denna handledning kommer att diskutera hur man skapar ett runt stapeldiagram med Charticulator. Du kommer att lära dig hur du designar dem för din LuckyTemplates-rapport.

PowerApps funktioner och formler | En introduktion

PowerApps funktioner och formler | En introduktion

Lär dig hur du använder PowerApps funktioner och formler för att förbättra funktionaliteten och ändra ett beteende i vår Power Apps canvas-app.

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.