CROSSFILTER

Gibt die Richtung der Kreuzfilterung an, die in der Berechnung für eine Beziehung zwischen zwei Spalten verwendet werden soll.

Syntax

CROSSFILTER(<columnName1>, <columnName2>, <direction>)  

Parameter

Begriff Definition
columnName1 Der vollqualifizierte Name einer vorhandenen Spalte mit DAX-Standardsyntax, die in der Regel die n-Seite der zu verwendenden Beziehung darstellt. Argumente in umgekehrter Reihenfolge werden vor der Verwendung ausgetauscht. Bei diesem Argument darf es sich nicht um einen Ausdruck handeln.
columnName2 Der vollqualifizierte Name einer vorhandenen Spalte mit DAX-Standardsyntax, die in der Regel die 1-Seite oder Suchseite der zu verwendenden Beziehung darstellt. Argumente in umgekehrter Reihenfolge werden vor der Verwendung ausgetauscht. Bei diesem Argument darf es sich nicht um einen Ausdruck handeln.
Direction Die zu verwendende Kreuzfilterrichtung. Dies muss eine der folgenden Ressourcen sein:

Keine: Für diese Beziehung wird keine Kreuzfilterung durchgeführt.

Beide: Filter auf jeder Seite filtern die jeweils andere Seite

OneWay (In eine Richtung): Filter auf der einen Seite oder auf der Suchseite einer Beziehung filtern die andere Seite. Diese Option kann nicht mit einer 1:1-Beziehung verwendet werden. Verwenden Sie diese Option nicht mit einer m:n-Beziehung, da es nicht eindeutig ist, welche Seite die Suchseite ist. Verwenden Sie stattdessen OneWay_LeftFiltersRight oder OneWay_RightFiltersLeft.

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

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

Rückgabewert

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

Bemerkungen

  • Bei einer 1:1-Beziehung besteht zwischen den Richtungen „Einfach“ und „Beide“ kein Unterschied.

  • CROSSFILTER kann nur in Funktionen verwendet werden, die einen Filter als Argument akzeptieren, wie etwa die Funktionen CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD und TOTALYTD.

  • CROSSFILTER verwendet im Modell vorhandene Beziehungen und identifiziert sie nach deren Endpunktspalten.

  • Für CROSSFILTER spielt die Einstellung der Kreuzfilterung keine Rolle. Das bedeutet, ob die Kreuzfilterrichtung der Beziehung im Modell auf „Einfach“ oder „Beide“ festgelegt ist, hat keine Auswirkungen auf die Verwendung der Funktion. CROSSFILTER überschreibt alle vorhandenen Kreuzfiltereinstellungen.

  • Ist eine der als Argument benannten Spalten nicht in der Beziehung enthalten oder gehören die Argumente unterschiedlichen Beziehungen an, wird ein Fehler zurückgegeben.

  • Bei geschachtelten CALCULATE-Ausdrücken, von denen mehr als einer eine CROSSFILTER-Funktion enthält, gilt bei einem Konflikt oder bei Mehrdeutigkeit die innerste CROSSFILTER-Funktion.

  • Die Verwendung dieser Funktion im DirectQuery-Modus wird nicht unterstützt, wenn sie in berechneten Spalten oder RLS-Regeln (Row-Level Security) eingesetzt wird.

Beispiel

Im folgenden Modelldiagramm hat sowohl DimProduct als auch DimDate eine Beziehung in einer Richtung zu FactInternetSales.

CROSSFILTER_Examp_DiagView

Standardmäßig wird die Anzahl der pro Jahr verkauften Produkte nicht angezeigt:

CROSSFILTER_Examp_PivotTable1

Es gibt zwei Möglichkeiten, die pro Jahr verkauften Produkte anzuzeigen:

  • Aktivieren Sie die bidirektionale Kreuzfilterung für die Beziehung. Dadurch wird die Funktionsweise des Filters zwischen den beiden Tabellen für alle Daten geändert.

  • Ändern Sie mit der CROSSFILTER-Funktion nur für dieses Measure die Funktionsweise der Beziehungen.

Unter Verwendung von DAX können Sie mit der CROSSFILTER-Funktion das Verhalten der Kreuzfilterrichtung zwischen zwei Spalten ändern, die durch eine Beziehung definiert werden. Dies ergibt in diesem Fall den folgenden DAX-Ausdruck:

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

Unter Verwendung der CROSSFILTER-Funktion in Ihrem Measureausdruck erhalten Sie die erwarteten Ergebnisse:

CROSSFILTER_Examp_PivotTable2