O que você vai aprender?
Nessa dica iremos mostrar um exemplo de como podemos preencher uma sequência incompleta de datas e tratar os dados correspondentes à cada data.
INTRODUÇÃO
Nesse exemplo, supondo que temos uma base com vendas por dia de uma loja, mas nem todos os dias tiveram vendas, esses dias sem vendas não são computados na base. Nosso objetivo aqui é trazer esses dias que não estão na base e preenche-los com 0 na coluna de Vendas.
Como podemos ver, alguns dias que estão faltando são: 10/07/2021, 11/07/2021, 17/07/2021 e 18/07/2021.
Passo 1: Definir datas máxima e mínima da sequência
Primeiro, precisamos de duas informações sobre a base: a menor e a maior data que temos, pois elas representarão o inicio e fim da sequência de datas que precisamos criar. Podemos descobrir isso usando a ferramenta de Sumarizar, como mostrado abaixo:
Assim, você verá na aba de resultados duas colunas com a data mínima e máxima.
Passo 2: Criar a nova sequência com as datas permitidas
Para criarmos essa sequência podemos utilizar a ferramenta de Gerar Linhas:
Vamos criar essa nova coluna chamada “Data Preenchida” e ela iniciará com a Data Mínima da sequência. A regra que usaremos aqui é: Enquanto a Data Preenchida for menor que a Data Máxima, adicione +1. Assim, criaremos uma sequência de dias sem “buracos” entre a data mínima e a máxima.
Ao final, a sequência de dias que vimos anteriormente ficará assim:
Passo 3: Unir os valores à nova coluna de datas e tratá-los
Por fim, vamos utilizar uma ferramenta de Join e de Union para unir a nova coluna criada com os dados que tínhamos anteriormente. Primeiro traremos um Join para o fluxo:
Para juntar as bases utilizaremos as colunas de Data e Data Preenchida (geradas no passo anterior). Note que as datas em comum sairão pela saída “J” do Join e as datas que são “buracos” na sequência original sairão na saída “L”.
Por causa disso, precisamos adicionar uma ferramenta de União para unir as saídas “J” e “L” do Join:
Após isso, só precisamos ordenar os dados pela data e substituir os valores nulos por 0, usando as ferramentas de ordenação e limpeza de dados, como mostrado abaixo:
No final, nossos dados ficarão assim (com os dias que não estavam presentes na base anterior zerados):