Múltiplas relações entre tabelas

Na criação de gráficos e relatórios muitas vezes necessitamos de visualizar informação com uma mesma base de análise no entanto os dados base diferem. Este caso acontece frequentemente com as datas.

Vamos tomar como exemplo a tabela de encomendas composta pelos dados abaixo:

Podem surgir diversas questões relacionadas com esta simples tabela no entanto de certeza que a primeira que nos ocorre é:

Qual o número de encomendas (ou quantidade) por data de criação e data de entrega?

A primeira abordagem seria criar dois gráficos um por cada tipo de data:

Como podem verificar a informação é compressível e responde ao que é questionado no entanto não temos uma efectiva comparação. Se olharmos com atenção para o eixo do X um dos gráficos começa no dia 5 Agosto e o outro no dia 6 Agosto, isto leva, a uma distorção dos dados pelo utilizador pois sendo que são apresentadas o mesmo número de colunas nos gráficos a comparação não é feita na mesma ordem.

Assim para resolver esta questão temos de criar uma tabela adicional de datas que nos permita normalizar as duas datas numa só:

Esta tabela servirá para criar uma relação entre as duas colunas de data. Assim temos de criar uma relação tal como exemplificado abaixo:

Podemos verificar que temos duas relações criadas sendo que uma delas está inactiva (simbolizada pela linha a tracejado).

Se agora criarmos um gráfico com a coluna de data do calendário e a contagem do ID temos um gráfico similar ao primeiro:

Agora apenas temos de criar uma medida para ir buscar os dados da data de entrega:

Delivery_date_Measure =
CALCULATE (
    COUNT ( Encomendas[ID] ),
    USERELATIONSHIP ( 'Calendar'[Date], Encomendas[Delivery_Date] )
)

Assim obtemos o gráfico abaixo:

A informação passa então a ser comparável rapidamente e podemos verificar que o número de encomendas que foram entregues no dia 10 é em número igual às encomendas criadas.

A utilização da sintaxe USERELATIONSHIP fez com que a relação inactiva entre a data entrega e o calendário fosse utilizada em detrimento da relação principal.

Esta função especifica a relação a ser utilizada num cálculo específico como aquela que existe entre columnName1 e columnName2.

Esta função permite-nos realizar cálculos sobre duas tabelas relacionadas mas utilizando diferentes perspectivas de análise não nos obrigando a activar / desactivar manualmente as relações existentes ou desmultiplicar alguma das tabelas.

Verifiquem a documentação no link abaixo assim como um video explicativo de como tratar várias datas no Power BI :

https://docs.microsoft.com/pt-pt/dax/userelationship-function-dax

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão /  Alterar )

Google photo

Está a comentar usando a sua conta Google Terminar Sessão /  Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão /  Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão /  Alterar )

Connecting to %s

%d bloggers like this: