Fala, pessoal!
Tudo bem com vocês?

No post de hoje, irei explicar um cenário que ocorreu comigo tempos atrás.

Um cliente queria plotar em um mesmo eixo do gráfico a data de abertura e fechamento de um chamado. Acontece que existiam chamados que eram abertos em uma dia e fechados em outro. Logo, como fazer isso, se existiam duas colunas de datas distintas?

A solução surgiu quando descobri o poder da função USERELATIONSHIP.

Basicamente, essa função especifica qual relacionamento considerar conforme especificado nas ColumnName1 e columnName2.

Vamos aos exemplos.

Para acessar o arquivo utilizado como exemplo, clique no link abaixo.

Download Arquivo

Importe o arquivo para o Power BI.

Lembrando que a fonte de dados é o Excel.

Ao analisarmos o conteúdo da base CRM, podemos notar duas colunas: Data Abertura e Data Fechamento.

Como estamos falando de DATAS, devemos considerar a existência da tabela DCalendario.

Conforme eu já expliquei em um post anterior, vou cria-lá utilizando a função CalendarAuto.

Como não estamos lidando com as datas no nível de data / hora, vamos tipificar as colunas apenas como Data no formato dd/mm/yyyy, nas três colunas conforme abaixo.

Agora, vamos analisar os relacionamentos.

Precisamos relacionar as duas colunas de data (Data Abertura e Data Fechamento com a coluna date.

Quando vinculamos as duas tabelas, notem os relacionamentos.

A coluna Data Abertura está com o relacionamento ativo (linha) e a Data Fechamento está inativo (linha tracejada).

Eu já havia escrito um post explicando como funcionam os relacionamentos. Caso queira dar uma lida para contextualizar melhor, Clique no link abaixo.

Acesso ao post de relacionamentos

Porque isso ocorre?

No Power BI não podemos ter dois relacionamentos ativos entre as mesmas tabelas, pois como ela vai saber de qual estamos falando quando usamos em nossos cálculos?

Para contornar essa situação, utilizamos a função USERELATIONSHIP. Nela, especificamos quais colunas considerar no relacionamento.

Vamos criar duas medidas para contextualizar. Uma utilizando a data de Abertura e a outra a data de Fechamento.

Como cada linha representam um chamado aberto, basta contar quantas linhas existentes na tabela.

Para os relacionamentos ativos não precisamos usar a função USERELATIONSHIP.

Chamados Abertos = COUNTROWS(CRM)

Agora, vamos criar a medida de chamados Fechados.

Como essa coluna está com relacionamento inativo, nela precisaremos usar a função USERELATIONSHIP.

Veja como:

Chamados Fechados = CALCULATE(COUNTROWS(CRM);USERELATIONSHIP(CRM[Data Fechamento];DCalendario[Date]))

Porque aqui eu usei a função Calculate?

Porque a função USERELATIONSHIP só pode ser utilizada com funções que precisam de filtro, uma vez que ela filtra qual relacionamento será o ativo.

Vamos ver como ficou?

Notamos que todos os chamados abertos, foram fechados. Porém, conseguimos ver, no mesmo eixo de data, quando foram abertos e quando foram fechados.

Na  tabela, conseguimos ver que em 2009 foram abertos apenas dois chamados, nos dias 6 e 27/10, respectivamente.

Gostaram da dica? Tem alguma que queira a explicação?

Deixe seu comentário.

Abs.

Meirieli Ribeiro

Power BI – Função USERELATIONSHIP (Habilitando Relacionamentos)
Classificado como:                        

Deixe uma resposta

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