Slicer auf aktuelles Datum voreinstellen
Nahezu jeder Power BI – Bericht hat vermutlich einen Kalender, mit dem die Benutzer das Datum bzw. den angezeigten Zeitraum eingrenzen können. Dieser Kalender wird über Filter und noch häufiger über Slicer angeboten.
Beim öffnen des Berichts wird der Zeitraum angezeigt, den der Ersteller des Berichts als Ausgangsstatus definiert hat oder der Zeitraum, den der Betrachter zuletzt angezeigt hatte.
In manchen Fällen kann es gewünscht und hilfreich sein, wenn der Power BI – Bericht dynamisch das aktuelle Datum oder den aktuellen Monat, das aktuelle Jahr, die aktuelle Woche… anzeigt.
Wenn der Benutzer den Bericht am 30. November ansieht, bekommt er die Daten dieses Datums oder des ganzen Novembers zu sehen. Macht der Benutzer dann den Bericht am 1. Dezember auf, hat er die Daten des ersten Dezembers oder zum Beispiel die Daten des ganzen Dezembers (Month to Date).
Ich habe mehrere Wege gefunden, dies zu erreichen. Am sinnvollsten erschien mir für meine Projekte, eine berechnete Spalte in der Kalender-Tabelle zu verwenden. Hier beschreibe ich, wie ich vorgegangen bin.
Die Ausgangssituation
Sagen wir, ich möchte in einem Bericht Umsatzzahlen darstellen. Besonders interessant ist hier (aus irgendwelchen Gründen) der Umsatz im laufenden Monat. Wenn ich also den Bericht am 2. Dezember ansehe, bekomme ich die Umsatzzahlen vom 1. bis zum 2. Dezember, wenn ich den Bericht am 17. Dezember anschaue, habe ich die Zahlen vom 1. bis zum 17. Dezember usw.
Ich möchte aber auch, dass der Benutzer auf Wunsch andere Zeitabschnitte betrachten kann – den Vormonat, das ganze bisherige Jahr und so weiter.
Die Voreinstellung soll aber immer sein, dass dynamisch der aktuelle Monat angezeigt wird.
Meine Lösung
Ich habe mich dafür entschieden, für die Lösung dieser Anforderung eine berechnete Spalte in der Kalender-Tabelle zu verwenden.
Meine Kalendertabelle enthält immer mindestens diese Spalten: Datum, Jahr, Halbjahr, Quartal, Monatszahl, Monat, Monat eindeutig (und Monat eindeutig Sort, um den eindeutigen Monat sortieren zu können).
Für meine Zwecke benutze ich die Spalte „Monat eindeutig“. Es funktioniert aber etwas abgewandelt auch mit dem Jahr oder dem konkreten Datum usw.
Der eindeutige Monat wird bei mir angezeigt in der Form „2023 Dec“. Dies erreiche ich mit folgendem DAX-Ausdruck:
Monat eindeutig =
FORMAT (
Kalender[Datum],
"YYYY MMM"
)
Nun erzeuge ich eine weitere berechnete Spalte, die mir anzeigt, ob das Datum im aktuellen Monat liegt („Ja“) oder nicht („Nein“). Dafür verwende ich folgenden DAX-Code:
Aktueller Monat =
VAR heute =
TODAY ()
VAR aktuellermonat =
FORMAT ( heute, "YYYY MMM" )
RETURN
IF ( Kalender[Monat eindeutig] = aktuellermonat, "Ja", "Nein" )
Jedes Datum in der Kalender-Tabelle enthält nun ein „Flag“, ob es im aktuellen Monat liegt, oder nicht. Dieses Flag ändert sich tagesaktuell (da sich die Variable heute über den Funktionsaufruf TODAY () täglich ändert).
Wegen der besseren Lesbarkeit verwende ich auch bei solch eher simplen Ausdrücken sehr gerne Variablen.
Wie verwende ich die berechnete Spalte
Wie verwende ich nun diese berechnete Spalte „Aktueller Monat“ in meinem Bericht?
Ich habe mich dazu entschieden, einen Slicer für diese Spalte anzuzeigen. Den Slicer nenne ich „Tagesaktuell“ und er hat die Werte „Ja“ und „Nein“. Den Slicer habe ich so eingestellt, dass man genau eine dieser Optionen auswählen muss – voreingestellt ist „Ja“.
Wenn der Benutzer auf „Nein“ klickt, hat er die Möglichkeit, alle im Bericht vorhandenen Zeiträume auszuwählen – exclusive es aktullen Monats.
Hier kann man natürlich das eigene Vorgehen an die jeweilige Anforderung anpassen. Man könnte den Slicer auch so einstellen, dass auch gleichzeitiges Auswählen von „Ja“ und „Nein“ möglich ist oder man verwendet die berechnete Spalte in einem Filter. Der Filter wieder könnte vorausgewählt und unsichtbar sein… hier gibt es viele Möglichkeiten.
In meinem Fall habe ich mich für den Slicer wie dargestellt entschieden, da in 95% der Fälle der aktuelle Monat von Interesse ist – der Benutzer hat dennoch alle Freiheiten.
Bevorzugst Du eine andere Möglichkeit, im Bericht immer einen bestimmten Zeitraum dynamisch auszuwählen?
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!