Power BI Monatssortierung

Immer wieder ergibt sich in Power BI der Fall, dass man Attribute, beispielsweise Umsätze, monatsweise darstellen möchte. In diesem Blogbeitrag zeige ich zwei Möglichkeiten auf, wie man eine korrekte Monatssortierung in Power BI erreicht. Nebenbei lernen wir, wie man im Power Query-Editor neue Spalten anlegt, wie man mit DAX eine Kalendertabelle anlegt, und wie man Beziehungen zwischen zwei Tabellen herstellt.

Als einfachstes Beispiel betrachten wir hier eine Tabelle, aber das Prinzip funktioniert gleichermaßen für alle Visuals, in denen eine Sortierung möglich ist. Die hier verwendeten Beispieldaten haben wir über „Daten eingeben“ selbst entworfen und die Tabelle „Umsatz“ genannt. Sortiert man nun einfach nach der Monatsspalte im Visual (durch Klick auf den Spaltenheader oder über die drei Auslassungspunkte beim Visual und dann „Sortieren nach“), ergibt sich das Problem, dass die Monate alphabetisch sortiert werden.

Erfundene Umsatzzahlen, hier auf 2020 gefiltert, mit falscher Monatssortierung.

Die Monatsnummer als zusätzliche Spalte

Was wir also brauchen, ist die Monatszahl als Sortierkriterium. Die einfachste Möglichkeit hierfür ist, mit dem Power Query-Editor („Daten transformieren“) eine neue Spalte anzulegen („Spalte hinzufügen“). Wir wählen hier „Spalte aus Beispielen“.  In unserem Fall ist es egal, ob wir nur die Monatsspalte oder alle Spalten als Grundlage wählen. Wir geben dann die Monatszahlen eines Jahres manuell in die neue Spalte ein. Die entsprechenden Einträge für die anderen Jahre werden automatisch ergänzt. Schließlich sollte man der Spalte einen sinnvollen Namen geben. Als Datentyp eignet sich „Ganze Zahl“. Im Fenster rechts erscheint nun unter „Angewendete Schritte“ die Aktion „Hinzugefügte bedingte Spalte“. Ein Klick hierauf öffnet ein Fenster mit der M-Abfrage, mit der wir alternativ die Spalte unter „Benutzerdefinierte Spalte“ hätten erzeugen können. Mit Klick auf „Schließen und übernehmen“ beenden wir den Power Query-Editor.

Anlegen einer benutzerdefinierten Spalte im Power Query-Editor

Sortieren nach der neuen Spalte

Dann wählt man im Bereich „Felder“ die Spalte an, die im Visual sortiert werden soll („Monat“). Damit öffnet sich oben der Reiter „Spaltentools“, wo wir nun die Funktion „Nach Spalte sortieren“ auswählen. Hier können wir jetzt die Spalte mit der Monatsnummer auswählen. Die neue Sortiervorschrift wird dann direkt für den ganzen Bericht übernommen.

Wählt man hier jetzt die Spalte „Monat“, ergibt sich wieder die vorherige, alphabetische Reihenfolge.

Das Prinzip funktioniert analog natürlich auch für andere Daten. So kann man beliebig ein Attribut nach anderen Attributen der Tabelle sortieren, auch wenn diese nicht im Visual sichtbar sind.

Einstellen der neuen Sortierung nach Monatsnummer

Nutzung von Kalendertabellen

Eine weitere Möglichkeit zur richtigen Sortierung der Monate ist die Nutzung einer Kalender-, bzw. Datumstabelle. Hier können wir uns die Auto-Date/Time-Funktionalität von Power BI zu Nutze machen. Befindet sich eine Spalte mit dem Datentyp „Datum“ oder „Datum/Zeit“ in der Tabelle, erstellt Power BI automatisch eine Hierarchie mit der entsprechenden Granularität, also in der Regel Jahr, Quartal, Monat, Tag. Die Hierarchiestufen lassen sich dann für das Visual auswählen. Die chronologische Sortierung ist inbegriffen. 

