Freigeben über


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 TRUEorFALSEausgewertet 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