Compartilhar via


CROSSFILTER

aplica-se a:coluna calculadatabela calculadamedidacá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 DAX padrão e totalmente qualificado, que geralmente representa o lado muitos da relação a ser usada; se 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 de DAX padrão e totalmente qualificada, que geralmente representa o lado ou o lado de pesquisa da relação a ser usada; se 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 do filtro cruzado a ser usada. Deve ser um dos seguintes:

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

Both - Filtros de ambos os lados filtram o outro lado.

OneWay - Filtros de um lado ou do lado de pesquisa de uma relação filtram 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 ou OneWay_RightFiltersLeft.

OneWay_LeftFiltersRight - Filtros na lateral do columnName1 filtrar o lado do columnName2. Essa opção não pode ser usada com uma relação um-para-um ou muitos-para-um.

OneWay_RightFiltersLeft - Filtros na lateral do columnName2 filtrar o lado do columnName1. Essa opção não pode ser usada com uma relação um-para-um ou muitos-para-um.

Valor de retorno

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 a consulta.

Observações

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

  • CROSSFILTER só pode ser usado em funções que utilizam um filtro como argumento, por exemplo: funções CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD e TOTALYTD.

  • 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 não é importante; ou seja, se a relação está definida para filtrar uma ou ambas as direções no modelo não afetam o uso da função. CROSSFILTER substituirá qualquer configuração de filtragem cruzada existente.

  • Um erro será retornado se qualquer uma das colunas nomeadas como um argumento não fizer parte de uma relação ou os argumentos pertencerem a relações diferentes.

  • Se CALCULATE expressões estiverem aninhadas e mais de uma expressão CALCULATE contiver uma função CROSSFILTER, a CROSSFILTER mais interna será aquela que prevalece em caso de conflito ou ambiguidade.

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

Exemplo

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

CROSSFILTER_Examp_DiagView

Por padrão, não é possível obter a Contagem de Produtos vendidos por ano:

CROSSFILTER_Examp_PivotTable1

Há duas maneiras de obter a contagem de produtos por ano:

  • Ative a filtragem cruzada bidirecional na relação. Isso alterará a forma como os filtros funcionam para todos os dados entre essas duas tabelas.

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

Ao usar DAX, podemos usar a função CROSSFILTER para alterar como a direção de filtro cruzado 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 de medida, obtemos os resultados esperados:

CROSSFILTER_Examp_PivotTable2