Visualisierung fehlender Datenpunkte in Power BI

Die Visualisierung von fehlenden Datenpunkten in einer Datenreihe ist eine interessante Fragestellung in Power BI, die mit einigen Standardfunktionen und/oder mittels DAX adressiert werden kann. Der folgende Blogbeitrag liefert den Einstieg zur Thematik, alternative Lösungsansätze sind aber natürlich darüber hinaus auch immer möglich.

Ausgangsdaten

Wir haben einen Datenbestand mit 4 Zeitreihen, wobei 1 Zeitreihe in Bezug auf die Zeitachse lückenlos ist und die anderen 3 weisen Lücken (= leere Datenpunkte) auf:

Die darzustellenden Bewegungsdaten kommen - natürlich - aus einer Faktentabelle ...

... die mittels 1:n Beziehung mit der Datumsdimension verknüpft ist:

Alternativ zu dieser "Custom Date Dimension" könnte für die folgenden Ausführungen auch die eingebaute "Auto Date Dimension" verwendet werden, ich bevorzuge aber aufgrund der Gestaltbarkeit immer die Custom Date Dimension.

Fragestellungen

Die Aufgabenstellung für den folgenden Blogbeitrag besteht nun einerseits darin, wie in einer Liniengrafik die unterbrochenen Linien und "freischwebenden" Punkte zu einer durchgehenden Linie verbunden werden können:

Andererseits geht es um die Frage, wie das Visual gezwungen werden kann, die fehlenden Perioden bei einer einzelnen Zeitreihe anzuzuzeigen bzw. das Visual in eine fixe 12-Monatsdarstellung zu bringen:

Funktion "Continous Axis"

Die Aufgabe kann zum teil gelöst werden, indem das Datumsfeld auf die X-Achse aufgetragen wird. Das Visual wechselt dann auf der X-Achse automatisch in den sog. Continous Axis Modus und verbindet die unterbrochenen Linien und "freischwebenden" Punkte. Allerdings ist die Darstellung optisch verzerrt, da die bestehenden Datenpunkte direkt (und nicht über die Nullinie auf der X-Achse) verbunden werden. So vermittelt beispielsweise die grüne Linie den Eindruck, daß vom Zeitraum April bis November konstant hohe Werte vorliegen, tatsächlich gibt es aber nur je 1 Wert im April und im November.

In der Einzeldarstellung werden auf der X-Achse zwar die fehlenden Perioden August und September dargestellt (und die Linie wiederum direkt verbunden), es ist aber mit der Continous Axis und der im folgenden vorgestellten Show items with no data Funktion nicht möglich, die Darstellung in eine fixe 12 Monatsdarstellung zu zwingen ...

... erst in Anwesenheit weiterer Datenpunkte zeigt das Visual alle 12 Monate:

Funktion "Show items with no data"

Die Funktion Show items with no data haben wir bereits in diesem Blogbeitrag im Jahr 2019 ausführlich vorgestellt. Diese Funktion kann iVm einer sogenannten Categorial Axis verwendet werden, diese wird automatisch bei allen Textfeldern auf der X-Achse angewendet.

Die Funktion Show items with no data ist im Kontextmenü der eingesetzten Spalte (hier: Monat) im X-axis Bereich des Visuals zu finden. Die Funktion bewirkt, daß alle verfügbaren Einträge dieser Spalte aus der Dimensionstabelle auf der X-Achse dargestellt werden und wir so das Visual in eine fixe 12-Monatsdarstellung bringen.

Allerdings sind in dieser Lösungsvariante die Linien nach wie vor unterbrochen und wir haben weiterhin die "freischwebenden" Punkte:

Übrigens könnte das Datumsfeld via Setting ebenfalls als Categorial Axis dargestellt werden und dann die Funktion Show items with no data genutzt werden. Allerdings führt dies dazu, daß alle 365 Datumswerte für das Jahr 2022 auf der X-Achse dargestellt werden und dies für die Visualisierung nicht wünschenswert ist.

DAX basierte Lösung zur Verbindung der Linien

Mit einer relativ einfachen DAX-Konstruktion können wir die fehlenden Datenpunkte innerhalb der Zeitreihen mit 0-Werten auffüllen und so die Datenpunkte und Linien verbinden. Zum besseren Verständnis legen wir die beiden Parameter VIZ Start und VIZ Ende als eigene Measures an, damit wir deren Funktion leichter nachvollziehen können.

VIZ Start = 
    CALCULATE(
        MIN(Faktentabelle[Datum]);
        ALL(Datumsdimension)
    )
VIZ Ende = 
    CALCULATE(
        MAX(Faktentabelle[Datum]);
        ALL(Datumsdimension)
    )

Mit Hilfe dieser beiden Measures werden die leeren Datenpunkte zwischen dem ersten und dem letzten Wert der Zeitreihe mit 0 aufgefüllt. Technisch gesehen wird durch das "+ 0" zumindest eine 0 erzeugt, auch wenn der aggregierte Summenwerte BLANK beträgt:

Umsatz = 
    IF(
        MAX(Datumsdimension[Datum]) >= [VIZ Start]
        && MAX(Datumsdimension[Datum]) <= [VIZ Ende];
        SUM(Faktentabelle[Wert]) + 0;
        BLANK()
    )

Die beiden Parameter VIZ Start und VIZ Ende ermitteln das niedrigste und das höchste Datum pro Produkt. Die Ermittlung ist unabhängig von der aktuellen Periode auf der Zeitachse, da der Filter Context der Datumsdimension mittels ALL(Datumsdimension) neutralisiert wird:

Die Visualisierung der Zeitreihen lässt sich mit dieser Lösung jetzt (erstmalig) vollständig richtig darstellen, da die fehlenden Datenpunkte jetzt auf der X-Achse als 0-Werte dargestellt werden:

Die fixe 12-Monatsdarstellung wird auch hier durch das aktive weiter oben vorgestellte Setting Show items with no data gewährleistet:

Fazit

Die visuell korrekte Darstellung leerer Datenpunkte kann zum Teil mit der Standardfunktion Continous Axis addressiert aber nicht vollständig erreicht werden. Wie in vielen anderen Fällen ist auch hier die perfekte Lösung mit vergleichsweise einfachen DAX Statements erreichbar.

Über den Autor

Blog auf Feedly abonnieren

Kategorien

Verwandte Beiträge

Power BI Camp - Präsenztrainings in Wien und Nürnberg!

Dashboarding mit Power BI, DAX & Datenmodellierung und Power Query. Drei Einzelmodule oder als ganze Trainingswoche - für Einsteiger und Fortgeschrittene!

Termine 2022

Wien: (7./8. Februar 2022)
und 25.-28 April 2022
Nürnberg: (14./15. Februar 2022)
und 9.-12. Mai 2022

Jetzt buchen und Rabatt sichern.

Jetzt buchen!

Leave a Replay

Schreibe einen Kommentar

Kostenlos zum Newsletter anmelden

Ihre Anfrage

Schicken Sie uns Ihre Fragen und Anregungen!