DAX stellt eine Vielzahl von Funktionen zur Verfügung, mit denen ich zeitbezogene Analysen durchführen kann. Diese sogenannten Time Intelligence-Funktionen haben eines gemeinsam: zur korrekten Berechnung wird eine Kalendertabelle gebraucht. Wie ich einem Datenmodell in Power BI Desktop eine solche Kalendertabelle hinzufüge, zeige ich in diesem Blogbeitrag.
Die Nachteile einer automatischen Kalendertabelle
Power BI Desktop erzeugt zwar standardmäßig Kalendertabellen, doch diese haben mehrere Nachteile:
- Sie sind nicht anpassbar – sie enthalten nur Jahre, Quartale, Monate und Tage.
- Sie blähen das Datenmodell unnötig auf, weil für jedes(!) Feld vom Typ Datum bzw. Datum/Uhrzeit eine eigene Tabelle erstellt wird – egal, ob ich sie benötige oder nicht.
Aus diesem Grunde ist es besser, eine eigene Kalendertabelle zu erzeugen.
Mehr Informationen zu diesen Tabellen gibt es hier: Automatische Angabe von Datum/Uhrzeit in Power BI Desktop – Power BI | Microsoft Learn
1) Die automatischen Kalendertabellen ausschalten
Um aus meinem Power BI-Bericht die Kalendertabellen zu löschen, entferne ich das entsprechende Kontrollkästchen aus den Optionen für die aktuelle PBIX-Datei.
Ab sofort in Power BI Desktop keine automatischen Kalendertabellen mehr
TIPP: Damit ich auch in künftigen Power BI-Berichten keine automatischen Kalendertabellen mehr erhalte, deaktiviere ich das entsprechende Kontrollkästchen in den globalen Optionen.
2) In Power Query eine eigene Kalendertabelle erstellen
Nun lege ich eine eigene Kalendertabelle an, die automatisch den korrekten Zeitraum abdeckt und keine weiteren manuellen Anpassungen mehr erfordert. Das erledige ich in Power Query wie folgt:
- Über Start > Daten abrufen erzeuge ich zuerst eine leere Abfrage.
- Danach öffne ich im Power Query Editor diese Abfrage über die Registerkarte Ansicht im erweiterten Editor.
- Den Inhalt des erweiterten Editors ersetze ich mit folgendem Code > Download der TXT-Datei.
Den vorgegebenen Code überschreiben
- In Zeile 5 ersetze ich Tabelle[Spalte] durch die Spalte, für die ich einen Kalender benötige, z. B. Transaktionen[Bestelldatum]).
- Zum Schluss benenne ich diese Abfrage in Kalender um.
Fazit
- Mein Datenmodell enthält somit eine Kalendertabelle, die am 1. Januar des Jahres beginnt, in dem das älteste Datum der Spalte Bestelldatum liegt.
- Der Kalender endet automatisch am 31. Dezember des laufenden Jahres.
- Bei jeder Aktualisierung meiner Abfragen werden Beginn und Ende des Kalenders automatisch ermittelt. Manuelle Anpassungen sind ab sofort überflüssig.
Über den Autor