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

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

Schauen wir uns noch einmal das in diesem Tutorial besprochene Problem an , bei dem die ersten N Werktage jedes Monats dynamisch verglichen wurden. Dieses Problem basierte auf einer Anfrage eines LuckyTemplates-Mitglieds in unserem Forum, bei dem er die ersten 5, 10, 15 und 20 abrechenbaren Tage (die Nicht-Wochenenden und Nicht-Feiertage) für einen bestimmten Monat dynamisch suchen und vergleichen wollte des Vormonats.

Anstatt Power Query zu verwenden, werden wir eine DAX-Codierungssprachenlösung entwickeln. Das vollständige Video dieses Tutorials können Sie unten in diesem Blog ansehen.

Im ersten Video habe ich eine Power-Query-Lösung zur Lösung dieses Problems entwickelt. Doch dann entwickelte einer unserer LuckyTemplates-Experten, Antriksh Sharma, eine äußerst effiziente Maßnahme, die es auch wert ist, tiefer in die Materie einzutauchen. Wir werden einige der Techniken besprechen, die er bei der Entwicklung einer Kennzahl verwendet hat, die Ihnen zusätzliche Tools in Ihrer DAX-Toolbox bietet.

Für mich und einige der anderen Experten, die sich das angeschaut haben, war das auf jeden Fall der Fall. Der vergleichbare Vergleich vergleichbarer Geschäftstage über Monate hinweg ist im Allgemeinen ein wertvolles Muster, das in vielen Situationen verwendet werden kann.

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

Lassen Sie uns in die Leistungsabfrage eintauchen und einen Blick darauf werfen, was Antriksh hier getan hat. Wir haben den Monat und das Jahr , den Gesamtumsatz und schließlich den Gesamtumsatz für N Werktage , die wir mithilfe einer Power-Abfrage basierend auf dem von uns entwickelten Was-wäre-wenn-Parameter ausgewählt haben.

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

Antriksh verfolgte einen ganz anderen Ansatz und nutzte eine erschreckend kurze Maßnahme, um das gesamte Problem zu lösen. Das erste, was mir dabei auffiel, war die Verwendung des Befehls.

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

Dies ist eine DAX-Funktion, die ich nicht sehr oft verwende, die aber perfekt für diese Art von Problem geeignet ist. Wenn wir uns den SQL BI DAX-Leitfaden ansehen, heißt es, dass die GENERATE-Funktion eine Tabellenfunktion ist, die als Eingabe zwei verschiedene Tabellen verwendet und dann ein Äquivalent des SQL-Befehls CROSS APPLY ausführt.

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

Es nimmt also eine Basistabelle (Tabelle1) und iteriert darüber, nimmt dann einen zweiten Tabellenausdruck und wertet diesen für jede Zeile in der ersten Tabelle aus und kehrt dann als Ausgabe zur Tabelle zurück.

Nehmen wir Antrikshs Maß und legen wir es in die Tabelle. Wir können sehen, dass es genau die gleichen Ergebnisse liefert wie die Power-Query-Lösung, die wir letztes Mal durchgeführt haben. Das ist also gut und bestätigt beide Maßnahmen recht gut.

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

Nehmen wir diese Maßnahme auseinander. Der erste hier angewendete Filter ist Dates[IsBusinessDay] = TRUE. Dadurch werden alle Nicht-Wochenend- und Nicht-Feiertagsdaten basierend auf dem Feld „IsBusinessDay“ der erweiterten Datumstabelle entfernt.

Im ersten Tutorial sprechen wir ausführlicher darüber , wo wir auch erfahren haben, wie wir das in unseren Feiertagstisch einbinden können.

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

Der interessante Teil davon liegt wirklich in den beiden Tabelleneingaben. Die erste Tabelle ist nur eine einspaltige Tabelle des Felds „Monat und Jahr“ in der Datumstabelle.

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

Aber in der zweiten Tabelleneingabe passieren die interessanten Dinge. Antriksh verwendete eine und verwendete dann unseren dynamischen Parameter als Anzahl der Zeilen im TOPN.

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

Die Kennzahl „Gesamtumsatz“ wird an die zweite Tabelle angehängt und dann auf die erste Tabelle angewendet.

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

Inhaltsverzeichnis

Eine komplexe Kennzahl mithilfe der DAX-Codierungssprache verstehen

Eine der einfachsten Möglichkeiten, herauszufinden, was eine komplexe Kennzahl wie diese bewirkt, besteht darin, den Tabelleneditor aufzurufen . Wir können uns diesen Ausdruck ansehen und zunächst herausfinden, was dieser TOPN-Ausdruck bewirkt.

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

Kopieren wir den TOPN-Teil und erstellen wir eine neue DAX-Abfrage . Denken Sie daran, dass DAX-Abfragen mit EVALUATE beginnen.

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

