CROSSFILTERCROSSFILTER

Especifica a direção de filtragem cruzada a ser usada em um cálculo para uma relação existente entre duas colunas.Specifies the cross-filtering direction to be used in a calculation for a relationship that exists between two columns.

SintaxeSyntax

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

ParâmetrosParameters

TermoTerm DefiniçãoDefinition
columnName1columnName1 O nome de uma coluna existente, usando a sintaxe do DAX padrão e totalmente qualificada, que geralmente representa o lado muitos da relação a ser usada; se os argumentos forem especificados na ordem inversa, a função os trocará antes de usá-los.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. Esse argumento não pode ser uma expressão.This argument cannot be an expression.
columnName2columnName2 O nome de uma coluna existente, usando a sintaxe DAX padrão e totalmente qualificada, que geralmente representa o único lado ou o lado de pesquisa da relação a ser usado; se os argumentos forem especificados na ordem inversa, a função os trocará antes de usá-los.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. Esse argumento não pode ser uma expressão.This argument cannot be an expression.
DireçãoDirection A direção do filtro cruzado a ser usada.The cross-filter direction to be used. Precisa ser uma das seguintes:Must be one of the following:
nenhumnone
Nenhuma filtragem cruzada ocorre nessa relaçãoNo cross-filtering occurs along this relationship

one – realiza a filtragem no lado um ou de pesquisa do lado da relação; filtra o lado muitos.one - Filters on the one or lookup side of the side of the relationship filter the many side.

both - both -
Realiza a filtragem em qualquer lado; filtra o outroFilters on either side filter the other

none – nenhuma filtragem cruzada ocorre nessa relaçãonone - No cross-filtering occurs along this relationship

Valor retornadoReturn value

A função não retorna nenhum valor; a função define apenas a direção de filtragem cruzada para a relação indicada, durante o tempo da consulta.The function returns no value; the function only sets the cross-filtering direction for the indicated relationship, for the duration of the query.

ComentáriosRemarks

  • No caso de uma relação 1:1, não há nenhuma diferença entre uma direção e ambas as direções.In the case of a 1:1 relationship, there is no difference between the one and both direction.

  • CROSSFILTER só pode ser usado em funções que usam um filtro como argumento, por exemplo: Funções CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD e 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 usa as relações existentes no modelo, identificando as relações pelas colunas de ponto final.CROSSFILTER uses existing relationships in the model, identifying relationships by their ending point columns.

  • Em CROSSFILTER, a configuração de filtragem cruzada de uma relação não é importante; ou seja, o fato de a relação estar definida para filtrar um ou ambos os sentidos no modelo não afeta o uso da função.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 substituirá qualquer configuração de filtragem cruzada existente.CROSSFILTER will override any existing cross-filtering setting.

  • Um erro será retornado se uma das colunas nomeadas como argumento não fizer parte de uma relação ou se os argumentos pertencerem a relações diferentes.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.

  • Se as expressões CALCULATE forem aninhadas e mais de uma expressão CALCULATE contiver uma função CROSSFILTER, o CROSSFILTER mais interno será aquele que prevalece em caso de conflito ou ambiguidade.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.

  • Não há suporte para a função ser usada no modo DirectQuery quando usada em regras RLS (segurança em nível de linha) ou colunas calculadas.This function is not supported for use in DirectQuery mode when used in calculated columns or row-level security (RLS) rules.

ExemploExample

No diagrama de modelo a seguir, DimProduct e DimDate têm uma relação de direção única com FactOnlineSales.In the following model diagram, both DimProduct and DimDate have a single direction relationship with FactOnlineSales.

CROSSFILTER_Examp_DiagViewCROSSFILTER_Examp_DiagView

Por padrão, não podemos obter a Contagem de Produtos vendidos por ano:By default, we cannot get the Count of Products sold by year:

CROSSFILTER_Examp_PivotTable1CROSSFILTER_Examp_PivotTable1

Há duas maneiras de obter a contagem de produtos por ano:There are two ways to get the count of products by year:

  • Ative a filtragem cruzada bidirecional na relação.Turn on bi-directional cross-filtering on the relationship. Isso alterará a forma como os filtros funcionam para todos os dados entre essas duas tabelas.This will change how filters work for all data between these two tables.

  • Use a função CROSSFILTER para alterar a forma como as relações funcionam apenas para essa medida.Use the CROSSFILTER function to change how the relationships work for just this measure.

Ao usar o DAX, podemos usar a função CROSSFILTER para alterar a forma como a direção de filtro cruzado se comporta entre duas colunas definidas por uma relação.When using DAX, we can use the CROSSFILTER function to change how the cross-filter direction behaves between two columns defined by a relationship. Nesse caso, a expressão DAX é parecida com esta:In this case, the DAX expression looks like this:

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

Ao usar a função CROSSFILTER em nossa expressão de medida, obteremos os resultados esperados:By using the CROSSFILTER function in our measure expression, we get the expected results:

CROSSFILTER_Examp_PivotTable2CROSSFILTER_Examp_PivotTable2