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.
E 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
Postar um comentário