Zeitintelligenz in DAX: So wählen Sie den Startzeitraum dynamisch aus

Zeitintelligenz in DAX: So wählen Sie den Startzeitraum dynamisch aus

In diesem Blogbeitrag werden wir uns mit einigen problematischen Problemen bei der Zeitintelligenz befassen, insbesondere mit den Problemen, die durch die Wochengranularität verursacht werden, und mit den Problemen, die durch die unregelmäßige Anzahl von Wochen in einem Jahr verursacht werden können. Wir werden Offsets verwenden, um genaue Zeitinformationen in DAX zu erhalten.

Wir haben heute ein interessantes Szenario für Sie. Dies ist kürzlich ein paar Mal im LuckyTemplates-Forum aufgetaucht. Was die Leute tun wollten, war, ein visuelles Element (das ein Liniendiagramm oder ein Balkendiagramm sein könnte) zu nehmen und es am Startdatum dynamisch zu variieren. Das vollständige Video dieses Tutorials können Sie unten in diesem Blog ansehen.

Zeitintelligenz in DAX: So wählen Sie den Startzeitraum dynamisch aus

In diesem Fall haben wir denselben Datensatz verwendet, den wir für den durchschnittlichen Spotpreis pro Barrel Öl verwendet haben . Anstatt immer am Anfang im Januar zu beginnen, wollten wir in der Lage sein, auf das Bild zu klicken, es auf ein anderes Startdatum zu ändern, aber immer Daten für ein Jahr anzuzeigen.

Inhaltsverzeichnis

Beispielszenarien der Zeitintelligenz im DAX

Es gibt eine Reihe von Gründen, warum Sie diese Technik anwenden möchten. Sie können dies verwenden, wenn Sie über eine Metrik verfügen, deren Berechnung ständig neu angepasst wird. Möglicherweise möchten Sie nur die Daten ab dem Zeitraum der Neuanpassung anzeigen.

Ein weiterer Grund, dies zu verwenden, besteht darin, dass Sie dies animiert visualisieren möchten. Dadurch werden Ihre Daten grundsätzlich erfasst und dynamisch angezeigt, sobald Sie auf den Wiedergabezugriff klicken.

Zeitintelligenz in DAX: So wählen Sie den Startzeitraum dynamisch aus

In dieser Visualisierung können wir das Startdatum Monat für Monat ändern, um zu zeigen, wie es sich in einem Zeitraum von 12 Monaten im Laufe der Zeit ändert. Dies ist ein interessantes und nützliches Bild für verschiedene Geschäftsfälle, stellt aber theoretisch auch eine Reihe wichtiger Themen im Zusammenhang mit DAX und Datenmodellierung dar.

Gehen wir zu LuckyTemplates und schauen uns zunächst unser Datenmodell an. Dabei handelt es sich um ein wirklich einfaches Datenmodell mit einer erweiterten Datumstabelle und einer mit den Daten verbundenen Spotpreistabelle .

Zeitintelligenz in DAX: So wählen Sie den Startzeitraum dynamisch aus

Verwendung von Offsets für Zeitintelligenz in DAX

Eines der Dinge, an denen wir arbeiten werden, sind Offsets . Die Offsets in der erweiterten Datumstabelle werden dynamisch berechnet. Jedes Mal, wenn der Bericht aktualisiert oder geöffnet wird, durchläuft er den M-Code. Bei einem monatlichen Offset wird beispielsweise der aktuelle Monat mit 0, der vorherige Monat mit -1 und zwei Monate zurück mit -2 zugewiesen. Für die Zukunft weist es dem nächsten Monat +1 und für zwei Monate in der Zukunft +2 zu.

Dies ist ein einfaches Konzept, aber unglaublich wirkungsvoll, wenn Sie sich mit Zeitintelligenz in DAX befassen und mit Monaten , Quartalen und Wochen arbeiten . Wenn Sie keinen Offset verwenden, führt dies manchmal zu einer erheblichen Komplexität Ihrer Berechnungen.

Die Verwendung von Offsets bedeutet die Verwendung einer fortlaufenden Reihe von Zahlen, bei der der Rückschritt um einen Monat immer -1 und der Vorwärtsschritt immer +1 beträgt, unabhängig davon, wo im Jahr Sie sich befinden.

Implementierung der Rubber Duck-Strategie für Zeitintelligenz im DAX

In der Vergangenheit habe ich vom Rubber Ducking gesprochen , bei dem man seine Strategie laut ausspricht, bevor man mit dem Schreiben seines DAX beginnt.

Zeitintelligenz in DAX: So wählen Sie den Startzeitraum dynamisch aus

