DAX-Optimierung: Wo man die versteckte DAX-Falle findet

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Ich möchte mich heute auf etwas konzentrieren, das ich die versteckte DAX-Falle nenne. Wenn Sie auf diese Situation stoßen, werden Sie das Gefühl haben, den Verstand zu verlieren, weil Ihr DAX zwar richtig aussehen wird, aber nicht funktionieren wird. Ich erkläre Ihnen, wann das passiert und was Sie dagegen tun können, und spreche dabei auch über einige allgemeine Best Practices für die DAX-Optimierung. Das vollständige Video dieses Tutorials können Sie unten in diesem Blog ansehen.

Werfen wir zunächst einen Blick darauf, womit wir hier arbeiten. Wir verfügen über etwa 10 Jahre alte Daten aus der Internet Movie Database. Die Faktentabellen sind ziemlich einfach und wir verfügen über Bewertungsdaten, Budgetdaten und Bruttodaten.

Heute schauen wir uns die weltweiten Bruttoeinnahmen an.

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Wir haben auch unsere erweiterte Termintabelle. Hierbei handelt es sich um eine Zeitintelligenzanalyse basierend auf der Datumstabelle und der Faktentabelle.

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Inhaltsverzeichnis

Gesamtes weltweites Brutto pro Jahr

Wir wollen etwas wirklich Alltägliches und Einfaches tun. Unser Gesamtbrutto weltweit ist nur ein sehr einfaches Gesamtsummenmaß, das wir in einen Prozentsatz umrechnen möchten.

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Dazu nehmen wir den Zähler ( Maßeinheit „ Total Worldwide Gross“ ) und den Nenner ( Maßeinheit „ Total Worldwide Gross“ , haben aber den Kontext aus dem Jahresfilter entfernt).

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Ich habe die verwendet , weil ich denke, dass sie beim Lesen des Codes intuitiver ist, aber wenn Sie die bevorzugen , funktioniert das genauso gut. Wir dividieren einfach den Zähler durch den Nenner, um das Ergebnis zu erhalten.

Wenn wir das resultierende Maß nehmen und es in unsere Tabelle einfügen, werden Sie sehen, dass es genau das tut, was wir von ihm erwarten. Unten erhalten wir 100 % und die Jahre werden in ihre individuellen Prozentsätze umgerechnet. So weit, so gut, und wir hatten bisher keine Probleme.

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Gesamtes weltweites Brutto pro Quartal

Schauen wir uns eine ähnliche Situation an, in der wir nach Quartalen vorgehen. Diese Kennzahl könnte nützlich sein, da es Hypothesen gibt, dass sich die Einnahmen aus der Sommerfilmsaison von denen zu Beginn des Jahres und gegen Ende des Jahres, das zur Oscar-Saison führt, unterscheiden.

Auch hier haben wir mit der REMOVEFILTERS-Funktion genau das gleiche Maß für die Quartalszahlen statt für das Jahr.

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Und wenn wir die Maßnahme, die wir gerade erstellt haben, in die Tabelle einfügen, erfüllt sie auch genau das, was wir erwarten.

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Gesamtbrutto weltweit pro Monat und Jahr

Werfen wir einen Blick auf den dritten Fall, der sehr häufig vorkommen kann und bei dem wir nach Monat und Jahr suchen möchten.

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Und wieder verwenden wir das gleiche Maß wie zuvor. Aber dieses Mal entfernen wir den Filter nach Monat und Jahr.

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Lassen Sie uns das auf unseren Tisch legen. Plötzlich funktioniert es nicht mehr.

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Wir können erkennen, was daran nicht funktioniert. Wir wissen, dass das weltweite Bruttomaß funktioniert. Das bedeutet, dass der Zähler in Ordnung ist, der Nenner jedoch nicht. In jedem der vorherigen Fälle hat die REMOVEFILTERS-Funktion den Filter ordnungsgemäß entfernt, in diesem Fall war dies jedoch eindeutig nicht der Fall.

