DAX-optimering: Hvor finder du den skjulte DAX-fælde

Jeg vil i dag fokusere på noget, jeg kalder den skjulte DAX-fælde. Hvis du støder på denne situation, vil det få dig til at føle, at du er ved at miste forstanden, fordi din DAX kommer til at se rigtig ud, men den kommer ikke til at fungere. Jeg vil lede dig igennem, hvornår det sker, og hvad du kan gøre ved det, og i processen vil jeg også tale om nogle generelle bedste praksisser for DAX-optimering. Du kan se den fulde video af denne tutorial nederst på denne blog.

Lad os først tage et kig på, hvad vi arbejder med her. Vi har omkring 10 års data fra Internet Movie Database. Faktatabellerne er ret enkle, og vi har ratingdata, budgetdata og bruttodata.

I dag vil vi se på verdensomspændende brutto.

DAX-optimering: Hvor finder du den skjulte DAX-fælde

Vi har også vores udvidede datotabel. Dette vil være en tidsintelligensanalyse baseret på datotabellen og faktatabellen.

DAX-optimering: Hvor finder du den skjulte DAX-fælde

Indholdsfortegnelse

Total verdensomspændende brutto pr. år

Vi vil gerne gøre noget virkelig almindeligt og enkelt. Vores samlede verdensomspændende brutto er blot et meget simpelt samlet summål, som vi ønsker at konvertere til en procentdel.

DAX-optimering: Hvor finder du den skjulte DAX-fælde

For at gøre dette tager vi tælleren ( Total verdensomspændende bruttomål ) og nævneren ( total verdensomspændende bruttomål , men fjernede konteksten fra årsfilteret).

DAX-optimering: Hvor finder du den skjulte DAX-fælde

Jeg brugte, fordi jeg synes, det er mere intuitivt, når du læser koden, men hvis du foretrækker , fungerer det lige så godt. Vi dividerer bare tælleren med nævneren for at få resultatet.

Hvis vi tager den resulterende foranstaltning og dropper den i vores tabel, vil du se, at den gør præcis, hvad vi forventer, den gør. Vi kommer 100% i bund og vi får årene omregnet til deres individuelle procenter. Så langt så godt, og vi har ikke stødt på nogen problemer endnu.

DAX-optimering: Hvor finder du den skjulte DAX-fælde

Total verdensomspændende brutto pr. kvartal

Lad os tage et kig på en lignende situation, hvor vi går efter kvartal. Denne foranstaltning kan være nyttig, fordi der er hypoteser om, at indtægterne fra sommerfilmsæsonen er forskellige fra begyndelsen af ​​året og mod slutningen af ​​året, der fører til Oscar-sæsonen.

Igen har vi nøjagtig samme mål med funktionen FJERN FILTRE på kvartalstallene i stedet for året.

DAX-optimering: Hvor finder du den skjulte DAX-fælde

Og dropper vi det mål, vi lige har lavet, i tabellen, gør det også præcis, hvad vi forventer.

DAX-optimering: Hvor finder du den skjulte DAX-fælde

Total verdensomspændende brutto pr. måned og år

Lad os tage et kig på det tredje tilfælde, som kan være rigtig almindeligt, hvor vi vil kigge efter måned og år.

DAX-optimering: Hvor finder du den skjulte DAX-fælde

Og igen, vi bruger samme målestok som før. Men denne gang fjerner vi filteret på måned og år.

DAX-optimering: Hvor finder du den skjulte DAX-fælde

Lad os smide den i vores bord. Lige pludselig virker det ikke.

DAX-optimering: Hvor finder du den skjulte DAX-fælde

Vi kan fortælle, hvad der ikke virker ved det. Vi ved, at verdensomspændende bruttomål virker, så det betyder, at tælleren er fin, men nævneren er det ikke. I hvert af de foregående tilfælde fjernede funktionen REMOVEFILTERS filteret korrekt, men her gjorde den det tydeligvis ikke.

Vi kan faktisk teste dette ved at ændre, hvad vi returnerede her i resultatet.

DAX-optimering: Hvor finder du den skjulte DAX-fælde

I stedet for Resultat, lad os bruge Nævner. Husk, at dette vil blive formateret i en procentdel, så det kommer til at se lidt sjovt ud.

DAX-optimering: Hvor finder du den skjulte DAX-fælde

Det, vi burde få for nævneren, er det samme tal i hver række, men det er det ikke.

DAX-optimering: Hvor finder du den skjulte DAX-fælde

Vi kan se, at det ikke fjerner filteret på måned og år, og tror, ​​det er fordi måned og år er i teksten.

DAX-optimering: Hvor finder du den skjulte DAX-fælde

Men den forrige for kvartal blev også udtrykt i tekst, så det er ikke bare fordi dens tekst. Det skal kun ordnes. Når du slipper feltet uden at sortere det, vil det sortere alfabetisk.

Lad os i den udvidede datotabel tage et kig på det felt, der hedder Måned og år . Hvis vi ser på det i kolonnen Sorter efter , vil vi se noget interessant.

Vi vil se, at den kolonne er sorteret efter et tal kaldet månedsår. Når du sorterer en kolonne efter en anden, bliver denne sorteringskolonne faktisk en del af filterkonteksten. Det er det, der afviser denne beregning.

DAX-optimering: Hvor finder du den skjulte DAX-fælde

Lad os gå tilbage til vores mål og fjerne konteksten for måneden og året, som vi bruger som vores sortering.

DAX-optimering: Hvor finder du den skjulte DAX-fælde

Vi får nu præcis, hvad vi skal, som er måneden og året udregnet som en ordentlig procentdel.

DAX-optimering: Hvor finder du den skjulte DAX-fælde

