Ler em inglês

Compartilhar 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

Prazo Definição
columnName1 O nome de uma coluna existente, usando a sintaxe de DAX padrão and totalmente qualificado, que geralmente representa o lado muitos da relação a ser usada; if os argumentos forem fornecidos na ordem inversa, a função os trocará antes de usá-los. Esse argumento não pode ser uma expressão.
columnName2 O nome de uma coluna existente, usando a sintaxe DAX padrão and totalmente qualificado, que geralmente representa o lado or lado da relação a ser usada; if os argumentos forem fornecidos na ordem inversa, a função os trocará antes de usá-los. Esse argumento não pode ser uma expressão.
Direction A direção entrefilter a ser usada. Deve ser um dos seguintes:

None - Nenhuma filtragem cruzada ocorre ao longo dessa relação.

Both - Filters de ambos os lados filters outro lado.

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

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

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

Retornar value

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

Observações

  • 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: funções CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTDandTOTALYTD.

  • 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 afetar o uso da função. CROSSFILTER substituirá qualquer configuração de filtragem cruzada existente.

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

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

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

Exemplo

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

CROSSFILTER_Examp_DiagView

Por padrão, não é possível obter o Count de Produtos vendidos por year:

CROSSFILTER_Examp_PivotTable1

Há duas maneiras de obter o count de produtos year:

  • Ative a filtragem cruzada bidirecional na relação. Isso alterará 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 esse measure.

Ao usar DAX, podemos usar a função CROSSFILTER para alterar como a direção entrefilter se comporta entre duas colunas definidas por uma relação. Nesse 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