Wir können dies tatsächlich testen, indem wir ändern, was wir hier im Ergebnis zurückgegeben haben.

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Anstelle von Ergebnis verwenden wir den Nenner. Denken Sie daran, dass dies als Prozentsatz formatiert wird, sodass es etwas komisch aussieht.

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Als Nenner sollten wir in jeder Zeile die gleiche Zahl erhalten, aber das ist nicht der Fall.

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Wir können erkennen, dass der Filter für Monat und Jahr nicht entfernt wird, und vermuten, dass das daran liegt, dass Monat und Jahr im Text vorliegen.

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Aber auch das vorherige für das Quartal wurde in Textform ausgedrückt, es liegt also nicht nur am Text. Es muss nur geklärt werden. Sobald Sie das Feld löschen, ohne es zu sortieren, wird es alphabetisch sortiert.

Schauen wir uns in der erweiterten Datumstabelle das Feld „ Month & Year“ an . Wenn wir uns die Spalte „Sortieren nach“ ansehen , werden wir etwas Interessantes sehen.

Wir werden sehen, dass diese Spalte nach einer Zahl namens MonthnYear sortiert ist. Wenn Sie eine Spalte nach einer anderen sortieren, wird diese Sortierspalte tatsächlich Teil des Filterkontexts. Das ist es, was diese Berechnung durcheinander bringt.

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Kehren wir zu unserem Maß zurück und entfernen den Kontext des Monats und Jahres, die wir als Sortierung verwenden.

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Wir erhalten jetzt genau das, was wir sollten, nämlich den Monat und das Jahr, die als richtiger Prozentsatz berechnet werden.

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Wenn Sie einen Filterkontext entfernen, sind beim Sortieren zwei Felder erforderlich . Sie fragen sich vielleicht, warum wir nicht einfach Filter für die gesamte Datumstabelle entfernen können, anstatt hier zwei Felder bearbeiten zu müssen?

Die Antwort ist, dass wir das können, und das wird für die drei Beispiele funktionieren, über die wir gesprochen haben, weil jede dieser Spalten Teil unserer Datumstabelle ist. Das Entfernen des gesamten Filterkontexts in dieser Tabelle funktioniert in allen drei Fällen, aber das ist eigentlich eine schlechte Idee.

Als allgemeines DAX-Optimierungsprinzip müssen Sie so viel Filterkontext entfernen, wie nötig ist, um das gewünschte Ergebnis zu erhalten.

In den meisten Fällen werden Sie dies nicht in tabellarischer Form darstellen. Sie stellen es als Matrix dar und benötigen eine komplexere Kennzahl, da in derselben Spalte zwei unterschiedliche Granularitäten vorhanden sind. Diese Maßnahme sieht kompliziert aus, ist es aber nicht.

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Dies ist nur eine Erweiterung dessen, was wir bereits getan haben. Der erste Teil dieser DAX-Optimierungsrechnung zeigt die Nenner für die unterschiedliche Granularität. Wir entfernen den Filterkontext für einen Monat, für das Jahr und für die gesamte Tabelle.

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Für den zweiten Teil der Berechnung haben wir SWITCH TRUE verwendet. Für diese Funktion müssen Sie vom spezifischsten zum am wenigsten spezifischen gehen. Der Monat ist unser engster und spezifischster Bereich, also beginnen wir hier. Wir müssen den Kontext mithilfe der beiden von uns identifizierten Felder entfernen.

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Für den Bereich „Jahr“ müssen wir den Kontext für das Jahr und den Kontext für die gesamte Tabelle entfernen.

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Werfen wir einen Blick darauf, was passiert, wenn wir den Kontext für die gesamte Datumstabelle übernehmen und entfernen . Wir verwenden eine andere Kennzahl, die für alle drei Fälle den Kontext aus der gesamten Datumstabelle entfernt.

DAX-Optimierung: Wo man die versteckte DAX-Falle findet

Wir werden sehen, dass die Maßnahme den Kontext übermäßig entfernt. Anstatt den Beitrag jedes Monats zu diesem Jahr zu berechnen, wird der Beitrag dieses Monats zum gesamten Datensatz berechnet. Das ist nicht das, was wir wollen, denn das Entfernen des Kontexts aus der gesamten Tabelle ist eigentlich nur ein stumpfes Instrument, wenn ein Skalpell nötig ist.

Abschluss

Es gibt viele Fälle, in denen Sie eine Matrix haben und sorgfältig kontrollieren müssen, welchen Kontext Sie entfernen. Das bloße Entfernen des Kontexts für die gesamte Tabelle führt zu derartigen Problemen.

