CALCULATE-Funktion
Wertet einen Ausdruck in einem Kontext aus, der von den angegebenen Filtern geändert wird.
Syntax
CALCULATE(<expression>,<filter1>,<filter2>…)
Parameter
Ausdruck |
Definition |
---|---|
expression |
Der auszuwertende Ausdruck. |
filter1,filter2,… |
(optional) Eine durch Trennzeichen getrennte Liste mit booleschen Ausdrücken oder ein Tabellenausdruck, der einen Filter definiert. |
Der als erster Parameter verwendete Ausdruck ist im Grunde das Gleiche wie ein Measure.
Die folgenden Einschränkungen gelten für boolesche Ausdrücke, die als Argumente verwendet werden:
Der Ausdruck kann nicht auf ein Measure verweisen.
Der Ausdruck kann keine geschachtelte CALCULATE-Funktion verwenden.
Der Ausdruck kann keine Funktion verwenden, die eine Tabelle scannt oder eine Tabelle zurückgibt, einschließlich Aggregationsfunktionen.
Ein boolescher Ausdruck kann jedoch jede Funktion verwenden, die nach einem einzelnen Wert sucht oder einen Skalarwert berechnet.
Rückgabewert
Der Wert, der das Ergebnis des Ausdruck ist.
Hinweise
Wenn die Daten gefiltert wurden, ändert die CALCULATE-Funktion den Kontext, in dem die Daten gefiltert werden, und wertet den Ausdruck im neuen Kontext aus, den Sie angeben. Für jede in einem Filterargument verwendete Spalte werden alle vorhandenen Filter entfernt, und stattdessen wird der im Filterargument verwendete Filter angewendet.
Beispiel
Um das Verhältnis der Verkäufe des aktuellen Wiederverkäufers zu den Verkäufen aller Wiederverkäufer zu berechnen, fügen Sie der PivotTable ein Measure hinzu, das die Summe der Verkäufe für die aktuelle Zelle (den Zähler) berechnet und dann die Summe durch den Gesamtumsatz aller Wiederverkäufer (den Nenner) dividiert. Um sicherzustellen, dass der Nenner unverändert bleibt, unabhängig davon, wie die PivotTable die Daten filtert oder gruppiert, muss der Teil der Formel, der den Nenner darstellt, alle Filter mithilfe der ALL-Funktion löschen und das richtige Gesamtergebnis generieren.
In der folgenden Tabelle werden die Ergebnisse angezeigt, die sich aus der Erstellung des neuen Measures All Reseller Sales Ratio mit der im Codeabschnitt enthaltenen Formel ergeben.
Zur Veranschaulichung fügen Sie dem Bereich Zeilenbezeichnungen der PivotTable das Feld "CalendarYear" und dem Bereich Spaltenbezeichnungen das Feld "ProductCategoryName" hinzu. Fügen Sie dann das neue Measure dem Bereich Werte der PivotTable hinzu. Um die Zahlen als Prozentsätze anzuzeigen, wenden Sie auf den PivotTable-Bereich mit dem neuen Measure All Reseller Sales Ratio eine Formatierung für Prozentzahlen an.
All Reseller Sales |
Spaltenbezeichnungen |
|
|
|
|
---|---|---|---|---|---|
Zeilenbezeichnungen |
Accessories |
Bikes |
Clothing |
Components |
Gesamtergebnis |
2005 |
0.02% |
9.10% |
0.04% |
0.75% |
9.91% |
2006 |
0.11% |
24.71% |
0.60% |
4.48% |
29.90% |
2007 |
0.36% |
31.71% |
1.07% |
6.79% |
39.93% |
2008 |
0.20% |
16.95% |
0.48% |
2.63% |
20.26% |
Gesamtergebnis |
0.70% |
82.47% |
2.18% |
14.65% |
100.00% |
=( SUM('ResellerSales_USD'[SalesAmount_USD]))
/CALCULATE( SUM('ResellerSales_USD'[SalesAmount_USD])
,ALL('ResellerSales_USD'))
Der CALCULATE-Ausdruck im Nenner ermöglicht es, dass der Summenausdruck alle Zeilen in die Berechnung einschließt. Dies überschreibt die impliziten Filter für CalendarYear und ProductCategoryName, die für den Zählerteil des Ausdrucks vorhanden sind.
Verwandte Funktionen
Während die CALCULATE-Funktion als erstes Argument einen Ausdruck erfordert, der einen einzelnen Wert zurückgibt, verwendet die CALCULATETABLE-Funktion eine Wertetabelle.