Freigeben über


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 und vollqualifizierten, die in der Regel die n-Seite der zu verwendenden Beziehung darstellt; wenn die Argumente in umgekehrter Reihenfolge angegeben werden, tauschen sie die Funktion aus, bevor sie verwendet werden. Dieses Argument kann kein Ausdruck sein.
columnName2 Der Name einer vorhandenen Spalte unter Verwendung von Standardsyntax DAX und vollqualifizierten, die in der Regel die eine Seite oder Nachschlageseite der zu verwendenden Beziehung darstellt; wenn die Argumente in umgekehrter Reihenfolge angegeben werden, tauschen sie die Funktion aus, bevor sie verwendet werden. Dieses Argument kann kein Ausdruck sein.
Direction Die zu verwendende Kreuzfilterrichtung. Muss eine der folgenden Werte sein:

None – Es erfolgt keine Kreuzfilterung entlang dieser Beziehung.

Both – Filter auf beiden Seiten filtert die andere Seite.

OneWay – Filter auf der einen Seite oder auf der Nachschlageseite eines Beziehungsfilters auf 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 oder OneWay_RightFiltersLeft.

OneWay_LeftFiltersRight - Filter auf der Seite columnName1 filtern die Seite von columnName2. Diese Option kann nicht mit einer 1:1- oder n:1-Beziehung verwendet werden.

OneWay_RightFiltersLeft - Filter auf der Seite columnName2 filtern die Seite von columnName1. Diese Option kann nicht mit einer 1:1- oder n:1-Beziehung verwendet werden.

Rückgabewert

Die Funktion gibt keinen Wert zurück; die Funktion legt nur die Kreuzfilterrichtung für die angegebene Beziehung für die Dauer der Abfrage fest.

Bemerkungen

  • Bei einer 1:1-Beziehung gibt es keinen Unterschied zwischen der einen und beiden Richtungen.

  • CROSSFILTER können nur in Funktionen verwendet werden, die einen Filter als Argument verwenden, z. B.: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD und TOTALYTD Funktionen.

  • CROSSFILTER vorhandene Beziehungen im Modell verwendet, wobei Beziehungen anhand ihrer Endpunktspalten identifiziert werden.

  • In CROSSFILTERist die filterübergreifende Einstellung einer Beziehung nicht wichtig; d. h., ob die Beziehung auf das Filtern einer oder beider Richtungen im Modell festgelegt ist, wirkt sich nicht auf die Verwendung der Funktion aus. CROSSFILTER setzt alle vorhandenen Einstellungen für die Kreuzfilterung außer Kraft.

  • Es wird ein Fehler zurückgegeben, wenn eine der Spalten, die als Argument bezeichnet werden, nicht Teil einer Beziehung ist oder die Argumente zu unterschiedlichen Beziehungen gehören.

  • Wenn CALCULATE Ausdrücke geschachtelt sind und mehr als ein CALCULATE Ausdruck eine CROSSFILTER Funktion enthält, ist die innerste CROSSFILTER die, die im Falle eines Konflikts oder einer Mehrdeutigkeit vorherrscht.

  • Diese Funktion wird für die Verwendung im DirectQuery-Modus nicht unterstützt, wenn sie in berechneten Spalten oder Sicherheitsregeln auf Zeilenebene (RLS) verwendet wird.

Beispiel

Im folgenden Modelldiagramm weisen DimProduct und DimDate eine einzelne Richtungsbeziehung mit FactInternetSales auf.

CROSSFILTER_Examp_DiagView

Standardmäßig können wir die Anzahl der verkauften Produkte nicht nach Jahr abrufen:

CROSSFILTER_Examp_PivotTable1

Es gibt zwei Möglichkeiten, die Anzahl der Produkte nach Jahr zu erhalten:

  • Aktivieren Sie die bidirektionale Kreuzfilterung für die Beziehung. Dadurch wird die Funktionsweise von Filtern für alle Daten zwischen diesen beiden Tabellen geändert.

  • Verwenden Sie die CROSSFILTER-Funktion, um zu ändern, wie die Beziehungen nur für dieses Maß funktionieren.

Bei Verwendung von DAXkönnen wir die CROSSFILTER-Funktion verwenden, um zu ändern, wie sich die Kreuzfilterrichtung zwischen zwei Spalten verhält, die durch eine Beziehung definiert sind. In diesem Fall sieht der DAX Ausdruck wie folgt aus:

BiDi:= CALCULATE([Distinct Count of ProductKey], CROSSFILTER(FactInternetSales[ProductKey], DimProduct[ProductKey] , Both))

Mithilfe der funktion CROSSFILTER in unserem Measureausdruck erhalten wir die erwarteten Ergebnisse:

CROSSFILTER_Examp_PivotTable2