Når du fjerner en filterkontekst, skal der to felter til at gøre dette, når den er sorteret . Du kan spørge, at i stedet for at skulle lave to felter her, hvorfor kan vi så ikke bare fjerne filtre på hele datotabellen?

Svaret er, at vi kan, og det vil fungere for de tre eksempler, vi talte om, fordi hver af disse kolonner er en del af vores datotabel. Fjernelse af hele filterkonteksten på den tabel vil fungere for alle tre tilfælde, men det er faktisk en dårlig idé.

Som et generelt DAX-optimeringsprincip skal du fjerne så meget filterkontekst som nødvendigt for at få det resultat, du ønsker.

I de fleste tilfælde vil du ikke præsentere dette i et tabelformat. Du vil præsentere det som en matrix, og du skal bruge en mere kompleks målestok, fordi du har to forskellige granulariteter i samme kolonne. Denne foranstaltning ser kompliceret ud, men det er den virkelig ikke.

DAX-optimering: Hvor finder du den skjulte DAX-fælde

Dette er blot en forlængelse af, hvad vi allerede har gjort. Den første del af denne DAX-optimeringsberegning viser nævnerne for de forskellige granulariteter. Vi fjerner filterkonteksten for en måned, for året og for hele tabellen.

DAX-optimering: Hvor finder du den skjulte DAX-fælde

Til anden del af beregningen brugte vi SWITCH TRUE. For denne funktion skal du gå fra den mest specifikke til den mindst specifikke. Måned er vores strammeste og mest specifikke omfang, så det er her, vi starter. Vi bliver nødt til at fjerne kontekst ved hjælp af de to felter, som vi har identificeret.

DAX-optimering: Hvor finder du den skjulte DAX-fælde

For årrækkens omfang er vi nødt til at fjerne konteksten på år og fjerne konteksten på hele bordet.

DAX-optimering: Hvor finder du den skjulte DAX-fælde

Lad os tage et kig på, hvad der sker, hvis vi skal tage og fjerne sammenhængen i det hele taget. Vi bruger et andet mål, der fjerner konteksten på hele datotabellen for alle tre tilfælde.

DAX-optimering: Hvor finder du den skjulte DAX-fælde

Vi vil se, at foranstaltningen overfjerner konteksten. I stedet for at beregne bidraget fra hver måned til det pågældende år, beregner det månedens bidrag til hele datasættet. Det er ikke, hvad vi ønsker, at der skal ske, fordi det at fjerne kontekst fra hele bordet i virkeligheden bare er et stumpt instrument, når der er brug for en skalpel.

Konklusion

Der er mange tilfælde, hvor du har en matrix, og du skal nøje kontrollere, hvilken kontekst du fjerner. At bare fjerne konteksten på hele bordet vil forårsage den slags problemer.

Jeg håber, at når denne situation opstår (hvilket uvægerligt vil på et tidspunkt), vil du genkende det som den skjulte fælde, som vi har diskuteret i dette DAX-optimeringsindlæg, og du vil være i stand til at undgå det uden samme frustration at det forårsagede mig, da jeg så det første gang og ikke kunne finde ud af, hvorfor min DAX ikke fungerede korrekt.

Hvis du kunne lide DAX-optimeringsemnet, der er dækket i denne særlige vejledning, bedes du abonnere på LuckyTemplates tv-kanal . Vi har en enorm mængde indhold, der kommer ud hele tiden fra mig selv og en række indholdsskabere, som alle er dedikerede til at forbedre den måde, du bruger LuckyTemplates og Power Platform på.


Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Denne blog indeholder LuckyTemplates TOPN DAX-funktionen, som giver dig mulighed for at få unik indsigt fra dine data, hvilket hjælper dig med at træffe bedre markedsføringsbeslutninger.

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Lær nogle fantastiske analytiske teknikker, som vi kan gøre til datamodellering i LuckyTemplates ved hjælp af DAX-understøttende tabeller.

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Her dykker vi ned i LuckyTemplates Advanced DAX og implementerer rangeringslogik for at få en meget unik indsigt. Jeg viser også måleforgrening i dette eksempel.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Denne blog introducerer den nye funktion i LuckyTemplates, What-If-analyseparameteren. Du vil se, hvordan det gør alt hurtigt og nemt til din scenarieanalyse.

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Lær, hvordan du afgør, om din omsætningsvækst er god ved at kontrollere, om dine avancer er udvidet ved hjælp af LuckyTemplates, der måler forgrening.

LuckyTemplates-parametre via forespørgselseditor

LuckyTemplates-parametre via forespørgselseditor

Lær og forstå, hvordan du kan oprette og bruge LuckyTemplates Parameters, som er en kraftfuld funktion i Query Editor.

Rundt søjlediagram – en visualisering til dit dashboard

Rundt søjlediagram – en visualisering til dit dashboard

Denne vejledning vil diskutere om oprettelse af et rundt søjlediagram ved hjælp af Charticulator. Du lærer, hvordan du designer dem til din LuckyTemplates-rapport.

PowerApps funktioner og formler | En introduktion

PowerApps funktioner og formler | En introduktion

Lær, hvordan du bruger PowerApps-funktioner og -formler til at forbedre funktionaliteten og ændre adfærd i vores Power Apps-lærredsapp.

Pipe In R: Tilslutningsfunktioner med Dplyr

Pipe In R: Tilslutningsfunktioner med Dplyr

I denne øvelse lærer du, hvordan du kæder funktioner sammen ved hjælp af dplyr-røroperatoren i programmeringssproget R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX fra LuckyTemplates giver dig mulighed for at returnere rangeringen af ​​et specifikt tal i hver tabelrække, der udgør en del af en liste over tal.