Dela via


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

Term Definition
columnName1 Namnet på en befintlig kolumn, med standardsyntaxen DAX 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 standardsyntaxen DAX 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.
Direction Korsfilterriktningen som ska användas. Måste vara något av följande:

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

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

OneWay – Filter på ena sidan eller uppslagssidan för 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 filtrera 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 filtrera 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.

Anmärkningar

  • 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 använder 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 den innersta CROSSFILTER den som råder 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 du använder DAXkan 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 uttrycket DAX 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