Ich denke laut darüber nach, wie ich dies aus einem monatlichen Kontext mithilfe der Zeitintelligenz in DAX handhaben werde. Ich würde etwas beginnen, das auf dem ausgewählten Jahr und dem ausgewählten Monat basiert, und diese mithilfe einer nicht verbundenen Tabelle auswählen, denn wenn Sie darüber nachdenken, müssen Sie bei jeder anderen Auswahl die Jahre kreuzen (mit Ausnahme von Januar).

Nehmen wir an, wir möchten ab März 12 Monate haben, im darauffolgenden Jahr werden es dann mindestens zwei Monate sein. Wenn wir einen angeschlossenen Slicer verwenden, können wir nur für dieses Jahr filtern und können nicht in das nächste Jahr filtern.

Ernten der Offsets ab dem Startdatum

Machen wir das mit einer verbundenen Tabelle sowohl für den Monat als auch für das Jahr. Zuerst müssen wir den ersten Offset ermitteln, der sich auf das Startdatum bezieht.

Und dann wollen wir diesen Offset um 12 Monate nach vorne verschieben und uns dann nur die Daten ansehen, die innerhalb dieser Offset-Reihe liegen. Lassen Sie mich Ihnen zeigen, wie das im DAX aussieht.

Berechnung der monatlichen Spanne

Dies ist unser Maß für Within Range Monthly , wobei wir unser Jahr (das wir aus der nicht verbundenen Jahrestabelle entnommen haben) und unseren Monat (den wir aus der nicht verbundenen Monatstabelle entnommen haben) auswählen.

Wir haben auch diesen anderen Parameter, bei dem, wenn keine Auswahl getroffen wird, standardmäßig Januar verwendet wird. Dieser Parameter dient in erster Linie nur zu Debugging-Zwecken.

Zeitintelligenz in DAX: So wählen Sie den Startzeitraum dynamisch aus

Berechnen der Anfangs- und Endmonats-Offsets

Schauen wir uns den Anfangsmonats-Offset an, indem wir den MAX-Offset berechnen. Wir entfernen alle Filter in der Datumstabelle und filtern nach unten auf den ausgewählten Monat und das ausgewählte Jahr. Für jeden Monat sollte es nur einen Offset geben, der diesem Monat und Jahr entspricht.

Zeitintelligenz in DAX: So wählen Sie den Startzeitraum dynamisch aus

Von diesem Punkt an können wir den Endmonatsoffset nehmen , der einfach der Startmonatsoffset + 11 Monate ist.

Zeitintelligenz in DAX: So wählen Sie den Startzeitraum dynamisch aus

Und dann schauen wir uns jedes ausgewählte Datum an und bestimmen, ob es innerhalb des anfänglichen Monatsversatzes und des Endmonatsversatzes liegt. Wenn es in diesen Zeitraum fällt, geben wir ihm eine 1 und wenn nicht, geben wir ihm eine 0.

Zeitintelligenz in DAX: So wählen Sie den Startzeitraum dynamisch aus

Wenn wir in unserem Bild zur Monatsansicht zurückkehren, können wir das Bild „ Innerhalb des Bereichs“ sehen, das wir auf „eins“ gesetzt haben. Es werden also nur die Monate innerhalb des Anfangs-Ende-Versatzes angezeigt. Wenn wir beispielsweise auf Februar klicken, sehen wir Februar bis Januar.

Zeitintelligenz in DAX: So wählen Sie den Startzeitraum dynamisch aus

Berechnung der wöchentlichen Reichweite

Mal sehen, wie das aus wöchentlicher Sicht aussieht. Das Bild beginnt zunächst gut und reicht von Woche 1 bis Woche 52. So weit, so gut.

Zeitintelligenz in DAX: So wählen Sie den Startzeitraum dynamisch aus

Wenn wir aber im Jahres-Slicer auf die anderen Jahre klicken, können wir die 52. Woche sehen, während einige eine 53. Woche haben, was viele Probleme mit sich bringt. Anhand dieses Beispiels können Sie sehen, dass sich das Problem allmählich manifestiert.

Wir haben einen Startzeitraum von Jahr 2020 und Woche 15 , aber der Endzeitraum ist Jahr 2021 und Woche 13 statt Jahr 2021 und Woche 14 .

Zeitintelligenz in DAX: So wählen Sie den Startzeitraum dynamisch aus

Wenn wir zu Woche 1 zurückgehen, können wir sehen, dass alles gut beginnt, aber in Woche 52 endet. Wenn wir uns hier die Berechnung für Woche 53 ansehen, beträgt die maximale Wochenanzahl für 2020 und 2021 53 Wochen. Dies wird für die wöchentliche Granularität nicht funktionieren.

Zeitintelligenz in DAX: So wählen Sie den Startzeitraum dynamisch aus

Mal sehen, was wir tun können, damit das funktioniert. Wir müssen die DAX-Berechnung hier in diesem Teil korrigieren:

