CROSSFILTER

Gäller för:Beräknad kolumnBeräknad tabellMåttVisuell beräkning

Anger den korsfiltreringsriktning som ska användas i en beräkning för en relation som finns mellan två kolumner.

Syntax

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

Parametrar

Period Definition
columnName1 Namnet på en befintlig kolumn, med standard-DAX-syntax och fullständigt kvalificerad, som vanligtvis representerar den många sidan av relationen som ska användas. om argumenten anges i omvänd ordning växlar funktionen dem innan de används. Det här argumentet kan inte vara ett uttryck.
columnName2 Namnet på en befintlig kolumn, med standard-DAX-syntax och fullständigt kvalificerad, som vanligtvis representerar den ena sidan eller uppslagssidan av relationen som ska användas. om argumenten anges i omvänd ordning växlar funktionen dem innan de används. Det här argumentet kan inte vara ett uttryck.
Riktning Korsfilterriktningen som ska användas. Måste vara något av följande:

Ingen – Ingen korsfiltrering sker längs den här relationen.

Båda – Filter på båda sidor filtrerar den andra sidan.

OneWay – Filter på ena sidan eller uppslagssidan av en relation filtrerar den andra sidan. Det här alternativet kan inte användas med en en-till-en-relation . Använd inte det här alternativet i en många-till-många-relation eftersom det är oklart vilken sida som är uppslagssidan. använd OneWay_LeftFiltersRight eller OneWay_RightFiltersLeft i stället.

OneWay_LeftFiltersRight – Filter på sidan av <columnName1> filtrerar sidan av <columnName2>. Det här alternativet kan inte användas med en en-till-en- eller många-till-en-relation.

OneWay_RightFiltersLeft – Filter på sidan av <columnName2> filtrerar sidan av <columnName1>. Det här alternativet kan inte användas med en en-till-en- eller många-till-en-relation.

Returvärde

Funktionen returnerar inget värde. funktionen anger endast korsfiltreringsriktningen för den angivna relationen under frågans varaktighet.

Kommentarer

  • När det gäller en 1:1-relation finns det ingen skillnad mellan den ena och båda riktningarna.

  • CROSSFILTER kan bara användas i funktioner som tar ett filter som argument, till exempel: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD och TOTALYTD.

  • CROSSFILTER använder befintliga relationer i modellen och identifierar relationer med sina slutpunktskolumner.

  • I CROSSFILTER är inställningen för korsfiltrering av en relation inte viktig. om relationen är inställd på att filtrera en eller båda riktningarna i modellen påverkar inte funktionens användning. CROSSFILTER åsidosätter alla befintliga inställningar för korsfiltrering.

  • Ett fel returneras om någon av kolumnerna med namnet som argument inte ingår i en relation eller om argumenten tillhör olika relationer.

  • Om CALCULATE-uttryck är kapslade och fler än ett CALCULATE-uttryck innehåller en CROSSFILTER-funktion är det innersta CROSSFILTER som gäller vid en konflikt eller tvetydighet.

  • Den här funktionen stöds inte för användning i DirectQuery-läge när den används i beräknade kolumner eller säkerhetsregler på radnivå (RLS).

Exempel

I följande modelldiagram har både DimProduct och DimDate en enda riktningsrelation med FactInternetSales.

CROSSFILTER_Examp_DiagView

Som standard kan vi inte få antalet sålda produkter per år:

CROSSFILTER_Examp_PivotTable1

Det finns två sätt att få antalet produkter per år:

  • Aktivera dubbelriktad korsfiltrering för relationen. Detta ändrar hur filter fungerar för alla data mellan dessa två tabeller.

  • Använd funktionen CROSSFILTER för att ändra hur relationerna fungerar för just det här måttet.

När vi använder DAX kan vi använda funktionen CROSSFILTER för att ändra hur korsfilterriktningen fungerar mellan två kolumner som definieras av en relation. I det här fallet ser DAX-uttrycket ut så här:

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

Genom att använda funktionen CROSSFILTER i vårt måttuttryck får vi de förväntade resultaten:

CROSSFILTER_Examp_PivotTable2