Vermeiden der Konvertierung von BLANKs in Werte

Als Datenmodellierer können Sie beim Schreiben von Measureausdrücken auf Fälle stoßen, in denen kein sinnvoller Wert zurückgegeben werden kann. Dann ist es möglicherweise verlockend, einen Wert wie z.B. 0 (null) zurückzugeben. Es wird empfohlen, sorgfältig zu prüfen, ob dieser Entwurf effizient und geeignet ist.

Beachten Sie die folgende Measuredefinition, die BLANK-Ergebnisse explizit in 0 (null) konvertiert.

Sales (No Blank) =
IF(
    ISBLANK([Sales]),
    0,
    [Sales]
)

Betrachten Sie eine andere Measuredefinition, die auch die BLANK-Ergebnisse in 0 konvertiert.

Profit Margin =
DIVIDE([Profit], [Sales], 0)

Die Funktion DIVIDE teilt das Measure Profit durch das Measure Sales. Wenn das Ergebnis 0 (null) oder BLANK ist, wird das dritte Argument – das alternative Ergebnis (das optional ist) – zurückgegeben. Da in diesem Beispiel 0 als alternatives Ergebnis übergeben wird, ist sichergestellt, dass das Measure immer einen Wert zurückgibt.

Diese Measureentwürfe sind ineffizient und führen zu schlechten Berichtsentwürfen.

Wenn sie einem Berichtsvisual hinzugefügt werden, versucht Power BI, alle Gruppierungen innerhalb des Filterkontexts abzurufen. Durch das Auswerten und Abrufen umfangreicher Abfrageergebnisse wird das Rendern von Berichten häufig verlangsamt. Jedes Beispielmeasure wandelt eine Sparseberechnung in eine Denseberechnung um und zwingt Power BI, mehr Arbeitsspeicher als nötig zu verwenden.

Außerdem wird es durch zu viele Gruppierungen für die Berichtsbenutzer oft zu unübersichtlich.

Sehen Sie sich an, was geschieht, wenn das Measure Profit Margin zu einem Tabellenvisual hinzugefügt wird, das nach Kunden gruppiert ist.

Screenshot of Power B I Desktop showing table visual of data with one row per customer. Sales values are BLANK and Profit Margin values are zero per cent.

Das Tabellenvisual zeigt eine überwältigende Anzahl von Zeilen an. (Es gibt tatsächlich 18.484 Kunden im Modell, sodass versucht wird, sie alle in der Tabelle anzuzeigen.) Beachten Sie, dass die betrachteten Kunden keine Umsätze erzielt haben. Da das Measure Profit Margin jedoch immer einen Wert liefert, werden sie angezeigt.

Hinweis

Wenn zu viele Datenpunkte in einem Visual angezeigt werden müssen, kann Power BI Datenreduktionsstrategien anwenden, um umfangreiche Abfrageergebnisse zu entfernen oder zusammenzufassen. Weitere Informationen finden Sie unter Datenpunktgrenzwerte und Strategien nach Visualtyp.

Nun sehen Sie, was geschieht, wenn die Definition des Measures Profit Margin verbessert wird. Es wird nun nur dann ein Wert zurückgegeben, wenn das Measure Sales nicht BLANK (oder 0 (null)) ist.

Profit Margin =
DIVIDE([Profit], [Sales])

Das Tabellenvisual zeigt nun nur noch Kunden an, die innerhalb des aktuellen Filterkontexts Umsätze getätigt haben. Das verbesserte Measure führt zu einer effizienteren und praktischeren Erfahrung für die Berichtsbenutzer.

Screenshot of Power BI Desktop showing table visual of data that has filtered content.

Tipp

Bei Bedarf können Sie das Visual so konfigurieren, dass alle Gruppen (die Werte oder BLANK zurückgeben) im Filterkontext angezeigt werden, indem Sie die Option Elemente ohne Daten anzeigen aktivieren.

Empfehlung

Ihre Measures sollten BLANK zurückgeben, wenn kein sinnvoller Wert zurückgegeben werden kann.

Dieser Entwurfsansatz ist effizient und ermöglicht Power BI, Berichte schneller zu rendern. Zudem ist ein Vorteil der Rückgabe von BLANK, dass Berichtsvisuals Gruppierungen standardmäßig löschen, wenn Zusammenfassungen leer (BLANK) sind.