Erlernen der CALCULATE-Funktion

Abgeschlossen

Am Ende dieser Einheit verstehen Sie, warum die CALCULATE-Funktion eine der vielseitigsten Funktionen in Power BI ist.

Allgemein haben Sie die Kontrolle über den Zeilen- und Filterkontext. Mit der CALCULATE-Funktion können Sie Filter hinzufügen, entfernen und aktualisieren. Das ist ein enormes Leistungspotenzial für eine Funktion!

Hinzufügen eines Filters mit CALCULATE

Zunächst erfahren Sie, wie Sie einen Filter mit der CALCULATE-Funktion hinzufügen.

Datentabelle, auf die beim Hinzufügen eines Filters mit der CALCULATE-Funktion verwiesen wird.

Sie haben den Gesamtumsatz in der vorherigen Datentabelle:

Total Sales = SUM( [Sales Amount] )

Sie verfügen auch über eine gefilterte Version des Gesamtumsatzes, in der Sie den Gesamtumsatz auswerten und einen Flugzeugfilterkontext anwenden:

Airplane Sales = CALCULATE( [Total Sales], 'Product Details'[ItemGroup] = "Airplane" )

Tipp

KORRELATION MIT TABLEAU: Der folgende Codeausschnitt zeigt, wie Sie dieselbe Berechnung in Tableau durchführen würden: Airplane Sales = IF [ItemGroup] = "Airplane" THEN SUM([Sales Amount] ELSE 0 END)

Ignorieren eines Filters mit CALCULATE

Als Nächstes erfahren Sie, wie Sie einen Filter mit der CALCULATE-Funktion ignorieren.

Datentabelle, auf die beim Ignorieren eines Filters mit der CALCULATE-Funktion verwiesen wird.

In der vorherigen Datentabelle haben Sie den Gesamtumsatz nach Bundesstaat in einer Spalte und den Gesamtumsatz nach allen geografischen Regionen in der nächsten Spalte. Diese Spalte ist nützlich, wenn Sie für jeden Bundesstaat (oder jede Zeile) eine Analyse des Prozentsatzes des Gesamtumsatzes durchführen möchten.

Die gängigste Möglichkeit, den Prozentsatz des Gesamtumsatzes in DAX zu berechnen, ist die ALL-Funktion.

Total Sales All Geo = CALCULATE( [Total Sales], ALL( Geography ) )

Im obigen Code zeigen Sie die Tabelle „Geography“ an und beziehen alle darin enthaltenen Werte ein. Schränken Sie den Filterkontext nicht ein.

Tipp

KORRELATION MIT TABLEAU: Der folgende Codeausschnitt zeigt, wie Sie dieselbe Berechnung in Tableau mithilfe des Ausdrucks EXCLUDE LOD vornehmen: Total Sales All Geo = { EXCLUDE [State], [City] : SUM([Total Sales]) }

Ein anderes Beispiel für das Ignorieren von Filtern würde in etwa wie folgt aussehen:

Datentabelle, auf die beim Ignorieren von Filtern mit der CALCULATE-Funktion verwiesen wird.

In der vorherigen Tabelle haben Sie den Gesamtumsatz nach Bundesstaat, den Gesamtumsatz nach Geografie (mit Ausnahme aller Geografiefilter) und schließlich den Gesamtumsatz nach allen Bundesstaaten, aber der Stadtfilter wird weiterhin angewendet.

Dem Bild zufolge gibt es in mehreren Bundesstaaten eine Stadt namens „Alexandria“. Sie möchten also nur den Gesamtumsatz der Bundesstaaten finden, in denen es eine Stadt namens „Alexandria“ gibt:

Total Sales All States = CALCULATE( [Total Sales], ALL( Geography[State] ) )

Tipp

KORRELATION MIT TABLEAU: So würden Sie dieselbe Berechnung in Tableau mithilfe des EXCLUDE LOD-Ausdrucks durchführen. Sie werden bemerken, dass dieser LOD-Ausdruck sich vom anderen in seiner Granularität unterscheidet. Mit diesem Ausdruck möchten Sie nur den Bundesstaat statt Bundesstaat und Stadt aus der Ansicht ausschließen: Total Sales All States = { EXCLUDE [State] : SUM([Total Sales]) }

Aktualisieren eines Filters mit CALCULATE

Schließlich ist die letzte exemplarische Vorgehensweise, um die Nützlichkeit der CALCULATE-Funktion hervorzuheben, das Aktualisieren eines Filters.

Datentabelle, auf die beim Aktualisieren eines Filters mit der CALCULATE-Funktion verwiesen wird.

In der vorherigen Datentabelle haben Sie (das Jahr ignorierend) den Gesamtumsatz insgesamt, den vom Slicer im Visual angewendeten Gesamtumsatz im Filterkontext und in der letzten Spalte nur den Gesamtumsatz für das Jahr 2018.

Um die Spalte „2018 Sales“ abzurufen, müssen Sie in etwa Folgendes schreiben:

2018 Sales = CALCULATE( [Total Sales], DATE[Year] = 2018 )

Tipp

KORRELATION MIT TABLEAU: Dies ist interessant, da es keinen direkten Tableau-Vergleich zu geben scheint. Um dies in Tableau umzusetzen, müssten Sie Felder duplizieren, ergänzende Datenquellen integrieren oder Berechnungen pro Spalte ausführen.

Tableau, derzeit nicht verfügbar. Power BI, steuern Sie den Filterkontext, indem Sie den Filter mit der CALCULATE-Funktion aktualisieren.

In dieser CALCULATE-Einheit haben Sie Folgendes gelernt:

  • Jeder Ausdruck kann als erstes Argument verwendet werden.

  • Der Ausdruck untersucht den gesamten Filterkontext auf der Seite (die Slicer für die Visualisierung).

  • Wenn Filter vorhanden sind, werden sie hinzugefügt.

  • Wenn ein Filter bereits in der Filterliste enthalten und mit dem Seitenkontext identisch ist, wird dieser überschrieben.

  • Nach all diesen (oben aufgeführten) Nuancen wird der Ausdruck schließlich ausgewertet.

Hinweis

Natürlich sollten Sie dies nicht tun, ohne Ihre Antworten zu überprüfen, um die Reihenfolge der Vorgänge wirklich zu verstehen. Sie sollten sich fragen: „Wurden meine Filter abgebrochen oder nicht?“