Sua dCalendario tem muitas colunas? Vamos adicionar mais uma...



Olá povo bonito e poliglota do Linkedin, queria falar hoje com vocês sobre uma dúvida que foi postada num dos grupos do Whatsapp de Power BI que participo.

A necessidade do nosso amigo era bem interessante, ele queria analisar dados ao longo do tempo de uma forma diferente mas que pode trazer algumas ideias bem interessantes pra analisar a sazonalidade de vendas, atendimentos, o que você quiser, nos dias da semana ao longo de um período.

Se você não entendeu nada, na hora eu também não entendi, eu vou explicar...

Ele queria ver, por exemplo, num gráfico a venda de todos os meses somente da Primeira Segunda-Feira de cada mês. Então num gráfico de colunas estariam todas as primeiras segunda-feira de cada mês ao longo dos meses. Depois ele poderia comparar também essa primeira segunda-feira com a segunda segunda-feira do mês e, então, analisar a sazonalidade de vendas comparando dentro de um mês o comportamento do cliente não nas segundas-feiras apenas, mas na primeira segunda-feira, na segunda, na terceira e aí conseguimos ter insights analisando esses desenhos de padrão de consumo.

O grande problema era então conseguir criar numa dCalendario (se não sabe o que é isso dá uma olhada nesse vídeo do Garcia que é muito bom) uma coluna que indicasse se aquela segunda-feira seria a primeira, segunda, terceira, quarta ou quinta dentro de um mês.

Então vamos à brincadeira...

Mas antes... vai lá no meu canal e se inscreve, vai levar nem 10 segundos seu pão duro...


Agora que você se inscreveu no meu canal vamos iniciar...

Temos aqui então a coluna de data da nossa dCalendario no seu estado simples, somente datas nesse caso, iniciando do dia 01/01/2018... mas você vai utilizar claro a sua dCalendario no período que você esteja trabalhando.

Coloque essa coluna em ORDEM da menor data para a maior pra dar tudo certo.

Vamos precisar inserir inicialmente 2 colunas, nome do mês e ano, porque iremos mescla-las para que possamos criar uma coluna "mês ano".



Para incluir as colunas Nome Mês e Ano é bem simples você vai selecionar a coluna "Data" Menu Adicionar coluna e no botão "Data", aquele que tem um desenho de um calendário vai clicar e selecionar Ano, e depois em Mês vai escolher "Nome do Mês" como abaixo.


Beleza garotinho? Seleciona então agora as colunas "Nome do Mês" clica no CTRL e seleciona também "Ano", Menu > Transformar > Mesclar Colunas.




Seleciona novamente a coluna "Data" que agora vamos adicionar o nome do dia da semana.


Se deu tudo certo agora você tem uma coluna de Datas, uma coluna com Mês e Ano e uma coluna com o nome do dia da semana. Se não deu comece tudo de novo até aprender.

E agora vamos começar de verdade a trabalhar com o power query. Vamos precisar agora agrupar as linhas com base em dois critérios "MêsAno" e "Nome do Dia".

Selecione essas duas colunas que falei acima, clique com o botão direito no cabeçalho de qualquer uma das duas e clique em "Agrupar por..."


Ele vai lhe mostrar a tela abaixo.


E com meus poderes mediúnicos eu sei que você já saiu clicando no OK.

"Essa pessoa, não seja essa pessoa..."

Vamos ter que alterar antes a opção "Operação" que por default vai esta na opção "Contar Linhas" e vamos mudar para "Todas as Linhas".


AGORA SIM CLICA OK AÍ...

Você vai perceber que foi criada uma Coluna com o nome "Contagem" que em cada registro traz uma tabela encapsulada.

Se você clicar AO LADO DO NOME TABLE em um desses registros (AO LADO, NÃO NO NOME!!!!!!) você vai ver abaixo os dados dessa tabela encapsulada... que nada mais será uma relação de todos os dias de um Mês que caem por exemplo na segunda-feira como abaixo:


Se você prestar atenção vai ver que as segundas-feiras estão em ordem de data dentro do mês, porque lá atrás eu coloquei minha coluna Data em Ordem Crescente, por isso te pedi pra fazer isso no começo.

Agora precisamos então de alguma forma, criar um numero que me identifique que dia 01/01/2018 é a 1ª, dia 08/01/2018 é a 2ª e assim por diante.

Pra isso podemos incluir uma coluna de Índice iniciando do 1. Mas se você for lá em cima no menu Adicionar Colunas e simplesmente mandar criar um Índice não vai rolar, porque precisamos criar esse índice DENTRO da tabela encapsulada.

Vamos fazer isso adicionando uma coluna personalizada com a seguinte expressão:

Table.AddIndexColumn([Contagem], "Index", 1)


Isso vai criar dentro de cada tabela encapsulada uma coluna de índice chamada "Index" iniciando de 
1. Vamos ver como ficou agora então nossa nova tabela encapsulada


Remove então essa coluna "Contagem" porque não vamos mais precisar dela.

E vamos expandir a coluna Personalizar clicando no botão de expandir do lado do nome da coluna.





Ele vai te mostrar algo assim...

Seleciona somente as colunas Data e Index, que são as que iremos extrair, já que MesAno e Nome do Dia já temos...

Clique em ok, e veja que temos agora 4 colunas.

Ajustes os tipos de dados das colunas e vamos pra próxima parte.





Vamos selecionar a Coluna de Index segurar CTRL e clicar na coluna com Nome do Dia, botão direito do mouse no cabeçalho de uma das duas e "Mesclar Colunas"

No tipo de separador eu escolhi um Personalizado e coloquei um "azinho" de ordinal ( ª ) com um espaço depois dele pra que fique no padrão que eu quero e em Novo Nome da Coluna coloquei "OrdemSemana", mas você pode fazer o que você quiser... importante é concatenar pra que você possa ter a coluna que queríamos criar.


voilà temos agora criada a coluna que queríamos:



Agora meus amiguinhos... é com a imaginação de vocês. Como podem utilizar essa mais nova coluna na sua dCalendário?

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


Comentários