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 kanten 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. |
Direction |
De kruisfilterrichting die moet worden gebruikt. Dit moet een van de volgende zijn:None : er vindt geen kruislings filteren plaats in deze relatie.Both : filters aan beide zijden filteren 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 functies.
CROSSFILTER bestaande relaties in het model gebruikt, waarbij relaties worden geïdentificeerd door hun eindpuntkolommen.
In CROSSFILTERis 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 CROSSFILTER functie bevat, is de binnenste CROSSFILTER het CROSSFILTER de expressie die heerst 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).
Voorbeeld
In het volgende modeldiagram hebben zowel DimProduct als DimDate één richtingsrelatie met FactInternetSales.
Standaard kunnen we het aantal producten dat per jaar wordt verkocht niet ophalen:
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 DAXgebruikt, kunnen we de functie CROSSFILTER gebruiken om te wijzigen hoe de richting van kruislings filteren 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: