Stellen Sie sich vor, wir haben drei Maßnahmen:
- Verkaufsbetrag
- Verkaufsbetragsbudget
- Verkaufsbetrag im Vorjahr
Wenn wir uns eine Tabelle mit diesen Zahlen ansehen, sehen wir Folgendes (vorausgesetzt, wir haben aktuelle Daten bis Ende Juli 2025):

Obwohl die Ergebnisse korrekt sind, benötigen meine Benutzer möglicherweise zwei verschiedene Ansichten:
- Sehen Sie sich nur die Ergebnisse gemäß den vorhandenen Daten an
- Einschließlich der Budgetdaten und der PY-Daten
Ich habe mehrere Möglichkeiten, es zu tun:
- Erstellen Sie separate Visuals mit unterschiedlichen Filtern.
- Erstellen Sie zwei Seiten für die beiden Ansichten, wiederum unter Verwendung unterschiedlicher Filter.
- Weisen Sie meine Benutzer an, den Kalender-Slicer zu verwenden, um die Daten nach Bedarf zu filtern.
Aber ich möchte meine Berichte so benutzerfreundlich wie möglich gestalten, ohne etwas zu duplizieren.
Daher möchte ich einen Slicer hinzufügen, damit Benutzer wählen können, ob sie zukünftige Daten einbeziehen oder nur aktuelle Daten sehen möchten.
Erstellen Sie die Datumsfiltertabelle
Die Tabelle „Mein Datum“ enthält Indexspalten für verschiedene Zeiträume: Tage, Wochen, Monate, Quartale und Jahre.
- Die Zeile mit der aktuellen Periode enthält eine 0
- Zeilen für vergangene Zeiträume enthalten damaging Zahlen
- Zeilen für Terminperioden enthalten constructive Zahlen
Sehen wir uns die Zeilen für ein kleines Beispiel an, das in SQL mithilfe der DayIndex-Spalte realisiert wurde:

Mit dieser Spalte habe ich eine Tabelle mit einer zusätzlichen Spalte erstellt, die als Slicer dient.
Ich habe alle Zeilen mit einem Index bis 0 genommen und sie als „Nur aktuelle Daten“ markiert.
Dann habe ich alle Zeilen aus der Datumstabelle angehängt (UNION) und sie als „Zukünftige Daten enthalten“ markiert.

Ich habe es mit SQL gemacht, aber Sie können es in Energy Question oder einer anderen Sprache Ihrer Wahl machen.
Jetzt habe ich diese Tabelle in Energy BI importiert
Erweitern Sie das Datenmodell
Nachdem ich diese Tabelle zu Energy BI hinzugefügt habe, habe ich eine neue Beziehung zwischen der neuen Tabelle und der Datumstabelle erstellt:

Die Kreuzfilterrichtung muss auf eingestellt sein Beide da die Spalte DateKey in der Datumsfiltertabelle nicht eindeutig ist:

Daher wäre die Filterrichtung „Datum -> Nur Datumsfilter“, was nicht funktioniert.
Ich möchte die Datumstabelle nach der Datumsfiltertabelle filtern. Daher muss ich die Filterrichtung auf „Beide“ stellen.
Ergebnis
Als nächstes habe ich dem Bericht einen Slicer hinzugefügt:

Nach all der Vorbereitung ermöglicht der Slicer die Auswahl der Daten nach Bedarf:


Mit diesem Slicer können Benutzer unabhängig von der Auswahl im Kalender-Slicer auswählen, welche Daten sie sehen möchten.
Vollständige Perioden auswählen
Das obige Beispiel ist praktisch, wenn die Auswahl auf Tagesebene erfolgen muss.
Dies ist insbesondere beim Vergleich der aktuellen Daten mit dem Funds oder dem Geschäftsjahr nützlich.
Stellen Sie sich vor, am 5Th oder 6Th Tag des Monats. Sie haben nur wenige Verkaufstage, vergleichen diese aber mit dem Funds des gesamten Monats. Dies kann irreführend sein.
Aber was passiert, wenn der Filter auf ganze Zeiträume, wie Monate oder Jahre, eingestellt werden muss?
Hier eine modifizierte Abfrage zum Festlegen der DateFilter-Spalte basierend auf ganzen Jahren:

Jetzt wird das gesamte Jahr angezeigt, wobei nur die aktuellen Daten angezeigt werden sollen:

Sie können die Datumsfiltertabelle auf die gleiche Weise ändern, um nach Monaten oder anderen Zeiträumen zu filtern.
Dies kann sehr einfach erfolgen, indem die Zeilen in der Datumstabelle nach dem aktuellen Datum gefiltert werden.
Abschluss
Dieser Ansatz ist einfach zu implementieren und für Berichtskonsumenten einfach zu verwenden.
Es vermeidet das Schreiben von DAX-Code und verlässt sich vollständig auf die Informationen in der Datumstabelle.
Der Trick besteht darin, das Datenmodell so zu erweitern, dass es die Anforderungen mit dem geringsten Aufwand unterstützt.
Wenn Sie nicht wie ich über die Indexspalten verfügen, können Sie einen anderen Ansatz zum Generieren der Datumsfiltertabelle verwenden. Verwenden Sie beispielsweise eine Funktion, um das aktuelle Datum abzurufen, z. B. GETDATE() in T-SQL oder Now() in anderen Sprachen.
Ich fand die Indexspalten sehr nützlich, nicht nur in diesem Fall, sondern auch in vielen anderen Situationen, in denen der Kunde verlangt, dass ich die Daten nach Datumsangaben relativ zum aktuellen Datum filtere.
Dies erleichtert das Leben, wenn das „aktuelle Datum“ nicht der heutige Tag ist, sondern einer bestimmten Logik folgen muss – beispielsweise dem vorherigen Wochentag.
OK, Sie können dem Bericht relative Filter hinzufügen. In vielen Fällen reichen sie aus.
In anderen Fällen bieten mir die Indexspalten mehr Flexibilität.
Referenzen
Wie in meinen vorherigen Artikeln verwende ich den Contoso-Beispieldatensatz. Sie können den ContosoRetailDW-Datensatz kostenlos von Microsoft herunterladen Hier.
Die Contoso-Daten können wie beschrieben unter der MIT-Lizenz frei verwendet werden in diesem Dokument. Ich habe den Datensatz geändert, um die Daten auf aktuelle Daten zu verschieben.
