CALCULATETABLE
Gilt für:Berechnete Spalteberechnete TabelleMeasurevisuelle Berechnung
Wertet einen Tabellenausdruck in einem geänderten filter Kontext aus.
Anmerkung
Es gibt auch die CALCULATE Funktion. Es führt genau die gleiche Funktionalität aus, except wird der filter Kontext auf einen Ausdruck angewendet, der einen skalaren valuezurückgibt.
Syntax
CALCULATETABLE(<expression>[, <filter1> [, <filter2> [, …]]])
Parameter
Ausdruck | Definition |
---|---|
expression |
Der tabellenausdruck, der ausgewertet werden soll. |
filter1, filter2,… |
(Optional) Boolesche Ausdrücke or Tabellenausdrücke, die filters, orfilter Modifiziererfunktionen definieren. |
Der Ausdruck, der als first-Parameter verwendet wird, muss eine Modelltabelle or einer Funktion sein, die eine Tabelle zurückgibt.
Filters kann folgendes sein:
- Boolesche filter Ausdrücke
- Tabellenfilter Ausdrücke
- Filter Änderungsfunktionen
Wenn mehrere filtersvorhanden sind, werden sie mithilfe des ANDlogischen Operatorsausgewertet. Das bedeutet, dass all Bedingungen auf demselben timeTRUE
werden müssen.
Boolesche filter Ausdrücke
Ein boolescher Ausdruck filter ist ein Ausdruck, der zu TRUE
orFALSE
ausgewertet wird. Es gibt mehrere Regeln, die sie einhalten müssen:
- Sie können nur auf eine einzelne Spalte verweisen.
- Sie können keine Measures referenzieren.
- Sie können keine geschachtelte CALCULATE-Funktion verwenden.
Ab der Version vom September 2021 von Power BI Desktop gelten auch die folgenden:
- Sie können keine Funktionen verwenden, die or eine Tabelle zurückgeben, es sei denn, sie werden als Argumente an Aggregationsfunktionen übergeben.
- Sie können eine Aggregationsfunktion enthalten, die einen skalaren valuezurückgibt.
Tabelle filter Ausdruck
Ein Tabellenausdruck filter wendet ein Tabellenobjekt als filteran. Es könnte ein Verweis auf eine Modelltabelle sein, aber wahrscheinlicher ist es eine Funktion, die ein Tabellenobjekt zurückgibt. Sie können die FILTER-Funktion verwenden, um komplexe filter Bedingungen anzuwenden, einschließlich derer, die nicht durch einen booleschen filter Ausdruck definiert werden können.
Filter Modifiziererfunktionen
Filter Modifiziererfunktionen ermöglichen es Ihnen, mehr zu tun, als einfach filtershinzuzufügen. Sie bieten Ihnen zusätzliche Kontrolle beim Ändern filter Kontexts.
Funktion | Zweck |
---|---|
REMOVEFILTERS | Entfernen Sie allfilters, orfilters aus einer or mehreren Spalten einer Tabelle, or aus all Spalten einer einzelnen Tabelle. |
ALL 1, ALLEXCEPT, ALLNOBLANKROW | Entfernen Sie filters aus einer or weiteren Spalten, or aus all Spalten einer einzelnen Tabelle. |
KEEPFILTERS | Fügen Sie filter hinzu, ohne vorhandene filters in denselben Spalten zu entfernen. |
USERELATIONSHIP | Binden Sie eine inaktive Beziehung zwischen related Spalten ein, in diesem Fall wird die aktive Beziehung automatisch inaktiv. |
CROSSFILTER | Ändern sie filter Richtung (von beiden in einzelne, or von single zu both), or eine Beziehung zu deaktivieren. |
1 Die ALL Funktion and ihre Varianten verhalten sich als filter Modifizierer and als Funktionen, die Tabellenobjekte zurückgeben. If die REMOVEFILTERS-Funktion von Ihrem Tool unterstützt wird, empfiehlt es sich, sie zu verwenden, um filterszu entfernen.
value zurückgeben
Eine Tabelle mit values.
Bemerkungen
Wenn filter Ausdrücke bereitgestellt werden, ändert die CALCULATETABLE-Funktion den filter Kontext so, dass er den Ausdruck evaluate. Für jeden filter Ausdruck gibt es zwei mögliche Standardergebnisse, wenn der filter Ausdruck in die KEEPFILTERS-Funktion eingeschlossen not wird:
- If die Spalten (or Tabellen) nicht im filter Kontext enthalten sind, werden dem filter Kontext neue filters hinzugefügt, um den Ausdruck zu evaluate.
- If die Spalten (or Tabellen) sich bereits im filter Kontext befinden, wird die vorhandene filters vom neuen filters überschrieben, um den CALCULATETABLE Ausdruck zu evaluate.
Diese Funktion wird not für die Verwendung im DirectQuery-Modus unterstützt, wenn sie in berechneten Spalten or Sicherheitsregeln auf Zeilenebene (RLS) verwendet wird.
Beispiel
Im folgenden Beispiel wird die funktion CALCULATETABLE verwendet, um die sum des Internetumsatzes für 2006 abzurufen. Diese value wird später verwendet, um das Verhältnis des Internetumsatzes im Vergleich zu all Verkäufen für die year 2006 zu calculate.
Die folgende Formel:
= SUMX(
CALCULATETABLE(
'InternetSales_USD',
'DateTime'[CalendarYear] = 2006
),
[SalesAmount_USD]
)
Dies führt zu der folgenden Tabelle:
Zeilenbeschriftungen | Internet-SalesAmount_USD | CalculateTable 2006 Internet Sales | Verhältnis zwischen Internetumsatz und 2006 |
---|---|---|---|
2005 | $2,627,031,40 | $5,681,440,58 | 0.46 |
2006 | $5,681,440,58 | $5,681,440,58 | 1.00 |
2007 | $8.705.066,67 | $5,681,440,58 | 1.53 |
2008 | $9,041,288,80 | $5,681,440,58 | 1.59 |
Gesamtsumme | $26.054.827,45 | $5,681,440,58 | 4.59 |