CROSSFILTERCROSSFILTER

Anger den riktning för korsfiltrering som ska användas i en beräkning för en relation som finns mellan två kolumner.Specifies the cross-filtering direction to be used in a calculation for a relationship that exists between two columns.

SyntaxSyntax

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

ParametrarParameters

TermTerm DefinitionDefinition
columnName1columnName1 Namnet på en befintlig kolumn, med DAX-standardsyntax och fullständigt kvalificerat namn, som vanligtvis representerar ”många”-sidan av relationen som ska användas. Om argumenten anges i omvänd ordning växlar funktionen dem innan de används.The name of an existing column, using standard DAX syntax and fully qualified, that usually represents the many side of the relationship to be used; if the arguments are given in reverse order the function will swap them before using them. Det här argumentet kan inte vara ett uttryck.This argument cannot be an expression.
columnName2columnName2 Namnet på en befintlig kolumn med DAX-standardsyntax och fullständigt kvalificerat namn, som vanligtvis representerar ”en”-sidan eller ”uppslag”-sidan av relationen som ska användas. Om argumenten anges i omvänd ordning växlar funktionen dem innan de används.The name of an existing column, using standard DAX syntax and fully qualified, that usually represents the one side or lookup side of the relationship to be used; if the arguments are given in reverse order the function will swap them before using them. Det här argumentet kan inte vara ett uttryck.This argument cannot be an expression.
RiktningDirection Den riktning för korsfiltrering som ska användas.The cross-filter direction to be used. Måste vara något av följande:Must be one of the following:
ingennone
Ingen korsfiltrering sker längs den här relationenNo cross-filtering occurs along this relationship

one – Filtrerar på en-sidan eller uppslagssidan för relationsfiltret för många-sidan.one - Filters on the one or lookup side of the side of the relationship filter the many side.

both - both -
Filtrerar på endera sidan av den andra filtreringenFilters on either side filter the other

none – Ingen korsfiltrering sker längs den här relationennone - No cross-filtering occurs along this relationship

ReturvärdeReturn value

Funktionen returnerar inget värde. Funktionen anger endast korsfiltreringens riktning för den angivna relationen medan frågan pågår.The function returns no value; the function only sets the cross-filtering direction for the indicated relationship, for the duration of the query.

KommentarerRemarks

  • Om det finns en 1:1-relation finns det ingen skillnad mellan en-riktningen eller båda-riktningen.In the case of a 1:1 relationship, there is no difference between the one and both direction.

  • CROSSFILTER kan bara användas i funktioner som tar ett filter som argument, till exempel: Funktionerna CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD och TOTALYTD.CROSSFILTER can only be used in functions that take a filter as an argument, for example: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD and TOTALYTD functions.

  • CROSSFILTER använder befintliga relationer i modellen och identifierar relationer utifrån deras slutpunktskolumner.CROSSFILTER uses existing relationships in the model, identifying relationships by their ending point columns.

  • I CROSSFILTER är inställningen för korsfiltrering av en relation inte viktig. Huruvida relationen anges till att filtrera en eller båda riktningarna i modellen påverkar alltså inte användningen av funktionen.In CROSSFILTER, the cross-filtering setting of a relationship is not important; that is, whether the relationship is set to filter one, or both directions in the model does not affect the usage of the function. CROSSFILTER åsidosätter alla befintliga inställningar för korsfiltrering.CROSSFILTER will override any existing cross-filtering setting.

  • Ett fel returneras om någon av de kolumner som namngetts som ett argument inte är en del av en relation eller om argumenten tillhör andra relationer.An error is returned if any of the columns named as an argument is not part of a relationship or the arguments belong to different relationships.

  • Om CALCULATE-uttryck är kapslade och fler än ett CALCULATE-uttryck innehåller en CROSSFILTER-funktion är det den innersta CROSSFILTER-funktionen som gäller vid en konflikt eller tvetydighet.If CALCULATE expressions are nested, and more than one CALCULATE expression contains a CROSSFILTER function, then the innermost CROSSFILTER is the one that prevails in case of a conflict or ambiguity.

  • Den här funktionen kan inte användas i DirectQuery-läge när den används i beräknade kolumner eller regler för säkerhet på radnivå (RLS).This function is not supported for use in DirectQuery mode when used in calculated columns or row-level security (RLS) rules.

ExempelExample

I följande modelldiagram har både DimProduct och DimDate en relation med en enda riktning med FactOnlineSales.In the following model diagram, both DimProduct and DimDate have a single direction relationship with FactOnlineSales.

CROSSFILTER_Examp_DiagViewCROSSFILTER_Examp_DiagView

Som standard kan vi inte hämta antalet sålda produkter per år:By default, we cannot get the Count of Products sold by year:

CROSSFILTER_Examp_PivotTable1CROSSFILTER_Examp_PivotTable1

Det finns två sätt att hämta antalet produkter per år:There are two ways to get the count of products by year:

  • Aktivera dubbelriktad korsfiltrering för relationen.Turn on bi-directional cross-filtering on the relationship. Detta ändrar hur filter fungerar för alla data mellan de två tabellerna.This will change how filters work for all data between these two tables.

  • Använd funktionen CROSSFILTER för att ändra hur relationerna fungerar för just det här måttet.Use the CROSSFILTER function to change how the relationships work for just this measure.

Vid användning av DAX kan vi använda funktionen CROSSFILTER för att ändra hur riktningen för korsfiltrering beter sig mellan två kolumner som definieras av en relation.When using DAX, we can use the CROSSFILTER function to change how the cross-filter direction behaves between two columns defined by a relationship. I det här fallet ser DAX-uttrycket ut så här:In this case, the DAX expression looks like this:

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:By using the CROSSFILTER function in our measure expression, we get the expected results:

CROSSFILTER_Examp_PivotTable2CROSSFILTER_Examp_PivotTable2