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.


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.