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.


Streudiagramm-Visualisierungen mit Charticulator

Streudiagramm-Visualisierungen mit Charticulator

In diesem Tutorial erfahren Sie, wie Sie mit Charticulator eine Streudiagramm-Visualisierung für Ihren LuckyTemplates-Bericht erstellen und entwerfen.

PowerApps-Suchfeld: So fügen Sie es hinzu und passen es an

PowerApps-Suchfeld: So fügen Sie es hinzu und passen es an

Erfahren Sie, wie Sie ein PowerApps-Suchfeld von Grund auf erstellen und es an das Gesamtthema Ihrer App anpassen.

Power Automate String-Funktionen: Substring und IndexOf

Power Automate String-Funktionen: Substring und IndexOf

Erlernen Sie ganz einfach zwei komplizierte Power Automate String-Funktionen, die in Microsoft Flows verwendet werden können – die Funktionen substring und indexOf.

Power Query M: Abwechselndes 0-1-Muster in der Datumstabelle

Power Query M: Abwechselndes 0-1-Muster in der Datumstabelle

Dieses Tutorial konzentriert sich auf die Power Query M-Funktion „number.mod“, um ein abwechselndes 0-1-Muster in der Datumstabelle zu erstellen.

Prognosetechnik: Erkundung der Prognoselogik in LuckyTemplates-Modellen

Prognosetechnik: Erkundung der Prognoselogik in LuckyTemplates-Modellen

In diesem Tutorial führe ich eine Prognosetechnik durch, bei der ich meine tatsächlichen Ergebnisse mit meinen Prognosen vergleiche und sie kumulativ betrachte.

Speichern Sie E-Mail-Anhänge in SharePoint mit Power Automate

Speichern Sie E-Mail-Anhänge in SharePoint mit Power Automate

In diesem Blog erfahren Sie, wie Sie mit Power Automate E-Mail-Anhänge automatisch in SharePoint speichern und E-Mails anschließend löschen.

Führen Sie eine Bis-Loop-Steuerung in Power Automate durch

Führen Sie eine Bis-Loop-Steuerung in Power Automate durch

Erfahren Sie, wie die Do Until Schleifensteuerung in Power Automate funktioniert und welche Schritte zur Implementierung erforderlich sind.

Berechnen eines gleitenden Durchschnitts in LuckyTemplates mithilfe von DAX

Berechnen eines gleitenden Durchschnitts in LuckyTemplates mithilfe von DAX

In diesem Tutorial erfahren Sie, wie Sie mithilfe der ALLSELECTED-Funktion einen dynamischen gleitenden Durchschnitt in LuckyTemplates berechnen können.

Berechnen Sie dynamisch eine laufende oder kumulative LuckyTemplates-Summe

Berechnen Sie dynamisch eine laufende oder kumulative LuckyTemplates-Summe

Durch diesen Artikel erhalten wir ein klares und besseres Verständnis für die dynamische Berechnung einer laufenden oder kumulativen Gesamtsumme in LuckyTemplates.

Power Automate auf jede Aktion in Workflows anwenden

Power Automate auf jede Aktion in Workflows anwenden

Erfahren und verstehen Sie die Bedeutung und ordnungsgemäße Verwendung der Power Automate-Aktionssteuerung „Auf jede anwenden“ in unseren Microsoft-Workflows.