Funktion “Show items with no data” in Power BI Visualisierungen nutzen

Die Funktion "Show items with no data" in Power BI ist im Normalfall eine sehr einfache und nützliche Funktion zur Visualisierung der "Leerstellen". Also zur intuitiven Darstellung beispielsweise der Information, in welchem Monat in einem bestimmten Land kein Umsatz gemacht wurde, welche Artikel nicht verkauft wurden, und vieles mehr.

Abhängig vom Datenmodell kann es aber auch leicht zum unerwarteten Nicht-Funktionieren des Features kommen. Darum geht es im folgenden Beitrag.

1. Ausgangssituation

Wir verwenden den Adventure Works Reseller Showcase, also ein ganz normales Star Schema. Der Fokus in diesem Beitrag liegt auf der Faktentabelle Fact Sales und der Dimensionstabelle Dim Date, die über die jeweiligen Datumsfelder verknüpft sind:

Die Dim Date umfasst einen Zeitraum von 3 Jahren (36 Monate), während in der Fact Sales nur 15 Monate bebucht sind:

2. "Show items with no data" im Star Schema ("funktioniert")

Das Standardverhalten aller Visuals in Power BI ist, einen Filter auf die sogenannten Blank()-Elemente anzuwenden, also nur die (in der Faktentabelle bebuchten) Elemente der Dimensionstabelle anzuzeigen. Es werden also nur die bebuchten Perioden angezeigt, was in vielen Fällen auch zielführend ist:

Ist es für eine Analyse oder einen Report wichtig, auch die Perioden ohne Werte anzuzeigen, dann bietet Power BI mit dem Feature Show items with no data eine leicht zu nutzende Lösung:

Die Funktion gilt immer für alle Elemente einer Hierarchie in einem Visual - also für alle Felder, die sich im Achsenbereich eines Charts oder im Zeilen- und Spaltenbereich eines Matrix/Table Visuals befinden. Es ist daher egal, bei welchem Feld die Funktion aktiviert wird und es spielt auch keine Rolle, ob es sich um eine adhoc Hierarchie (wie hier) oder um eine im Datamodel vordefinierte Hierarchie handelt.

Als Ergebnis werden in den Visuals ab sofort auch die unbebuchten Perioden angezeigt:

Da die Dim Date auch das Jahr 2019 enthält, würden auch diese zusätzlichen 12 leeren Monate angezeigt werden. Daher wurde ein Seitenfilter auf die beiden Jahre 2017 und 2018 gesetzt:

Bei einer Filterung bspw. auf ein bestimmtes Land mit weniger Umsatzperioden werden die Balken weniger, die Perioden stehen aber immer noch an der gleichen Stelle, was den Vergleich beim Durchschalten wesentlich intuitiver macht ...

... während die Aufhebung der Show items with no data Funktion wegen der Neuskalierung zu sehr breiten Säulen führt und die Vergleichbarkeit jetzt deutlich eingeschränkt ist:

Die Funktion Show elements with no data funktioniert natürlich nicht nur mit Perioden sondern mit sämtlichen Dimensionstabellen:

3. "Show items with no data" im Flat Table ("funktioniert nur teilweise")

Wird bei der Datenmodellierung auf das Star Schema verzichtet und stattdessen ein "Flat Table" Datenmodell verwendet ("alles in einer Tabelle"), dann befinden sich die Zeitfelder Year und Month nicht in einer Dimensionstabelle sondern direkt in der Faktentabelle. Wird hier die Funktion Show items with no data aktiviert ...

... dann passiert gegenüber der Standardfilterung jetzt nichts, die Darstellung bleibt unverändert auf die bebuchten Perioden beschränkt:

Der Grund liegt darin, daß das Feature Show elements with no data existierende aber nicht bebuchte Elemente (sog. Blank()-Elemente) sichtbar macht, nicht aber im Datenmodell nicht existierende Elemente erzeugen kann.

Ein Ausweg für die Darstellung unbebuchter Perioden liegt in der Verwendung der sog. AutoDate Dimension, das ist eine auf jedes Datumsfeld im Datamodel erzeugte 4-stufige Standardhierarchie bestehend aus Jahr, Quartal, Monat und Tag:

Bei Verwendung einer solchen AutoDate Hierarchie greift auch wieder die Show items with no data Funktion. Der Grund besteht darin, daß die AutoDate Hierarchie auf einer automatisch generierten (aber nicht zugänglichen) Dimensionstabelle beruht (mehr erfahren). Beachten Sie bitte, daß die Schreibweisen der Perioden bei einer AutoDate Hierarchie nicht beeinflußt werden kann.

Für die anderen Bereiche eines "Flat Table" Datenmodells - Kunden, Länder, Artikel, Mitarbeiter usw. - gibt es jedoch keine Möglichkeit, die unbebuchten Elemente anzuzeigen, da es dies per Definition in einem Flat Table nicht gibt.

4. Besondere Fälle

4.1 Bidirektionale Filterung im Star Schema ("funktioniert nicht")

Im Star Schema ist grundsätzlich keine bidirektionale Filterung notwendig und sollte auch nicht ohne besonderen Grund aktiviert werden. Wird jedoch - aus welchem Grund auch immer - die Beziehung zwischen der Fact Sales und der Dim Date auf bidirektional umgestellt ...

... dann funktioniert die Show items with no data Funktion ebenfalls nicht mehr, sobald die bidirektionale Filterung in die Dimensionstabelle aktiv wird (dies geschieht bei Filterung der Faktentabelle entweder direkt oder über einen Filter aus einer der anderen Dimensionstabellen):

Der Grund ist, daß in diesem Fall die Dim Date auf die in der Fact Sales bebuchten Elemente gefiltert wird und damit die Blank()-Elemente für das Visual nicht mehr verfügbar sind (der Filter Context aus permanenten Filtern geht der Show items with no data Funktion vor).

4.2 Measure-basierte Anzeige der Blank()-Elemente ("funktioniert")

Die Blank() Elemente - sie müssen jedenfalls existieren und dürfen nicht weggefiltert sein - können alternativ zur Show items with no data Funktion über ein Measure aktiviert werden:

Im Measure wird über ein If-Bedingung das Blank() durch einen Leerstring ("") ersetzt, damit greift die Standardfilterung aller Visuals auf Blank()-Elemente nicht mehr und es werden alle verfügbaren Elemente angezeigt:

  • Total Sales 2 =
    VAR var_SUM = Sum('Fact Sales'[Sales Amount])
    RETURN
    If(var_SUM = Blank();""; var_SUM)

Der Unterschied zur Show items with no data Funktion, daß das Einblenden permanent ist und sich auf sämtliche Felder des Datamodels bezieht.

Ü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!