Man beachte, dass es diese Funktionalität nur bei importierten Datasets gibt, nicht bei Direct Query. Es ist außerdem darauf zu achten, dass die Daten auf der gewünschten Hierarchieebene durchgängig sind, dass also z.B. nicht einzelne Tage fehlen. Sind die Anforderungen an Datentyp und Durchgängigkeit erfüllt, lässt sich eine Tabelle in Power BI auch als Datumstabelle markieren. Dies löst jedoch die automatische Hierarchie der Datumsspalte auf und ist somit nur sinnvoll, wenn weitere Spalten mit Zeitattributen existieren, die für eine benutzerdefinierte Hierarchie verwendet werden sollen.

Erstellung der Kalendertabelle

In vielen Date Warehouses sind Kalendertabellen bereits vorhanden, die man dann auch nutzen sollte. Ansonsten lässt sich mit Power BI schnell eine erstellen. Klicke dazu unter „Felder“ auf eine der vorhandenen Tabellen und wähle oben dann „Neue Tabelle“. Es öffnet sich ein Fenster für eine DAX-Abfrage. Dort kannst du folgenden Ausdruck eingeben:

Datum = CALENDAR(DATE (1700,01,01), DATE (2300,12,31))

Die CALENDAR-Funktion legt hier eine Tabelle namens „Datum“ mit einer Spalte an, in der alle Tage zwischen dem beliebig gewählten Start- und Enddatum aufgelistet werden. Hier ist nur zu beachten, dass der gesamte Zeitraum des Datenmodells abgedeckt ist. Alternativ kann man die CALENDARAUTO-Funktion verwenden, die das minimale und maximale Datum im Datenmodell automatisch erkennt.

Erstellung der Kalendertabelle mit DAX

Datumsspalte anlegen und Beziehung erstellen

Um die Kalendertabelle zur Monatssortierung nutzen können, müssen wir zunächst noch eine weitere Spalte in der Umsatz-Tabelle hinzufügen. Diese muss den Datentyp „Datum“ oder „Datum/Uhrzeit“ haben, damit wir eine Beziehung zwischen Umsatz- und Kalendertabelle herstellen können. Gehe dabei analog zu oben vor, als wir die Spalte mit der Monatsnummer erstellt haben. Gib hier je ein passendes Datum an (z.B. 01.01.2019, 01.02.2019, …) und achte darauf, dass die Werte für die Folgejahre korrekt aufgefüllt werden. Gib schließlich der Spalte einen sinnvollen Namen und wähle den Datentyp „Datum“ oder „Datum/Uhrzeit“.

Um eine Beziehung zu erstellen, wechseln wir von der Berichts- in die Modellansicht. Klicke auf die drei Auslassungspunkte bei der Umsatztabelle und wähle „Beziehungen verwalten“ und „Neu…“. Wähle dann die beiden Tabellen aus und dort jeweils die Datumsspalte. Kardinalität und Kreuzfilterrichtung werden von Power BI meist automatisch richtig erkannt. 

Anlegen einer Beziehung

Letzte Schritte und Fazit

Durch die Beziehung können nun Spalten aus beiden Tabellen im gleichen Visual benutzt werden. Hierzu müssen nur noch die gewünschten Elemente aus der Datumshierarchie der Kalendertabelle für das Visual ausgewählt werden. Damit erhalten wir eine korrekte Monatssortierung in Power BI.

In einigen Visuals, wie der Matrix oder dem Säulendiagramm, können wir außerdem die Drilldown-Funktion der Datumshierarchie verwenden.

Auch wenn die Monatssortierung per Kalendertabelle in diesem Beitrag etwas mehr Klicks erfordert hat, ist diese Variante doch sehr empfehlenswert. Die Kalendertabelle kann nun nämlich auch für andere Tabellen im Datenmodell benutzt werden. Somit musst du dir um die chronologische Konsistenz deiner Daten keine Sorgen mehr machen.  

Teilen:

Share on xing
Share on email
Oliver Lux

Oliver Lux

Schreiben Sie einen Kommentar

Blog abonnieren:
Loading

Weitere Beiträge: