Como utilizar datas diferentes nas análises do Power BI

Sumário

O Power BI é uma poderosa ferramenta de análise e visualização de dados, que oferece inúmeras possibilidades para entender informações relevantes em diferentes contextos. No entanto, nem sempre os dados se limitam a uma única data, e é aí que podemos nos deparar com desafios interessantes.

Neste artigo, foi estudado um caso em que uma tabela chamada consorcio, apresenta múltiplas colunas de datas por exemplo, data de adesão, a data de contemplação, e como utilizá-las para obter insights relevantes uma solução para calcular a quantidade de contemplados por ano, independentemente da data de adesão.

Descrição do problema

Dada a tabela de consórcio contendo informações essenciais, como CPF do cliente, indicador de cota contemplada, número da cota, valor contratado, data de adesão e data de contemplação. Além disso, possuímos uma tabela calendário, com informações sobre os anos presentes nos dados do consórcio.

O desafio é calcular a quantidade de contemplados por ano, levando em conta a data de contemplação, mas independentemente da data de adesão. Temos também o relacionamento de um para muitos (1:*) entre a tabela calendário que se relaciona com a data adesão da tabela de consórcio.

Solução inicial

Para abordar o problema, inicialmente criou-se algumas medidas no Power BI. Primeiramente, uma medida para calcular o valor contratado de acordo com alguns filtros específicos, como a coluna “versão_cota” igual a “ATIVA” e a “situação_cota” igual a “NORMAL”.

Em seguida, outra medida foi criada para calcular a quantidade de participantes de acordo com o ano de adesão, utilizando a função “DISTINCTCOUNT” em relação ao CPF dos clientes.

Para calcular a quantidade de contemplados, criamos uma medida denominada “Contemplados”. Utilizamos a função “DISTINCTCOUNT” em relação ao CPF dos clientes, filtrando os resultados por algumas condições, como “situação_cota”,”versão_cota” e “cota_contemplada” igual a “SIM”.

Contemplados =

CALCULATE(

DISTINCTCOUNT(Consorcio[CPF_cliente]),

FILTER(

Consorcio),

Consorcio[indicador_cota_contemplada] = “SIM”

** outras colunas utilizadas como filtro** ) )

Desafio encontrado

No entanto, ao aplicar essa medida de contemplados no gráfico, nota-se que ela retorna apenas a quantidade de contemplados no mesmo ano de adesão, o que não era o resultado desejado.

Por exemplo, ao filtrarmos o ano de 2023, a medida exibia apenas a quantidade de contemplados cujo ano de adesão também era 2023.

Solução

Para superar esse obstáculo, e observado que a solução envolvia a utilização de múltiplas datas na tabela “Consórcio”. Ao invés de utilizar apenas a data de adesão para o cálculo dos contemplados, seria necessário um relacionamento também com a coluna “data de contemplação” da tabela Consórcio com a tabela Calendário.

No entanto, mantendo esse relacionamento inativo, já que o Power BI permite apenas um relacionamento ativo entre duas tabelas por vez para evitar ambiguidades e garantir que as análises sejam consistentes e previsíveis.

Essa limitação é importante para que a ferramenta saiba qual relacionamento deve ser utilizado em cada contexto específico.

power bi tabelas
Exemplo de uso de dois relacionamentos entre tabelas.

Em seguida, uma medida chamada “Contemplados por Ano” foi criada utilizando a medida anterior de “Contemplados” e a função USERELATIONSHIP para especificar que o relacionamento ativo deveria ser feito pela coluna “data de contemplação”. Dessa forma, garante-se que a medida de contemplados mostre os resultados corretamente, considerando o ano de contemplação independentemente da data de adesão.

Ao usar USERELATIONSHIP(Calendario[dt_movimento], Consorcio[data_contemplação, o Power BI a filtrará a tabela Consorcio usando a relação estabelecida entre a coluna “dt_movimento” da tabela Calendario e a coluna “data_contemplação” da tabela Consorcio.

Isso significa que, apesar de haver uma outra relação possível entre a tabela Calendario e a tabela Consorcio através da coluna “data_adesao”, o Power BI seguirá o relacionamento definido com a função USERELATIONSHIP e usará a data de contemplação para realizar o filtro.No Power BI, você pode ter várias relações entre tabelas, mas é importante especificar qual relacionamento usar em cada contexto para evitar conflitos.

Se for necessário filtrar com base em outra relação, como a data de adesão, seria necessário alterar a medida e ajustar o relacionamento para usar a coluna “data_adesao”. Nesse caso, você pode optar por utilizar a função USERELATIONSHIP novamente ou ajustar o relacionamento ativo no modelo de dados para refletir a nova relação desejada.

Em resumo, a medida “Contemplados por Ano” não dá erro porque está explicitamente definindo qual relacionamento usar com a função USERELATIONSHIP. O Power BI utilizará a relação especificada para filtrar os dados e calcular a quantidade de contemplados por ano de contemplação.

Nota sobre a solução

Usar o CPF para contar a quantidade de contemplados pode não ser a melhor abordagem, uma vez que uma mesma pessoa pode possuir mais de um consórcio ativo e, portanto, pode ser contada múltiplas vezes.

Para evitar essa duplicação e garantir uma contagem mais precisa, é recomendado utilizar uma chave única para identificar cada consórcio individualmente, em vez de contar pelo CPF.

Nesse caso, a coluna “num _contrato” pode ser uma opção melhor para realizar a contagem de contemplados. Pode-se alterar a medida de contemplados de outra forma.

Medida com USERELATIONSHIP (Contemplados por Ano):

DAX
Contemplados por Ano =
VAR _dataMax = MAX(Calendario[Ano])
RETURN
CALCULATE(
DISTINCTCOUNT(Consorcio[num_cotrato]),
USERELATIONSHIP(Calendario[dt_movimento], Consorcio[data_contemplação]), FILTER( ALL(Consorcio),
Consorcio[situação_cota] = “NORMAL” &&
Consorcio[versao_cota] = “Ativa” &&
Consorcio[cota_contemplada] = “SIM” ) )

Explicação
  • Esta medida, utiliza a função USERELATIONSHIP para ativar o relacionamento entre a tabela Calendario e a tabela Consorcio através das colunas dt_movimento (da tabela Calendario) e data_contemplação (da tabela Consorcio).
  • A medida usa o mesmo filtro que a medida anterior para calcular a quantidade de consórcios distintos contemplados em um determinado ano de contemplação.
Sugestão de medida (Contemplados por Ano)

DAX

Contemplados por Ano =

VAR _dataMax = MAX(Calendario[Ano])

RETURN

CALCULATE(

DISTINCTCOUNT(Consorcio[num_cota]),

FILTER( ALL(Consorcio),

Consorcio[situação_cota] = “NORMAL” && Consorcio[versao_cota] = “Ativa” && Consorcio[cota_contemplada] = “SIM” && YEAR(Consorcio[data_contemplação]) = _dataMax ) )

  • Essa medida conta a quantidade de números de cota distintos que foram contemplados em um determinado ano de contemplação.
  • Ela considera a data de contemplação como o filtro principal para determinar a contagem de contemplados.
  • Se uma pessoa tiver múltiplos consórcios contemplados no mesmo ano de contemplação, cada número de cota será contado separadamente.

Portanto, a medida “Contemplados por Ano” com USERELATIONSHIP também conta a quantidade de consórcios distintos contemplados em um determinado ano de contemplação. A diferença é a forma como o relacionamento é estabelecido.

Ambas as medidas são corretas e produzirão resultados similares. A escolha entre elas dependerá da sua preferência pessoal e da sua familiaridade com cada abordagem. Se já está acostumado a usar a função USERELATIONSHIP, não há problema em continuar usando-a para essa análise.

Leia mais:
Dashboard: como construir em 5 passos
Dashboard empresarial: como pode ajudar o seu negócio

Conclusão

A experiência de resolver esse problema no Power BI nos mostrou a importância de compreender como trabalhar com múltiplas datas em análises. Ao estabelecer relacionamentos inteligentes e utilizar funções apropriadas, consegue-se obter resultados precisos e relevantes para as análises.

Compreender as nuances do Power BI e aproveitar sua flexibilidade pode abrir novas possibilidades para a exploração de dados e a obtenção de insights valiosos.

Leia também:
O que faz uma consultoria em Business Intelligence (BI)?
Business Analytics vs Business Intelligence: qual a diferença?

Autor(a)
Cíntia Brandão
Cíntia é analista de BI na beAnalytic, formada em Matemática Industrial pela UFC e cursando MBA em Business Intelligence. Possui experiência com ferramentas como PowerBI, Google Data Studio e R, utilizando essas habilidades para transformar dados em insights valiosos. Além de sua paixão por análise, gosta de ambientes tranquilos, jogos online e tem um grande amor por animais.
Conteúdos relacionados

São Paulo, SP
Tv. Dona Paula, 13 – Higienópolis

Natal, RN
Av. Cap. Mor Gouveia, 3000 – Sala A413 – Lagoa Nova

Fortaleza, CE
Av. Dom Manuel, 1020 – Centro

© 2024 beAnalytic – Todos os direitos reservados | [email protected] | (11) 5198-0223

Fale Com Um Especialista

*Este contato é comercial. Para outras demandas, entrar em contato através do e-mail [email protected].

Machine
Learning

Com a consultoria em Machine Learning da beAnalytic, a nossa equipe fica responsável por:

Mapeamento, coleta e tratamento dos dados necessários para o projeto;

Definição do algoritmo apropriado com base nos objetivos do projeto, e início do treinamento do algoritmo;

Avaliação do desempenho do modelo de ML, otimização e implementação no ambiente de produção.

A