DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

Ik wil me vandaag concentreren op iets dat ik de verborgen DAX-valstrik noem. Als u deze situatie tegenkomt, krijgt u het gevoel dat u gek wordt, omdat uw DAX er goed uit zal zien, maar niet zal werken. Ik zal u laten zien wanneer dat gebeurt en wat u eraan kunt doen, en daarbij ook enkele algemene best practices voor DAX-optimalisatie bespreken. Je kunt de volledige video van deze tutorial onderaan deze blog bekijken.

Laten we eerst eens kijken waar we hier mee werken. We hebben ongeveer 10 jaar aan gegevens uit de Internet Movie Database. De feitentabellen zijn vrij eenvoudig en we hebben beoordelingsgegevens, budgetgegevens en brutogegevens.

Vandaag kijken we naar wereldwijde brutos.

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

We hebben ook onze uitgebreide datumtabel. Dit wordt een analyse van de tijdsintelligentie op basis van de datumtabel en de feitentabel.

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

Inhoudsopgave

Totaal wereldwijd bruto per jaar

We willen iets heel gewoons en eenvoudigs doen. Onze Total Worldwide Gross is slechts een zeer eenvoudige sommaatstaf, die we willen omzetten in een percentage.

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

Om dit te doen, nemen we de teller ( Totale Wereldwijde Bruto- maatstaf) en de noemer ( Totale Wereldwijde Bruto -maatstaf, maar de context is verwijderd uit het jaarfilter).

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

Ik heb de gebruikt omdat ik denk dat het intuïtiever is als je de code leest, maar als je de voorkeur geeft aan de , werkt dat net zo goed. We delen gewoon de teller door de noemer om het resultaat te krijgen.

Als we de resulterende maat nemen en deze in onze tabel plaatsen, zult u zien dat deze precies doet wat we ervan verwachten. We krijgen 100% onderaan en we krijgen de jaren omgezet in hun individuele percentages. So far so good, en we zijn nog geen problemen tegengekomen.

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

Totaal wereldwijd bruto per kwartaal

Laten we eens kijken naar een vergelijkbare situatie waarin we per kwartaal gaan. Deze maatstaf kan nuttig zijn omdat er de hypothese is dat de brutowinst van het filmseizoen in de zomer anders is dan aan het begin van het jaar en tegen het einde van het jaar dat leidt tot het Oscar-seizoen.

Nogmaals, we hebben exact dezelfde maat met de REMOVEFILTERS-functie op de kwartaalcijfers in plaats van het jaar.

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

En als we de zojuist gemaakte maat in de tabel laten vallen, doet hij ook precies wat we verwachten.

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

Totaal wereldwijd bruto per maand en jaar

Laten we eens kijken naar het derde geval, dat heel gewoon kan zijn, waar we per maand en jaar willen kijken.

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

En nogmaals, we gebruiken dezelfde maat als voorheen. Maar deze keer verwijderen we het filter op maand en jaar.

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

Laten we die in onze tafel laten vallen. Het werkt ineens niet.

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

We kunnen vertellen wat er niet aan werkt. We weten dat de wereldwijde brutomaatstaf werkt, dus dat betekent dat de teller goed is, maar de noemer niet. In elk van de voorgaande gevallen heeft de functie REMOVEFILTERS het filter correct verwijderd, maar hier duidelijk niet.

We kunnen dit daadwerkelijk testen door te wijzigen wat we hier in het resultaat hebben geretourneerd.

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

Laten we in plaats van Resultaat de noemer gebruiken. Houd er rekening mee dat dit in een percentage wordt opgemaakt, dus het ziet er een beetje raar uit.

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

Wat we zouden moeten krijgen voor de noemer is hetzelfde getal in elke rij, maar dat is het niet.

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

We kunnen zien dat het filter op maand en jaar niet wordt verwijderd, en denken dat het komt omdat de maand en het jaar in tekst staan.

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

Maar de vorige voor kwartaal werd ook uitgedrukt in tekst, dus het is niet alleen omdat het tekst is. Het moet alleen nog worden geregeld. Zodra u het veld neerzet zonder het te sorteren, wordt het alfabetisch gesorteerd.

Laten we in de uitgebreide datumtabel eens kijken naar dat veld genaamd Month & Year . Als we ernaar kijken in de kolom Sorteren op , zien we iets interessants.

