Blog

Postado em em 18 de maio de 2020

Função USERELATIONSHIP – Relacionamentos com Fórmulas DAX no Power BI

Nessa publicação vamos ver como podemos criar relacionamentos utilizando fórmulas DAX, mais especificamente a função USERELATIONSHIP.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!

Para baixar a planilha utilizada nesta publicação, clique aqui!

O que é a função USERELATIONSHIP?

É uma função que permite ao usuário utilizar mais de uma relação dentro do Power BI, ou seja, o usuário poderá fazer mais de uma relação entre duas tabelas sem a necessidade de criar essas relações manualmente.

 

Quando utilizar essa fórmula DAX?

Vamos utilizar essa função sempre que o usuário precisar fazer análises que utilizam mais de uma relação entre as tabelas, ou seja, se precisar utilizar uma mesma coluna de uma tabela para fazer uma análise que será o caso do exemplo podemos utilizar essa função.

 

Como utilizar a função USERELATIONSHIP?

Primeiramente vamos verificar as duas tabelas que temos para que possamos analisar os dados de cada tabela.

 

Tabela BaseVendas

Tabela BaseVendas

 

Essas são as informações da BaseVendas, onde temos as informações de venda assim como algumas informações importantes sobre cada uma dessas vendas.

 

Tabela Calendário

Tabela Calendário

 

Para o Calendário, temos todas as datas dos anos que estão sendo analisados, ou seja, do primeiro dia de 2016 até o último dia de 2019.

O próximo passo será a criação de uma Medida para calcular quantos pedidos temos no total. Para a criação dessa medida basta selecionar a opção Nova Medida na guia Ferramentas da Tabela ou clicar com o botão direito do mouse em cima de qualquer informação e selecionar essa mesma opção.

 

Opção para adicionar uma Nova Medida

Opção para adicionar uma Nova Medida

 

Feito isso a barra de fórmulas ficará visível para que o usuário possa inserir o nome e a fórmula da medida.

 

Fórmula para o Total de Pedidos

Fórmula para o Total de Pedidos

 

Como neste caso queremos a quantidade total de pedidos basta somar todas as informações da coluna Tamanho Pedido e para isso vamos utilizar a fórmula SUM (que é soma em inglês). Por fim basta pressionar Enter para que a medida seja calculada.

OBS: Quando uma medida é criada ela não aparece dentro da tabela por ser um valor único, desta forma para conseguirmos visualizar será necessário colocar dentro de um gráfico, matriz, cartão, entre outras opções de visualização.

Neste caso para visualizar essa informação vamos inserir uma matriz dentro da guia Relatório.

 

Criando uma Matriz para inserir as informações

Criando uma Matriz para inserir as informações

 

Feito isso a matriz será criada, no entanto ela é criada vazia, ou seja, sem dado algum. Desta forma temos que arrastar a informação desejada para um dos campos da matriz.

Como queremos analisar a quantidade total de pedidos, vamos arrastar essa medida que acabamos de criar para o campo de valores da matriz.

 

Inserindo a medida no campo de valores da matriz

Inserindo a medida no campo de valores da matriz

 

Feito isso a matriz irá mostrar essa informação. A informação mostrada está com um formato pequeno o que torna mais difícil a visualização, para isso basta ir até a parte de formato e escrever tamanho na caixa de busca. Assim o usuário pode aumentar a fonte para um tamanho adequado.

 

Alterando o tamanho da fonte da matriz

Alterando o tamanho da fonte da matriz

 

Feito isso é possível verificar o total de pedidos da empresa de forma mais clara.

 

Resultado dos pedidos na matriz - Função USERELATIONSHIP

Resultado dos pedidos na matriz

 

Vamos supor que agora o usuário queira uma análise para saber quantos pedidos foram feitos por dia. Neste caso teríamos que utilizar a informação de Datas da tabela Calendário.

 

Adicionando as informações de datas do Calendário no campo de linhas

Adicionando as informações de datas do Calendário no campo de linhas

 

É possível observar que ao utilizar essa informação temos um problema na nossa matriz.

 

Resultado após inserir as informações de data - Função USERELATIONSHIP

Resultado após inserir as informações de data

 

Temos todos os anos com o mesmo valor que é o exato valor do total de pedidos, isso acontece porque tentamos juntar informações de duas tabelas distintas, ou seja, elas não têm ligação alguma. Por não terem ligação o Power BI não consegue juntar esses dados para trazer essa informação.

