CROSSFILTER

Van toepassing op: Berekende kolomBerekende tabelMetingVisuele berekening

Hiermee geeft u de kruislingse filterrichting op die moet worden gebruikt in een berekening voor een relatie tussen twee kolommen.

Syntaxis

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

Parameters

Term Definitie
columnName1 De naam van een bestaande kolom, met behulp van de standaard DAX-syntaxis en volledig gekwalificeerde, die meestal de vele kant van de relatie vertegenwoordigt die moet worden gebruikt; als de argumenten in omgekeerde volgorde worden gegeven, wisselt de functie deze om voordat deze worden gebruikt. Dit argument kan geen expressie zijn.
columnName2 De naam van een bestaande kolom, met behulp van de standaard DAX-syntaxis en volledig gekwalificeerde, die meestal de ene zijde of opzoekzijde van de relatie vertegenwoordigt die moet worden gebruikt; als de argumenten in omgekeerde volgorde worden gegeven, wisselt de functie deze om voordat deze worden gebruikt. Dit argument kan geen expressie zijn.
Richting De kruisfilterrichting die moet worden gebruikt. Dit moet een van de volgende zijn:

Geen : er vindt geen kruislings filteren plaats in deze relatie.

Beide - Filters aan beide zijden filters de andere kant.

OneWay : filters aan de ene kant of de opzoekzijde van een relatiefilter aan de andere kant. Deze optie kan niet worden gebruikt met een een-op-een-relatie. Gebruik deze optie niet voor een veel-op-veel-relatie omdat het onduidelijk is welke kant de opzoekzijde is; gebruik in plaats daarvan OneWay_LeftFiltersRight of OneWay_RightFiltersLeft.

OneWay_LeftFiltersRight: filters aan de zijkant van <columnName1> filteren op de zijkant van <columnName2>. Deze optie kan niet worden gebruikt met een een-op-een- of veel-op-een-relatie.

OneWay_RightFiltersLeft: filters aan de zijkant van <columnName2> filteren op de zijkant van <columnName1>. Deze optie kan niet worden gebruikt met een een-op-een- of veel-op-een-relatie.

Retourwaarde

De functie retourneert geen waarde; met de functie wordt alleen de richting voor kruislings filteren voor de aangegeven relatie ingesteld voor de duur van de query.

Opmerkingen

  • In het geval van een 1:1-relatie is er geen verschil tussen de ene en beide richting.

  • CROSSFILTER kan alleen worden gebruikt in functies die een filter als argument gebruiken, bijvoorbeeld: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD en TOTALYTD.

  • CROSSFILTER maakt gebruik van bestaande relaties in het model, waarbij relaties worden geïdentificeerd door hun eindpuntkolommen.

  • In CROSSFILTER is de instelling voor kruislings filteren van een relatie niet belangrijk; dat wil weten of de relatie is ingesteld om één te filteren, of beide richtingen in het model niet van invloed zijn op het gebruik van de functie. CROSSFILTER overschrijft alle bestaande instelling voor kruislings filteren.

  • Er wordt een fout geretourneerd als een van de kolommen met de naam van een argument geen deel uitmaakt van een relatie of als de argumenten deel uitmaken van verschillende relaties.

  • Als CALCULATE-expressies zijn genest en meer dan één CALCULATE-expressie een functie CROSSFILTER bevat, is de binnenste CROSSFILTER het type dat prevaleert in het geval van een conflict of dubbelzinnigheid.

  • Deze functie wordt niet ondersteund voor gebruik in de DirectQuery-modus wanneer deze wordt gebruikt in regels voor beveiliging op rijniveau (berekende kolommen of beveiliging op rijniveau).

Opmerking

In het volgende modeldiagram hebben zowel DimProduct als DimDate één richtingsrelatie met FactInternetSales.

CROSSFILTER_Examp_DiagView

Standaard kunnen we het aantal producten dat per jaar wordt verkocht niet ophalen:

CROSSFILTER_Examp_PivotTable1

Er zijn twee manieren om het aantal producten per jaar op te halen:

  • Schakel kruislings filteren in twee richtingen in voor de relatie. Hierdoor wordt de werking van filters voor alle gegevens tussen deze twee tabellen gewijzigd.

  • Gebruik de functie CROSSFILTER om te wijzigen hoe de relaties werken voor alleen deze meting.

Wanneer u DAX gebruikt, kunnen we de functie CROSSFILTER gebruiken om te wijzigen hoe de kruisfilterrichting zich gedraagt tussen twee kolommen die zijn gedefinieerd door een relatie. In dit geval ziet de DAX-expressie er als volgt uit:

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

Met behulp van de functie CROSSFILTER in onze metingexpressie krijgen we de verwachte resultaten:

CROSSFILTER_Examp_PivotTable2