We zullen zien dat die kolom is gesorteerd op een numerieke naam met de naam MonthnYear. Wanneer u de ene kolom op de andere sorteert, wordt die sorteerkolom feitelijk onderdeel van de filtercontext. Dit is wat deze berekening afwerpt.

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

Laten we teruggaan naar onze maat en de context van de maand en het jaar verwijderen die we als onze soort gebruiken.

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

We krijgen nu precies wat we zouden moeten, namelijk de maand en het jaar berekend als een juist percentage.

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

Bij het verwijderen van een filtercontext zijn er twee velden nodig om dit te doen wanneer het is gesorteerd . Je vraagt ​​je misschien af ​​waarom we, in plaats van twee velden in te vullen, niet gewoon de filters voor de hele datumtabel kunnen verwijderen?

Het antwoord is dat we dat kunnen, en dit zal werken voor de drie voorbeelden waar we het over hadden, omdat elk van die kolommen deel uitmaakt van onze datumtabel. Het verwijderen van alle filtercontext in die tabel werkt voor alle drie de gevallen, maar dit is eigenlijk een slecht idee.

Als algemeen DAX-optimalisatieprincipe moet u zoveel filtercontext verwijderen als nodig is om het gewenste resultaat te krijgen.

In de meeste gevallen gaat u dit niet in tabelvorm presenteren. Je presenteert het als een matrix en je hebt een complexere meting nodig omdat je twee verschillende granulariteiten in dezelfde kolom hebt. Deze maatregel lijkt ingewikkeld, maar is het echt niet.

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

Dit is slechts een uitbreiding van wat we al hebben gedaan. Het eerste deel van deze DAX-optimalisatieberekening toont de noemers voor de verschillende granulariteit. We verwijderen de filtercontext voor een maand, voor het jaar en voor de hele tabel.

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

Voor het tweede deel van de berekening hebben we SWITCH TRUE gebruikt. Voor deze functie moet je van de meest specifieke naar de minst specifieke gaan. Maand is onze krapste en meest specifieke scope, dus hier beginnen we. We moeten de context verwijderen met behulp van de twee velden die we hebben geïdentificeerd.

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

Voor de reikwijdte van jaar moeten we de context op jaar verwijderen en de context op de hele tabel verwijderen.

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

Laten we eens kijken wat er gebeurt als we de context van de hele datumtabel nemen en verwijderen . We zullen een andere maatstaf gebruiken die de context op de volledige datumtabel voor alle drie de gevallen verwijdert.

DAX-optimalisatie: waar de verborgen DAX-valstrik te vinden is

We zullen zien dat de maatregel de context te veel verwijdert. In plaats van de bijdrage van elke maand aan dat jaar te berekenen, berekent het de bijdrage van die maand aan de hele dataset. Dit is niet wat we willen, omdat het verwijderen van context uit de hele tabel eigenlijk gewoon een bot instrument is wanneer een scalpel nodig is.

Conclusie

Er zijn veel gevallen waarin u een matrix heeft en u zorgvuldig moet controleren welke context u verwijdert. Gewoon de context van de hele tabel verwijderen, zal dit soort problemen veroorzaken.

Ik hoop dat wanneer deze situatie zich voordoet (wat op een gegeven moment steevast zal gebeuren), je het zult herkennen als de verborgen valstrik die we hebben besproken in dit DAX-optimalisatiebericht, en dat je het zonder dezelfde frustratie kunt vermijden dat het me veroorzaakte toen ik het voor het eerst zag en niet kon achterhalen waarom mijn DAX niet goed werkte.

Als u genoten heeft van het DAX-optimalisatieonderwerp dat in deze specifieke tutorial wordt behandeld, abonneer u dan op het LuckyTemplates TV-kanaal . Er komt voortdurend een enorme hoeveelheid content uit van mijzelf en een reeks contentmakers, die allemaal toegewijd zijn aan het verbeteren van de manier waarop u LuckyTemplates en het Power Platform gebruikt.


Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Een RDS-bestand opslaan en laden in R

Een RDS-bestand opslaan en laden in R

Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.

First N Business Days Revisited – Een DAX-coderingstaaloplossing

First N Business Days Revisited – Een DAX-coderingstaaloplossing

In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.

Inleiding tot het filteren van context in LuckyTemplates

Inleiding tot het filteren van context in LuckyTemplates

In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.

Zakelijke rapportage met behulp van LuckyTemplates

Zakelijke rapportage met behulp van LuckyTemplates

Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten