Partilhar via


CROSSFILTER

Aplica-se a:Coluna calculadaTabela calculadaMeasureCálculo visual

Especifica a direção de filtragem cruzada a ser usada em um cálculo para uma relação que existe entre duas colunas.

Sintaxe

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

Parâmetros

Vigência Definição
columnName1 O nome de uma coluna existente, usando sintaxe DAX padrão and totalmente qualificado, que geralmente representa os muitos lados da relação a ser usada; if os argumentos forem dados em ordem inversa, a função irá trocá-los antes de usá-los. Este argumento não pode ser uma expressão.
columnName2 O nome de uma coluna existente, usando sintaxe DAX padrão and totalmente qualificada, que geralmente representa o lado or pesquisa da relação a ser usada; if os argumentos forem dados em ordem inversa, a função irá trocá-los antes de usá-los. Este argumento não pode ser uma expressão.
Direction A direção defilter cruzada a ser usada. Deve ser uma das seguintes opções:

None - Não ocorre filtragem cruzada ao longo desta relação.

Both - Filters de ambos os lados filters do outro lado.

OneWay - Filters de um lado or do lado de uma relação filter do outro lado. Esta opção não pode ser usada com uma relação um-para-um . Não use essa opção em um relacionamento muitos-para-muitos porque não está claro qual é o lado da pesquisa; em vez disso, use OneWay_LeftFiltersRight or OneWay_RightFiltersLeft.

OneWay_LeftFiltersRight - Filters do lado de columnName1filter do lado de columnName2. Esta opção não pode ser usada com uma relação um-para-um or muitos-para-um.

OneWay_RightFiltersLeft - Filters do lado de columnName2filter do lado de columnName1. Esta opção não pode ser usada com uma relação um-para-um or muitos-para-um.

Regresso value

A função não retorna nenhum value; A função apenas define a direção de filtragem cruzada para a relação indicada, para o duration da consulta.

Comentários

  • No caso de uma relação 1:1, não há diferença entre uma and ambas as direções.

  • CROSSFILTER só pode ser usado em funções que tomam um filter como argumento, por exemplo: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTDandTOTALYTD funções.

  • CROSSFILTER usa relações existentes no modelo, identificando relações por suas colunas de ponto final.

  • Em CROSSFILTER, a configuração de filtragem cruzada de uma relação é not importante; ou seja, se a relação está definida como filter uma, or ambas as direções no modelo not afetam o uso da função. CROSSFILTER substituirá qualquer configuração de filtragem cruzada existente.

  • Uma error é retornada if qualquer uma das colunas nomeadas como argumento not faz parte de uma relação or os argumentos pertencem a relações diferentes.

  • If CALCULATE as expressões são aninhadas, and mais de uma expressão CALCULATEcontains uma função CROSSFILTER, então a CROSSFILTER mais interna é a que prevalece em caso de conflito or ambiguidade.

  • Esta função not é suportada para uso no modo DirectQuery quando usada em colunas calculadas or regras de segurança em nível de linha (RLS).

Exemplo

No diagrama de modelo a seguir, DimProduct and DimDate têm uma relação de direção única com FactInternetSales.

CROSSFILTER_Examp_DiagView

Por padrão, não podemos obter o Count de Produtos vendidos por year:

CROSSFILTER_Examp_PivotTable1

Existem duas maneiras de obter o count de produtos por year:

  • Ative a filtragem cruzada bidirecional na relação. Isso mudará a forma como filters funcionam para all dados entre essas duas tabelas.

  • Use a função CROSSFILTER para alterar como as relações funcionam apenas para este measure.

Ao usar DAX, podemos usar a função CROSSFILTER para alterar como a direção dofilter cruzado se comporta entre duas colunas definidas por uma relação. Neste caso, a expressão DAX tem esta aparência:

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

Usando a função CROSSFILTER em nossa expressão measure, obtemos os resultados esperados:

CROSSFILTER_Examp_PivotTable2