Ich hoffe, wenn diese Situation auftritt (was unweigerlich irgendwann der Fall sein wird), werden Sie darin die versteckte Falle erkennen, die wir in diesem Beitrag zur DAX-Optimierung besprochen haben, und Sie können sie ohne die gleiche Frustration vermeiden dass es mich verursachte, als ich es zum ersten Mal sah und nicht herausfinden konnte, warum mein DAX nicht richtig funktionierte.

Wenn Ihnen das in diesem speziellen Tutorial behandelte Thema der DAX-Optimierung gefallen hat, abonnieren Sie bitte den LuckyTemplates-TV-Kanal . Wir veröffentlichen ständig eine große Menge an Inhalten von mir selbst und einer Reihe von Inhaltserstellern, die sich alle dafür einsetzen, die Art und Weise zu verbessern, wie Sie LuckyTemplates und die Power Platform nutzen.


So speichern und laden Sie eine RDS-Datei in R

So speichern und laden Sie eine RDS-Datei in R

Sie erfahren, wie Sie Objekte aus einer .rds-Datei in R speichern und laden. In diesem Blog wird auch behandelt, wie Sie Objekte aus R in LuckyTemplates importieren.

Was ist Self in Python: Beispiele aus der Praxis

Was ist Self in Python: Beispiele aus der Praxis

Was ist Self in Python: Beispiele aus der Praxis

First N Business Days Revisited – Eine DAX-Codierungssprachenlösung

First N Business Days Revisited – Eine DAX-Codierungssprachenlösung

In diesem Tutorial zur DAX-Codierungssprache erfahren Sie, wie Sie die GENERATE-Funktion verwenden und einen Kennzahltitel dynamisch ändern.

Präsentieren Sie Einblicke mithilfe der Multi-Threaded-Dynamic-Visuals-Technik in LuckyTemplates

Präsentieren Sie Einblicke mithilfe der Multi-Threaded-Dynamic-Visuals-Technik in LuckyTemplates

In diesem Tutorial erfahren Sie, wie Sie mithilfe der Multi-Threaded-Dynamic-Visuals-Technik Erkenntnisse aus dynamischen Datenvisualisierungen in Ihren Berichten gewinnen.

Einführung in den Filterkontext in LuckyTemplates

Einführung in den Filterkontext in LuckyTemplates

In diesem Artikel werde ich den Filterkontext durchgehen. Der Filterkontext ist eines der Hauptthemen, über die sich jeder LuckyTemplates-Benutzer zunächst informieren sollte.

Beste Tipps zur Verwendung der Apps im LuckyTemplates-Onlinedienst

Beste Tipps zur Verwendung der Apps im LuckyTemplates-Onlinedienst

Ich möchte zeigen, wie der LuckyTemplates Apps-Onlinedienst bei der Verwaltung verschiedener Berichte und Erkenntnisse aus verschiedenen Quellen helfen kann.

Analysieren Sie Gewinnmargenänderungen im Laufe der Zeit – Analysen mit LuckyTemplates und DAX

Analysieren Sie Gewinnmargenänderungen im Laufe der Zeit – Analysen mit LuckyTemplates und DAX

Erfahren Sie, wie Sie Ihre Gewinnmargenänderungen mithilfe von Techniken wie Kennzahlenverzweigung und der Kombination von DAX-Formeln in LuckyTemplates ermitteln.

Materialisierungsideen für Datencaches in DAX Studio

Materialisierungsideen für Datencaches in DAX Studio

In diesem Tutorial werden die Ideen der Materialisierung von Datencaches und deren Auswirkungen auf die Leistung von DAXs bei der Bereitstellung von Ergebnissen erläutert.

Geschäftsberichte mit LuckyTemplates

Geschäftsberichte mit LuckyTemplates

Wenn Sie bisher noch Excel verwenden, ist dies der beste Zeitpunkt, LuckyTemplates für Ihre Geschäftsberichtsanforderungen zu verwenden.

Was ist LuckyTemplates Gateway? Alles was du wissen musst

Was ist LuckyTemplates Gateway? Alles was du wissen musst

Was ist LuckyTemplates Gateway? Alles was du wissen musst