Funções DAX – CROSSFILTER()

Aprenda a utilizar a função SELECTEDVALUE para trabalhar suas medidas DAX no Power BI.

Funções DAX - CROSSFILTER()

Olá, nesse artigo vou abordar um tema que é fundamental para que suas medidas funcionem de maneira correta. Relacionamentos do Power BI é um assunto vasto e poderia ser tema de vários artigos. Entretanto, para organizar nosso pensamento vou abordar nesse artigo apenas direção de filtros em um relacionamento.

Então vamos lá, no Power BI quando conectamos duas tabelas através de uma chave primária são três as possibilidades de direções de filtro. No nosso exemplo utilizarei duas tabelas dVendedor e IdNomes, ambas com registros de ID únicos.

  1. Tabela dVendedor filtra a tabela dIdNomes
    Funções DAX - CROSSFILTER()
  2. Tabela dIdNomes filtra a dVendedor
    Funções DAX - CROSSFILTER()
  3. Tabelas realizam filtros em ambas as direções
    Funções DAX - CROSSFILTER()

Funções DAX - CROSSFILTER()Para alterar o relacionamento entre duas tabelas basta dar um duplo clique no relacionamento ou clicar no botão gerenciar relações na guia Página Inicial

 

Em diversas ocasiões, utilizar direção de filtro correta fará com que chegue aos valores que procura em seus cálculos no DAX e pode melhor performance das suas métricas. Vamos abordar dois exemplos nesse artigo. O primeiro é o caso de um relacionamento em Snowflake, floco de neve, conforme a figura abaixo.

Funções DAX - CROSSFILTER()

Funções DAX - CROSSFILTER()Nesse situação o filtro que desejamos é que Vendedor que esta na tabela IdNomes filtre a tabela fDados. Todavia, para que isso seja possível é fundamental que a tabela IdNomes filtre a tabela dVendedor e, em sequência, a tabela dVendedor filtre a tabela fDados. Porém, conforme a figura acima a direção do filtro de IdNomes, você pode verificar isso pela seta nessa relação, é de dVendedor para IdNomes. Portanto, o filtro não funciona, como podemos verificar na tabela ao lado.

Para resolver esse problema temos duas opções:

  1. Alterar manualmente a direção dessa relação conforme demonstrei no inicio deste artigo
  2. Alterar através das funções CROSSFILTER e CALCULATE no DAX apenas para a medida que vamos abordar

Vamos a segunda opção, pois ela nos da uma melhor performance e pode ser utilizada sem alterar outros cálculos do seu painel.
Para isso vamos criar uma nova medida chamada Receita CROSS. Clique com o botão direito na tabela de medidas no canto direito do Power BI e selecione a opção nova medida. Digite a seguinte fórmula na barra de fórmulas:

Receita CROSS =
CALCULATE(
SUM(fDados[Valor]);
CROSSFILTER(dINomes[ID];dVendedor[ID];Both))

Pronto, agora basta utilizar a medida Receita CROSS no lugar de Receita.

 

Faça o download do material desse artigo/aula e acompanhe essa solução.

Ícone

Funções DAX - CROSSFILTER() 0.70 KB 1126 downloads

Download dos materiais da aula. ...

Abraços e até breve

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Deixe o campo abaixo vazio!