Lasst mich von meinen Anfängen als Data Analyst berichten. Ich hatte meine ersten Reports dem Vorstand präsentiert und die waren begeistert. Es kam aber wie es kommen musste – prompt ging ein Bericht raus, in dem die Monate nicht kalendarisch, sondern alphabetisch sortiert waren. Das war ein Schock! Dass Power BI die kalendarische Reihenfolge nicht kennt, war für mich unvorstellbar. Die Lösung war und ist die Datumstabelle.
Was ist eine Datumstabelle und warum brauchst du sie?
Die Datumstabelle ist im Grunde eine Aufstellung aller möglichen Tage in einem Zeitraum. Dieser Zeitraum lässt sich entweder manuell bestimmen. Sagen wir vom 01.01.1900 bis 31.12.2999. Oder, was jedoch sinnvoller ist, eine Datumstabelle dynamisch zu erstellen. Hier gibt es verschiedene Methoden auf die ich später eingehen werde. Ohne eine Datumstabelle wird es schwierig sinnvolle Auswertungen zu erstellen. Ich will nicht sagen, dass es nicht möglich ist, es ist nur sehr aufwendig.
Wenn in deinen Daten Datumsfelder enthalten sind, liest Power Bi dies zuerst einmal als Text oder Zahl und kann noch keinen Datumsbezug herstellen. Dies hat unmittelbar zur Folge, dass u.a. Monatsnamen alphabetisch und nicht kalendarisch sortiert werden. Gravierender ist aber noch, dass sich dann daraus auch keine Hierarchie ableiten lässt. Mit Hierarchie ist gemeint, dass sich nicht von Tag auf die Woche, von der Woche auf den Monat, von Monat auf das Quartal und von Quartal auf das Jahr ableiten und schlussendlich navigieren lässt. Glaubt mir, irgendwann werdet ihr genau diese Kette benötigen. Zusätzlich werden ohne eine Datumstabelle die Tools der „Time Intelligence“ sehr schwer umzusetzen. Zur Time Intelligence wird es einen eigenen Artikel geben. Nur soviel, alle Zeitberechnungen basieren auf dieser.
Lass mich Dir zeigen wie es geht. Du kannst eine Datumstabelle recht einfach erstellen. Wie gesagt es gibt verschiedene Wege eine Datumstabelle zu erstellen. Hier zeige ich Dir 2 Methoden.
Datumstabelle erstellen – zwei Methoden in DAX
Wenn du mit festen Start und Endwerten arbeiten möchtest, klickst du auf „Neue Tabelle“ und gibst folgenden DAX Ausdruck ein.
FesteDatumstabelle =
CALENDAR(
DATE(2023, 01, 01), -- Dein fester Startwert (Jahr, Monat, Tag)
DATE(2025, 12, 31) -- Dein fester Endwert
)

Dann mit Enter bestätigen und die Tabelle ist fertig. Nun musst du sie nur noch als Datumstabelle kennzeichnen. Auch hier gibt es mehrere Wege. Entweder du machst das rechts im Toolbereich Daten einen Rechtsklick auf deine Tabelle und markierst diese als Datumstabelle:

Oder Du gehst in die Tabellenansicht (Menüband am linken Bildschirmrand) und markierst dort diese Tabelle als Datumstabelle. Dann noch im Popup die Datumsspalte festlegen, speichern und dann ist sie fertig, die Datumstabelle.

Für den Anfang reicht dieser Weg vollkommen. Ich nutze jedoch immer die 2. Methode in dem ich meine Datumstabelle dynamisch erstelle. Klicke dazu auf „Neue Tabelle“ im Menueband und gib dies als DAX Ausdruck:
Dynamische_Datumstabelle = CALENDARAUTO()
Wichtig hierfür ist, dass du bereits eine oder mehrere Daten(-tabellen) in dein Modell eingebunden hast, um keine Fehlermeldung zu erhalten. Die CALENDARAUTO() Funktion scannt dein gesamtes Modell und erstellt daraus dann die Datumstabelle. Als nächstes diese Tabelle wie eben beschrieben als Datumstabelle markieren und du hast eine dynamische Datumstabelle. Auch wenn es so aus sieht, dass die Datumstabelle mit den festen Start- und Endwerten für Anfänger leichter erscheint, empfehle ich Euch den Weg mit der dynamischen Datumstabelle zu gehen. Ihr legt diese einmal an und müsst Euch im besten Fall keine Gedanken mehr über die Frage machen, ob ich wirklich alle Datumsfelder berücksichtigt werden, oder nicht. Um die wahre Stärke auszuspielen, zeige ich euch noch ein paar wichtige Spalten die ihr der Datumstabelle unbedingt hinzufügen solltet. Keine Bange, ihr könnt mit der bisher gezeigten Tabelle starten und die Add-ons nachträglich hinzufügen. Hier eine kleine Auswahl von wichtigen Spalten die ich immer in meine Datumstabelle integriere. Wofür ich diese nutze und welche Möglichkeiten Dir damit offen stehen, erkläre ich in einem weiteren Artikel. Vorab schon mal eine kleine Auswahl, welche ich Euch direkt als Code vorstelle.
Die wichtigsten Spalten für deine Datumstabelle
Datumstabelle =
-- 1. Die Automatik-Funktion scannt das gesamte Modell
VAR BasisKalender = CALENDARAUTO()
-- 2. Spalten hinzufügen basierend auf der von CALENDARAUTO generierten Spalte [Date]
RETURN
ADDCOLUMNS(
BasisKalender,
"Jahr", YEAR([Date]),
"Quartal", "Q" & FORMAT([Date], "Q"),
"Quartal Nr", QUARTER([Date]),
"Monat Nr", MONTH([Date]),
"Monat Name", FORMAT([Date], "MMMM"),
"Monat Kurz", FORMAT([Date], "MMM"),
"MonatJahr", FORMAT([Date], "MMM yyyy"),
"MonatJahr Sort", YEAR([Date]) * 100 + MONTH([Date]), -- Wichtig für die Sortierung!
"Woche Nr", WEEKNUM([Date], 21), -- ISO-Woche (Montag-Start)
"Wochentag Nr", WEEKDAY([Date], 2), -- 1 = Montag
"Wochentag", FORMAT([Date], "dddd"),
"Wochentag Kurz", FORMAT([Date], "ddd"),
"Ist Wochenende", IF(WEEKDAY([Date], 2) > 5, "Wochenende", "Werktag")
)
Zusammenfassend sage ich, dass wenn ich damals schon die Datumstabelle als ein so mächtiges Instrument gekannt hätte, wäre mir so manche Stunde an Mehrarbeit erspart geblieben. Daher meine Bitte an Euch – schaut Euch dies einmal genau an, egal ob hier oder wo anders. Nutzt die Datumstabelle. Sie ist die elementare Basis für Eure weitere Arbeit.
Hier findest du noch weitere Infos
- Power Bi zum Download: https://powerbi.microsoft.com/de-de/downloads/
- Die CALENDARAUTO() -Funktion erklärt: https://learn.microsoft.com/de-de/dax/calendarauto-function-dax
- Die CALENDAR() – Funktion erklärt: https://learn.microsoft.com/de-de/dax/calendar-function-dax