Como já disse em outros posts, nosso trabalho como analista é gerar insights e resolver problemas da vida real que gerem valor para nossos clientes.
Esse foi um pedido de um cliente de algo que eu ainda não tinha feito e nunca tinha visto ser resolvido, mas dei meu jeito, rs.
O Problema
Olhe primeiro as imagens, depois explico…
O cliente que transformar o primeiro gráfico no segundo, usando exatamente a mesma base de dados.


Agora que você já deu uma olhadas nos gráficos, explico o problema… O cliente deseja que os gráficos se sobreponham pra ele conseguir identificar desvios, diferenças, ou seja, novembro do ano 2019-2020 tem que comparar com novembro de 2021-2022, porém 2019-2020 tem dois novembros e eles não podem se agrupar!
Analisando e Resolvendo
Com desse modelo de dados temos que ser capazes de realizar toda e qualquer operação de inteligência de tempo, então precisamos de dimensões de datas adequadas. Explico melhor sobre isso nesse post aqui: https://powerbixpert.com/2021/02/10/power-bi-dax-time-intelligence/.
O que eu fiz foi o seguinte, entendi e encontrei o padrão de comportamento das datas e criei uma nova coluna de data na fato que segue esse novo padrão e depois criei uma nova dimensão de data que relaciono com a fato e crio toda inteligência de tempo necessária.
Qual foi a lógica que usei pra criar a nova coluna de data na fato? Esse aqui que é o pulo do gato.
Eu pensei o seguinte, eu preciso dar um ponto de partida em comum pra todas as linhas, certo? Ou seja, o preciso que todas as linhas comecem no mesmo lugar e respeitem suas curvas, então pensei, vou pegar todas as datas do primeiro ano e vou colocar em 1900. Então se o primeiro ano é 2017, preciso subtrair 117, se o primeiro ano for 2018, subtrair 118, e assim sucessivamente.
Então pra cada período identificar esse valor a ser reduzido do ano de acordo com o primeiro ano do período, dessa forma vou ter sempre os anos em ordem e garanto que o primeiro ano seja 1900.
Com a lógica bem definida na cabeça, agora é só criar a nova coluna calculada na fato. Poderia ter sido feito em M ou DAX, ou até mesmo no SQL na fonte. Eu fiz em DAX, assim:
Depois foi só criar uma nova dimensão de data, menor e reduzida, porque sei que nunca vou ter mais que 3 anos nessa dimensão. Então criei no M uma dimensão que vai de 1900 a 1902. O modelo final ficou assim:
O resultado final ficou assim:
Com esse resultado você consegue garantir funcionamento de todas dimensões sobre todos os dois gráficos, também garante funcionamento das funções de inteligência de tempo. Sensacional!
Referências
Sinceramente não achei nada na internet resolvendo um problema como esse, o mais próximo que achei foi isso aqui:
https://youtu.be/M14HX0c3jvo – Chart friendly date table in Power BI
Se você tiver algum dica ou sugestão de como resolver melhor, ou de outra forma, esse problema, deixa aí nos comentários!