Wenn wir den TOPN-Teil einfügen, sehen wir, dass dadurch die ersten fünf Daten aus der Kundenauftragstabelle gezogen werden. Im TOPN gibt es eine Tabelle, die aus den Werten aller Bestelldaten in der Verkaufstabelle besteht.

Diese TOPN-Funktion übernimmt den Wert des Was-wäre-wenn-Parameters (der in diesem Fall 5 ist) und wendet ihn auf das Feld „Kundenauftragsdatum“ an. Anschließend werden die ersten fünf Daten im Filterkontext in aufsteigender Reihenfolge basierend auf diesem Feld abgerufen.

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

Da es keinen zusätzlichen Filterkontext gibt, werden lediglich die ersten fünf Daten aus der gesamten Tabelle abgerufen.

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

Die @Sales-Spalte fügt lediglich die Gesamtverkäufe im richtigen Filterkontext zur TOPN-Tabelle hinzu.

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

Bisher haben wir die erste Tabelle des Monats und des Jahres, die zweite Tabelle der TOPN der ersten N Daten aus der Verkaufstabelle und dann die damit verbundenen Gesamtverkäufe.

Verwenden der GENERATE-Tabelle in der DAX-Codierungssprache

Werfen wir einen Blick darauf, was diese GENERATE-Tabelle macht. Wir kehren zum Tabelleneditor zurück und erstellen eine neue DAX-Abfrage.

Wir beginnen wie immer mit EVALUATE, fügen den GENERATE-Teil des Codes ein und klicken auf 5.

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

Wir können sehen, dass für jede Zeile der ersten Tabelle eine Iteration und eine Verknüpfung mit den 5 Zeilen aus der TOPN-Tabelle durchgeführt wird, die im Kontext mit der @Sales-Funktion ausgewertet wurden.

Es hat die ersten 5 Werktage im April, die ersten 5 Werktage im Mai, die ersten 5 Werktage im Juni usw. gedauert, bis das Ende der ersten Tabelle erreicht ist.

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

Das ist genau das, was wir brauchen, und jetzt ist es relativ einfach, diese Werte zu addieren. Wir haben das Ergebnis (das ist die Tabellenvariable der GENERATE-Ergebnisse) und müssen dann die @Sales-Funktion zusammenfassen.

Im Kontext summieren wir nun die ersten fünf Geschäftstage im April, die ersten fünf Geschäftstage im Mai usw., bis wir bei unserem Gesamtbetrag von 23.737.430 US-Dollar angelangt sind. In diesem Fall gibt es keinen Zusammenhang zwischen Monat und Jahr .

Dadurch wird die gesamte @Sales-Spalte zusammengefasst und wir erhalten genau die gleiche Summe wie in unserer Power-Query-Lösung.

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

Sie können sehen, dass wir, wenn wir den Slicer auf 10 ändern, mit der DAX-Codierungssprache dynamisch dieselben Ergebnisse erhalten wie bei der Power-Abfrage.

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

Außerdem passt sich das Balkendiagramm unten dynamisch an die von uns vorgenommenen Änderungen an.

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

Takttitel dynamisch anpassen

Es gibt noch einen weiteren Trick, den ich Ihnen zeigen wollte. Sie können eine dynamische Anpassung Ihres Was-wäre-wenn-Parameters erstellen und diese dynamisch in einen Kennzahlentitel einbinden.

Wenn wir beispielsweise den Slicer oben auf 15 ändern, wird der Name der Kennzahl unten dynamisch in „ Total Sales for the First 15 Business Days of Each Month“ geändert .

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

In DAX gibt es eine einfache Möglichkeit, dies mithilfe der bedingten Formatierung zu tun . Wir nehmen im Grunde nur drei Saiten. Der erste ist der Gesamtumsatz für First . Anschließend verketten wir diesen mit dem Wert, den wir aus dem Was-wäre-wenn-Parameter ermitteln, und verknüpfen ihn dann einfach mit dem Rest des Titels.

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

Dann gehen wir ins Visual, gehen zur bedingten Formatierung des Titels und klicken auf fx .

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

Wir formatieren nach Feldwert und wählen das dynamische Titelmaß aus. Dadurch wird die Auswahl des Was-wäre-wenn-Parameters geändert.

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

Abschluss

Was wir jetzt haben, ist eine Komplettlösung mit der DAX-Codierungssprache. Wir haben eine wirklich kreative und effiziente Möglichkeit besprochen, dies mithilfe der GENERATE-Funktion zu tun. Ich möchte Antriksh dafür danken, dass er sein brillantes DAX-Wissen mit uns geteilt hat. Ich habe viel gelernt, als ich seine DAX-Lösung durchgegangen bin, und ich hoffe, Sie haben das auch gelernt.


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