Para resolver este problema vamos até a guia Modelo para que possamos criar uma relação entre essas tabelas relacionando essas informações de data. Para isso basta clicar e arrastar a coluna de Data da Venda da BaseVendas para a coluna de Datas do Calendário.

 

Criando relação entre as tabelas

Criando relação entre as tabelas

 

Desta forma conseguimos criar uma relação entre essas tabelas e agora será possível juntar as informações dessas duas tabelas sem que ocorram problemas.

 

Resultado da matriz após a criação da relação entre as tabelas - Função USERELATIONSHIP

Resultado da matriz após a criação da relação entre as tabelas

 

É possível observar que os valores foram ajustados corretamente, no entanto ainda não temos a visualização desejada que é de dias e não de anos. Para isso basta ir até o campo Linhas, ao lado de datas selecionar a seta para baixo e por fim selecionar a opção de Datas que é de fato a informação que desejamos visualizar.

 

Alterando a visualização da matriz para datas

Alterando a visualização da matriz para datas

 

Feito isso a matriz terá seus valores exibidos por data conforme o que foi proposto inicialmente.

 

Resultado da mudança para datas - Função USERELATIONSHIP

Resultado da mudança para datas

 

Temos agora a matriz com as informações de pedidos por data, no entanto vamos querer também inserir uma coluna de pedidos entregues, pois é uma análise interessante para saber do total de pedidos quantos foram entregues.

Para esse caso, como queremos mais uma análise da quantidade de pedidos entregues teríamos que fazer outra relação entre as tabelas, mas agora de Datas com Data da Entrega.

Essa seria a solução simples, no entanto quando o usuário faz uma segunda relação utilizando as mesmas tabelas o Power BI não deixa essa segunda relação ativa, isso quer dizer que ela não irá funcionar.

 

Criando uma segunda relação entre as mesmas tabelas

Criando uma segunda relação entre as mesmas tabelas

 

Veja que o segundo relacionamento que foi feito fica com uma linha de pontilhados, isso é para indicar que este relacionamento não está ativo. Para resolver isso é que vamos utilizar a função USERELATIONSHIP, para forçarmos o Power BI a utilizar esse segundo relacionamento.

Voltando a guia Relatório vamos criar uma outra medida para calcular o Total de Entregas.

 

Criando outra medida dentro da BaseVendas - Função USERELATIONSHIP

Criando outra medida dentro da BaseVendas

 

OBS: Lembrando de clicar com o botão direito em algum lugar da BaseVendas para garantir que a medida seja criada dentro desta tabela.

 

Fórmula para o Total de Entregas

Fórmula para o Total de Entregas

 

Essa será a fórmula utilizada. Como vamos fazer um cálculo que precisa de um filtro mais complexo teremos que utilizar a função CALCULATE, que inicialmente está fazendo a soma de todos os pedidos (cálculo que fizemos anteriormente), no entanto vamos utilizar um filtro após a soma.

O filtro neste caso é utilizando a função USERELATIONSHIP, que serve para criar esse relacionamento, entre essas duas colunas, para que possamos obter o valor total de entregas.

OBS: Para separar a fórmula em linhas com o objetivo de facilitar o entendimento dela basta segurar SHIFT e pressionar ENTER.

Com essa nova medida criada podemos colocar mais essa informação dentro do campo de Valores da matriz.

 

Inserindo a nova medida no campo de valores da matriz

Inserindo a nova medida no campo de valores da matriz

 

Desta forma será possível observar as duas análises do total de pedidos com o total de entregas feitas.

 

Resultado final com as duas análises - Função USERELATIONSHIP

Resultado final com as duas análises

 

Portanto podemos fazer uma análise mais detalhada com essas duas informações e isso foi possível através da função USERELATIONSHIP. Isso é muito útil, pois muita das vezes queremos fazer mais de 1 análise utilizando uma mesma base de dados, como não é possível fazendo a relação manual podemos utilizar essa função para auxiliar no processo.

Você conhece as modalidades de curso que a Hashtag Treinamentos oferece? Possuímos uma ampla variedade de cursos, tanto online quanto presenciais! Clique para saber mais!


Quer aprender mais sobre Power BI com um minicurso gratuito?


Quer participar do maior evento de Power BI da América Latina de forma 100% Online e Gratuita? Inscreva-se abaixo!