Zeitintelligenz in DAX: So wählen Sie den Startzeitraum dynamisch aus

Dies liegt daran, dass in manchen Fällen 51 richtig ist, wenn ein Jahr nur 52 Wochen hat, aber für das Jahr mit 53 Wochen wird der letzte Zeitraum weggelassen. Das ist genau das, was wir wochenlang in der dynamischen Visualisierung gesehen haben, wobei die Berechnung diesen letzten Zeitraum in den Jahren 2020 und 2021 entfernt hat.

Um dies zu beheben, gehen wir zur Messung „Within Range Weekly Wrong“ über , die tatsächlich einfacher aussieht als die frühere Messung. Wir hatten ein Anfangsversatzmaß und berechneten den maximalen Versatz. Dann haben wir den Filter von den Datumsangaben entfernt und den Filter dann auf die ausgewählte Woche und das ausgewählte Jahr angewendet, in der Annahme, dass dies zum korrekten Offset führen würde.

Zeitintelligenz in DAX: So wählen Sie den Startzeitraum dynamisch aus

Dies funktioniert jedoch nicht, da es keine Rolle spielt, ob Sie einen maximalen oder einen minimalen Offset verwenden. Wir wickeln lediglich einen Aggregator ein, sodass wir keine nackte Spalte in eine CALCULATE-Anweisung einfügen.

Aber wenn wir hier auf die ISO WeekNumber zurückkommen , können wir sehen, dass eine Jahres- und eine Wochennummer nicht eindeutig einen wöchentlichen Offset in dieser ersten Periode bestimmen.

Zeitintelligenz in DAX: So wählen Sie den Startzeitraum dynamisch aus

Ich habe einen kugelsicheren Weg gefunden, dies zu tun. Sie könnten MIN verwenden, aber es ist sinnvoller, diese Week1-Offset- Kennzahl zu erstellen. Um den Ausgleich für Woche 1 zu erreichen, müssen wir uns mit Woche 2 befassen, da diese nie aufgeteilt wird. Unabhängig davon, ob das Jahr 52 oder 53 Wochen hat, bleibt die zweite Woche erhalten.

Zeitintelligenz in DAX: So wählen Sie den Startzeitraum dynamisch aus

In dieser Berechnung filtern wir bis Woche 2 herunter, um den Offset zu erhalten. Und wenn wir dann den Offset für Woche 2 haben, subtrahieren wir einfach eins davon. Dadurch erhalten wir eindeutig den Offset für Woche 1. Dies löst letztendlich unser Problem.

Wöchentliche Berechnung des Innerhalbbereichs

Und dann kehren wir zu unserer wöchentlichen Messung innerhalb des Bereichs zurück und schreiben eine IF-Anweisung, in der wir, wenn die Erntezahl für Woche 1 gilt, den Offset für Woche eins berechnen. Wenn es sich nicht um Woche 1 handelt, berechnen wir einfach den Anfangswochenversatz, wie wir es bei der vorherigen monatlichen Berechnung getan haben.

Zeitintelligenz in DAX: So wählen Sie den Startzeitraum dynamisch aus

Und dann ist der Endwochen-Offset der Anfangswochen-Offset + die maximale Wochenzahl, die entweder 52 oder 53 sein könnte. Dann subtrahieren wir einfach 1, um den Start-Offset nicht doppelt zu zählen.

Zeitintelligenz in DAX: So wählen Sie den Startzeitraum dynamisch aus

Wir können das gleiche Konstrukt verwenden, das wir für den Monatsbereich verwendet haben, um die Wochen zu filtern, wobei alles, was zwischen dem Anfangs- und Endversatz liegt, eine 1 erhält und alles, was nicht, eine 0 erhält.

Dann platzieren wir die wöchentliche Messung „Innerhalb des Bereichs“ im Filterbereich. Alles wird überprüft und sieht genau richtig aus.

Zeitintelligenz in DAX: So wählen Sie den Startzeitraum dynamisch aus

Wir können auf die Spielachse klicken und die Wochengranularität ausführen. Wir können sehen, dass es genau wie im Monatskontext ordnungsgemäß funktioniert.

Abschluss

Dies ist ein ziemlich tiefer Einblick in die Zeitintelligenz im DAX, wo wir besprochen haben, wie wir einige der Probleme im Zusammenhang mit Wochenzahlen angehen können. Ich hoffe, dass Sie dieses Tutorial hilfreich fanden und Ihnen einige zusätzliche Tools in Ihrem Werkzeugkasten zur Verfügung gestellt haben, wenn Sie mit einer problematischen Wochensituation zu kämpfen haben.

Wenn Ihnen der Inhalt dieses speziellen Tutorials gefallen hat, vergessen Sie bitte nicht, den LuckyTemplates-TV-Kanal zu abonnieren. 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