CROSSFILTER
Gilt für:Berechnete Spalteberechnete TabelleMeasurevisuelle Berechnung
Gibt die Kreuzfilterrichtung an, die in einer Berechnung für eine Beziehung verwendet werden soll, die zwischen zwei Spalten vorhanden ist.
Syntax
CROSSFILTER(<columnName1>, <columnName2>, <direction>)
Parameter
Ausdruck | Definition |
---|---|
columnName1 |
Der Name einer vorhandenen Spalte unter Verwendung der standardmäßigen DAX Syntax and vollqualifizierten, die in der Regel die viele Seite der zu verwendenden Beziehung darstellt; if die Argumente in umgekehrter Reihenfolge angegeben werden, werden sie durch die Funktion ausgetauscht, bevor sie verwendet werden. Dieses Argument kann kein Ausdruck sein. |
columnName2 |
Der Name einer vorhandenen Spalte unter Verwendung der standardmäßigen DAX Syntax and vollqualifizierten, die in der Regel die eine Seite or Nachschlageseite der zu verwendenden Beziehung darstellt; if die Argumente in umgekehrter Reihenfolge angegeben werden, werden sie durch die Funktion ausgetauscht, bevor sie verwendet werden. Dieses Argument kann kein Ausdruck sein. |
Direction |
Die zu verwendende Kreuz-filter Richtung. Muss eine der folgenden Werte sein:None – Es erfolgt keine Kreuzfilterung entlang dieser Beziehung.Both - Filters auf beiden Seiten filters der anderen Seite.OneWay - Filters auf der einen Seite or der Nachschlageseite einer Beziehung filter der anderen Seite. Diese Option kann nicht mit einer 1:1-Beziehung verwendet werden. Verwenden Sie diese Option nicht für eine n:n-Beziehung, da unklar ist, welche Seite die Nachschlageseite ist. verwenden Sie stattdessen OneWay_LeftFiltersRight or OneWay_RightFiltersLeft.OneWay_LeftFiltersRight - Filters auf der Seite columnName1 filter der Seite der columnName2 . Diese Option kann nicht mit einer 1:1-or m:1-Beziehung verwendet werden.OneWay_RightFiltersLeft - Filters auf der Seite columnName2 filter der Seite der columnName1 . Diese Option kann nicht mit einer 1:1-or m:1-Beziehung verwendet werden. |
value zurückgeben
Die Funktion gibt keine valuezurück; die Funktion legt nur die Kreuzfilterrichtung für die angegebene Beziehung für die duration der Abfrage fest.
Bemerkungen
Bei einer 1:1-Beziehung gibt es keinen Unterschied zwischen der beziehung and beide Richtungen.
CROSSFILTER können nur in Funktionen verwendet werden, die eine filter als Argument verwenden, z. B. CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTDandTOTALYTD Funktionen.
CROSSFILTER vorhandene Beziehungen im Modell verwendet, wobei Beziehungen anhand ihrer Endpunktspalten identifiziert werden.
In CROSSFILTERist die filterübergreifende Einstellung einer Beziehung not wichtig; d. h., ob die Beziehung auf filter festgelegt ist, or beide Richtungen im Modell not sich auf die Verwendung der Funktion auswirken. CROSSFILTER setzt alle vorhandenen Einstellungen für die Kreuzfilterung außer Kraft.
Ein error wird if einer der Spalten zurückgegeben, die als Argument bezeichnet werden, not Teil einer Beziehung or die Argumente zu unterschiedlichen Beziehungen gehören.
If CALCULATE Ausdrücke sind geschachtelt, and mehr als ein CALCULATE Ausdruck contains einer CROSSFILTER Funktion, dann ist die innerste CROSSFILTER die, die im Falle eines Konflikts or Mehrdeutigkeit vorherrscht.
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 Modelldiagramm weisen beide DimProduct and DimDate eine einzelne Richtungsbeziehung mit FactInternetSales auf.
Standardmäßig können wir die Count der von yearverkauften Produkte nicht abrufen:
Es gibt zwei Möglichkeiten, die count von Produkten durch yearzu erhalten:
Aktivieren Sie die bidirektionale Kreuzfilterung für die Beziehung. Dadurch wird die Funktionsweise filters für all Daten zwischen diesen beiden Tabellen geändert.
Verwenden Sie die funktion CROSSFILTER, um zu ändern, wie die Beziehungen nur für dieses measurefunktionieren.
Bei Verwendung von DAXkönnen wir die CROSSFILTER-Funktion verwenden, um zu ändern, wie sich die Kreuz-filter Richtung zwischen zwei Spalten verhält, die durch eine Beziehung definiert werden. In diesem Fall sieht der DAX Ausdruck wie folgt aus:
BiDi:= CALCULATE([Distinct Count of ProductKey], CROSSFILTER(FactInternetSales[ProductKey], DimProduct[ProductKey] , Both))
Mithilfe der CROSSFILTER-Funktion in unserem measure Ausdruck erhalten wir die erwarteten Ergebnisse: