CALCULATE-Funktion

Abgeschlossen

Die Funktion CALCULATE ist eine der vielseitigsten Funktionen in Power BI. Das folgende Beispiel zeigt die Syntax der CALCULATE-Funktion:

CALCULATE( <expression>, <filter1>, <filter2>, ... )

Der Ausdruck im ersten Parameter muss ausgewertet werden, um das Ergebnis (einen Wert) zurückzugeben. In der Regel handelt es sich dabei um eine Aggregationsfunktion wie SUM, AVG oder MIN. Dieser Ausdruck wird dann in einem Kontext basierend auf den Filtern ausgewertet. Diese Filter können den aktuellen Ausführungskontext erweitern und begrenzen.

Mit der CALCULATE-Funktion haben Sie die Kontrolle über den Zeilen- und Filterkontext. Sie können Filter hinzufügen, entfernen und aktualisieren. CALCULATE ist die Hauptfunktion für viele Berechnungen in DAX.

Hinzufügen eines Filters mit CALCULATE

Der folgende Codeschnipsel zeigt ein Beispiel zum Auswerten des Gesamtumsatzes, bei dem ein Flugzeugfilterkontext hinzugefügt wird.

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

Tipp

Der folgende Codeschnipsel zeigt, wie Sie dieselbe Berechnung in Tableau ausführen würden:

Airplane Sales = IF [ItemGroup] = "Airplane" THEN SUM([Sales Amount] ELSE 0 END

Aktualisieren eines Filters mit CALCULATE

Der folgende Codeschnipsel zeigt ein Beispiel zum Abrufen der Umsätze für das Jahr 2018 („2018 Sales“), selbst wenn im Slicer für das Jahr „2019“ ausgewählt ist.

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

Tipp

Ein direkter Tableau-Vergleich scheint nicht verfügbar zu sein. Zum Ausführen dieser Funktion in Tableau müssten Sie Felder duplizieren, ergänzende Datenquellen integrieren oder Berechnungen für jede Spalte ausführen.

Ignorieren eines Filters mit CALCULATE

Der folgende Codeschnipsel zeigt ein Beispiel zum Ermitteln des Gesamtumsatzes in Staaten, für die Alexandria als Stadt aufgeführt ist („Alexandria“ kann als Wert in einem Slicer für den Ort ausgewählt werden).

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

Tipp

Dieselbe Berechnung könnten Sie in Tableau mithilfe des Ausdrucks EXCLUDE LOD ausführen. Beachten Sie, dass dieser LOD-Ausdruck sich vom anderen in seiner Granularität unterscheidet. Mit diesem Ausdruck möchten Sie anstelle von Staat und Stadt den Staat aus der Ansicht ausschließen:

Total Sales All States = { EXCLUDE [State] : SUM([Total Sales]) }