Power BI - Colocando sua dCalendario em "Ordem"




Power BI - Colocando sua dCalendario em "Ordem"


Olá Princesas e Princesos.

Hoje iremos brincar, novamente, com dCalendario.

É um assunto legal, uma estrutura praticamente obrigatória, então vamos explora-la ainda mais.

Se você já entende o conceito de ordenar as linhas da coluna da dCalendário de forma a ficar sempre tudo na ORDEM crescente ou DECRESCENTE de Datas, Meses, Anos, Semanas, e etc esse artigo pode ser um tanto quanto boring pra você, então aconselho a procurar outro meio de vida.

MAS ANTES... adivinhem?

Não tá inscrito no canal se inscreve lá www.youtube.com/rafaelmendonca

Exemplo 1 - Ordenando coluna de Nome do Mês.


Uma das colunas que costumamos criar na dCalendario é a Mês Nome (janeiro, fevereiro, março...)

Por padrão a ordenação de uma coluna sempre é ela mesmo, ou seja numa coluna com dados de texto a ordenação vai ser alfabética, e seus meses serão ordenados da seguinte forma:

abril, agosto, dezembro, fevereiro, janeiro, julho, junho, maio, março, novembro, outubro, setembro.

Como vocês podem ver abaixo:


SOLUÇÃO!


A solução para essa situação é utilizar a Classificação por Outra Coluna,
que está disponível selecionando a sua coluna "Nome do Mês" e indo na guia Modelagem>Classificar Por Coluna.

Ele nos dá a opção de classificar por outras colunas que estejam na minha mesma tabela. E nessas horas o dedo coça pra escolher classificar por Data, mas isso não vai funcionar.


Precisamos entender o conceito de como funciona a "Classificação Por Coluna"

Para classificar por outra coluna é necessário que tanto a coluna a ser Classificada, quanto a coluna Classificadora, tenha para cada dado de uma APENAS um correspondente na outra.

Quando tentamos classificar "Nome do Mês" para cada mês existirão vários valores de datas diferentes, visto que em Janeiro vamos ter 01/01/2017, 02/01/2017, 03/01/2017 e por aí vai.

Para classificar corretamente precisamos ter uma nova coluna no nosso modelo que tenha valores únicos para cada valor individual em Nome do Mês.

A coluna que vai nos proporcionar isso é uma coluna de Mês mas em forma de numero (1, 2 ,3 ...)


Vamos incluí-la no Power Query Editor seleciona a Coluna Data e vai em Adicionar Colunas > Mês > Mês



E no power BI vamos então classificar Nome do Mês pela nova coluna criada Mês e teremos os dados na ordem certa agora.




Exemplo 2 - Replicando pra tudo!


Agora que você entendeu o conceito vamos tentar classificar outra coluna da minha dCalendario.

Eu gosto de sempre utilizar uma coluna Mês/Ano, para criar uma linha do tempo ao longo de vários anos com os meses ordenados.

Enquanto ela não está ordenada por padrão ela vai trazer a ordenação da seguinte forma:


Mostrar uma time line dessa forma seria absolutamente impossível, temos então que classificar por outra coluna. 

Se tentarmos classificar por uma das colunas que já existem na nossa dCalendario o Power BI ate vai permitir classificar por Ano ou por Mês, mas não vai nos trazer os dados ordenados da forma que precisamos.

Novamente vamos ter que recorrer a alguma coluna extra.

SOLUÇÃO!

Vamos lá no Power Query dar uma "Curiada" Seleciona a Coluna data e vai em Adicionar Coluna>Data>Mês e vamos ver quais opções temos.

Lá teremos Mês, Início do Mês, Fim do Mês, Dias do Mês e Nome do Mês.

A primeira e a ultima vamos descartar porque já temos no nosso modelo e não foram suficientes.

Vamos por a cabeça pra pensar, se eu tenho valores de Mês/Ano na minha coluna que nova coluna me traria um dado que sempre que for Janeiro/2017 terá apenas um valor único dentro das opções que verificamos?

To sentindo daqui o cheirinho de cérebro fritando...

Se eu adicionar então uma coluna dias do mês vai servir?

Dia do mês vai me trazer os seguinte dado quando for Janeiro/2017 vai trazer 31, quando For Março de 2017 também vai trazer 31, então não me serve.

Restaram duas e ambas são as soluções viáveis para nosso problema, Inicio do Mês ou Fim do Mês.

Vamos escolher Início do Mês e você verá que sempre que aparecer Janeiro/2017 em Mês/Ano teremos como correspondente nessa nova coluna 01/01/2017, em Fevereiro/2017 teremos 01/02/2017 e por aí vai.




Vamos Fechar e Aplicar e agora classificar "Mês/Ano" pela nova coluna "Início do Mês"

E foi... Temos então nossa colunas "Mês/Ano" na ordem que desejávamos.

Agora você pode aplicar isso a qualquer coluna da sua dCalendário, só usar um pouquinho esse negócio que tem dentro da cabeça e pensar que coluna pode ordenar outra coluna de forma satisfatória.

Dica... explore todas as opções de adicionar colunas Data no power query.

Grande abraço e até a próxima.

Comentários

  1. Muito legal sua explanação, eu consigo " me virar" inserindo uma coluna com um contador de mes....
    Valeu. Parabéns.

    ResponderExcluir
  2. Excelente! Estava quebrando a cabeça com esse impasse e os outros artigos traziam soluções mais complicadas e que não geravam resultado. Muito obrigado!

    ResponderExcluir

Postar um comentário