Warum ist mein Liniendiagramm nie Null?

    Liniendiagramme bei Umsätzen sind beliebt. Nur manchmal gibt es Tage ohne Umsatz. Trotzdem geht die Kurve nicht auf 0. Den Grund dafür, einen besseren Vorschlag und Abhilfe, falls es eben nicht anders geht beschreiben wir in diesem Artikel.

    Eine einfache Umsatzauswertung

    In einem fiktiven Auftragssystem finden wir Kundenaufträge mit Bestelldatum und Umsatz. Um eine Umsatzauswertung über die Zeit zu erstellen brauchen wir nur die Felder mit dem Datum und den erzielten Umsatz. Folgende Daten verwenden wir in unsere Beispiel:

    Ausgangsdaten in Excel

    Die Daten kannst du beispielsweise in einer Excel-Datei anlegen und dann via Power Query in Power BI importieren. Du kannst die Daten auch aus direkt in Power Query anlegen.

    Ein Liniendiagramm zur Umsatzdarstellung

    Auf Basis dieser Daten legst du ein Liniendiagramm an.

    Power BI: Liniendiagramm erstellen

    In die Werte fügst du die Spalte Umsatz ein, in die Achse das Feld Datum. Da wir nicht mit einer expliziten Datumstabelle arbeiten legt Power BI automatisch eine interne Datumstabelle und eine zugehörige Hierarchie an.

    Power BI: Datumshierarchie

    Das bedeutet, dass die Werte zunächst nach Jahr zusammengefasst sind. Über eine Drill-Down kann man dann in die Quartale, Monate und Tage absteigen. Unser Ziel ist aber direkt die Darstellung der Tage. Daher ignorieren wir die Hierarchie über das Kontextmenü auf dem Feld.

    Power BI: Datumshierarchie umgehen

    Das Ergebnis ist ein der Umsatzverlauf über die Zeit.

    Power BI: Liniendiagramm geht nicht auf null

    Hier hat der Autor zwei Fehler eingebaut

    In irgendeinem Klatschblatt liest du: “Stell dir vor, die Unfallquote im Straßenverkehr ist in den letzten Jahre dramatisch gesunken! 2016 war die noch viel höher, als 2018!”

     Beispiel: Warum man die y-Achse immer bei Null beginnen lassen muss

    Geschickt, oder? Siehst du den Fehler? Klar, der Autor hat nicht bei 0, sondern bei über 11.000 angefangen. Das macht Power BI leider auch. Power BI verwendet einfach den kleinsten Wert. Lassen wir das Diagramm doch mal bei 0 anfangen und schreiben die Zahlen dazu.

    korrigiertes Säulendiagramm - y-Achse fängt bei Null an

    Irgendwie sehen die Unterschiede jetzt nicht mehr ganz so dramatisch aus.

    Wenn wir den kleinsten Wert der y-Achse explizit auf 0 haben möchten, können wir das in den Einstellungen des Liniendiagramms hinterlegen.

    Power BI: Liniendiagamm y-Achse bei Null starten lassen

    Liniendiagramm geht aber nicht auf Null

    Nachdem wir die y-Achse korrekt mit 0 starten lassen, sieht unser Liniendiagramm etwas anders aus.

    korrigiertes Liniendiagramm mit y-Achse auf Null

    Aber offensichtlich machen wir mit unserer Firma jeden Tag guten Umsatz. Sogar Samstags und Sonntags!

    Power BI: Liniendiagramm geht nicht auf Null

    Das Problem mit Liniendiagrammen

    Am 5. April (ein Freitag) gibt es in den Umsätzen einen Datenpunkt. Am 6./7. April gibt es keine Datenpunkte, da es sich um einen Samstag bzw. Sonntag handelt. Der nächste gültige Datenpunkt ist am 8. April vorhanden. Für Power BI bedeutet das aber, dass am 6. und 7. April der Umsatz nicht “0” ist, sondern dass keine Informationen vorhanden sind. Ein großer Unterschied!

    Liniendiagramme verbinden Datenpunkte, die vorhanden sind. Damit gewinnt man den Eindruck, dass am 6./7. April ebenfalls Umsatz getätigt wurde. Weil man erwartet hätte, dass die Linien auf 0 geht. Damit zeigen Liniendiagramme Ergebnisse, die nicht wahr sind, wenn die x-Achse keine “kontinuierliche Achse” ist. Kontinuierlich bedeutet, dass für jeden Punkt auf der x-Achse ein gültiger Wert auf der y-Achse existiert. Die Mitte zwischen dem 4. und 5. April ist aber beispielsweise gar nicht definiert. Genauso wenig wir die Mitte zwischen dem 6. April und dem 8. April. Trotzdem werden dort Daten dargestellt!

    Eigentlich dürfte man an den Punkten auf der x-Achse nur einen Punkt auf der y-Achse darstellen. Und diese darf man nicht verbinden. Eine solche Visualisierung gibt es aber doch!

    Verwendet mehr Säulendiagramme

    Ich bin ein Fan von Säulen- oder Balkendiagrammen.

    Kurz zur Benennung: Säulendiagramme sind die senkrechte Darstellung, Balkendiagramme die waagerechte.

    Bei diesen Diagrammtypen wird nicht vorgegaukelt, man hätte zwischen zwei Elementen auf der x-Achse existierende Werte. Die Balkenhöhe visualisiert einfach den Wert für den Punkt auf der x-Achse. Unser Diagramm sieht als Säulendiagramm anders und insbesondere korrekter aus.

    Power BI: Säulendiagramm als Alternative

    Ganz automatisch sieht man für den 6./7. April, dass hier kein Umsatz getätigt wurde. Und man hat auch nicht den Eindruck, dass auf der Hälfte zwischen 3. und 4. April ein Umsatz existiert.

    Mein Chef will aber ein Liniendiagramm

    So, damit hat der Herr Gubbels zwar Recht. Aber trotzdem will mein Chef ein Liniendiagramm. Wäre nicht so, dass wir das nicht kennen würden. Manchmal muss man es eben das Liniendiagramm sein. Dann bedienen wir uns eben verschiedener Tricks.

    Als erstes brauchen wir eine Datumsdimension. Das sollte ohnehin Standard sein. Wenn du nicht weißt, was das ist, empfehle ich dir unseren Blog-Beitrag dazu. Für unser Beispiel erzeuge ich die Datumstabelle direkt in Power BI via DAX. Dazu lege ich zuerst eine neue Tabelle an.

    Power BI: Neue Tabelle anlegen

    Die Datumstabelle lasse ich ab dem 1. April 2019 bis Ende 2019 berechnen. Die Formel dazu lautet:

    DimKalender = CALENDAR(DATE(2019;4;1);DATE(2019;12;31))

    Mit der Funktion CALENDAR erhalten wir eine Tabelle mit einer Spalte, die mit aufsteigenden Datumswerten gefüllt ist. Die Tabelle nenne ich DimKalendar und verknüpfe sie mit der FaktUmsatz Tabelle.

    Power BI: Modellsicht

    In unser Liniendiagramm füge ich das Feld DimDatum[Date] in die x-Achse ein und stelle die Hierarchie wieder zurück auf Datum (siehe oben). Bis jetzt hat sich noch nichts geändert.

    Measure für den Umsatz

    Wenn wir weiterhin den Umsatz von Power BI addieren lassen (also ohne Measure), dann ist das Ergebnis für Samstag und Sonntag weiterhin Blank(). Und Blank() ist eben kein Datenpunkt. Anstelle von Blank() benötigen wir “0”. Abhilfe schafft ein einfaches Measure für den Umsatz:

    SumUmsatz:= if(isblank( SUMX(FaktUmsatz; FaktUmsatz[Umsatz])); 0; SUMX(FaktUmsatz; FaktUmsatz[Umsatz]))

    Wir können auch aber auch ausnutzen, dass BLANK() + 0 = 0 ist:

    SumUmsatz:= SUMX(FaktUmsatz; FaktUmsatz[Umsatz]) + 0

    Fügen wir jetzt anstelle des Umsatzes das neue Measure ein, ändert sich das Liniendiagramm deutlich.

    Liniendiagramm mit Nullwerten

    Die beiden Tage 6. und 7. April werden jetzt korrekt dargestellt. Nur leider erstreckt sich die x-Achse jetzt über den kompletten Zeitraum, den die Datums-Dimension zu bieten hat.

    Hier sieht man die Relevanz des Wertes BLANK. Ist ein Wert BLANK stellt ihn Power BI nicht dar (das gleiche gilt für Pivot Tabellen in Excel Power Pivot). Das neue Measure gibt aber immer mindestens 0 zurück und nie wieder BLANK. Wenn die Datumsdimension über ein paar Jahre geht, ist das Diagramm nicht sonderlich lesbar.

    Relative Datumsfilter

    Mit Datumsdimensionen kann man nicht nur absolut filtern (zeige mit Daten für den 4. April 2019), sondern auch relativ (zeige mir die letzten 20 Tage).

    Power BI: Relative Datumsfilterung

    Auf diese Weise können wir den Datumsfilter einschränken auf die letzten 30 Tage inklusive und exklusive heute:

    Power BI: Relative Datumsfilterung

    Unterstützung gefällig?

    Mit Power BI und Excel Power Pivot bekommt man schnell einfache Auswertungen hin. Wenn man ein wenig mehr möchte, steigt die Lernkurve an. In Trainings schulen wir Firmen mit Power BI und Excel Power Pivot umzugehen und zeigen den Umgang mit DAX. In Workshops erarbeiten gemeinsam Reports oder übernehmen die Erstellung gleich selbst.

    Interessiert? Dann gleich E-Mail schreiben oder am besten gleich zum Telefonhörer greifen.

    Kategorien: Artikel, Layout, Modellierung, Power BI
    Holger Gubbels

    Holger Gubbels ist Spezialist für alles, was mit Business Intelligence zu tun hat. Der Diplom-Informatiker strukturiert und löst als Data Scientist und Berater der mogular GmbH tagtäglich komplexe Problemstellungen rund um die Datenanalyse. Als Dozent der Hochschule für Technik Stuttgart ist er ein ausgewiesener Experte seines Fachs und gewohnt, Inhalte einfach zu erläutern. Genau das macht er auch hier in seinen Beiträgen für das PowerPivotInsights Blog. Zusätzlich ist er Autor für die Computerwoche und den Springer-Verlag. Sie erreichen ihn unter hg@mogular.com

    Antwort schreiben

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.