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.
- Tabela dVendedor filtra a tabela dIdNomes
- Tabela dIdNomes filtra a dVendedor
- Tabelas realizam filtros em ambas as direções
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.
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:
- Alterar manualmente a direção dessa relação conforme demonstrei no inicio deste artigo
- 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.
Funções DAX - CROSSFILTER() 0.70 KB 1126 downloads
Download dos materiais da aula. ...Abraços e até breve