O que você vai aprender?
Quem trabalha com transformação e limpeza de dados certamente já precisou da informação do último dia do mês. Embora muito comum, nem sempre encontramos uma função que faça isso automaticamente. Cabe a nós escrevermos uma fórmula que implemente esta funcionalidade.
Nessa dica, vamos mostrar passo a passo como criar essa fórmula no Alteryx.
INTRODUÇÃO
Para simularmos a função Último Dia, vamos usar apenas uma ferramenta, a Formula Tool. Criaremos um campo calculado para cada passo do processo, e no final colocaremos toda a implementação em um único campo.
Vamos partir da premissa que o campo que armazena a data que queremos saber o último dia do mês está no formato DATE. O nome do nosso campo de exemplo é DataPagamento, que foi preenchido com a data 15/09/2020.
Passo 1: Identificar o ano da data
O primeiro passo é extrair o ano da data em questão. Para isso, vamos criar um campo calculado de nome AnoPagamento, e usar a função DateTimeYear para recuperar o ano da data.
Precisamos que este campo seja uma cadeia de caracteres. Como a função DateTimeYear retorna um inteiro, usaremos a função ToString para fazer a conversão.
Lembre-se também de trocar o Tipo de Dado na fórmula para V_String.
Passo 2: Identificar o mês da data
De forma semelhante, vamos recuperar o Mês da Data, desta vez com a função DateTimeMonth.
Novamente, lembre-se de alterar o formato do campo para V_String.
Passo 3: Formatando o mês para o formato MM
O mês da data traz um complicador, porque a saída desejada precisa estar no formado MM (dois dígitos, com zeros à esquerda, para os meses de 1 a 9).
Criaremos um novo campo calculado de mês, concatenando a constante “00” ao mês e depois extrair somente os 2 caracteres à direita.
Passo 4: O primeiro dia do mês
Com o ano e o mês em mãos, o próximo passo é criar um campo que retorne o primeiro dia do mês (sim, o primeiro). Este passo é necessário porque nem todos os meses terminam no mesmo dia, mas todos começam no dia 1.
Vamos apenas concatenar as informações de ANO, MÊS e a constante “01” para criar um novo campo, de nome PrimeiroDiaMes.
Usaremos a função ToDate para que este campo seja do tipo Date. Troque o tipo de dado para Date na fórmula.
Passo 5: Adicione um mês à data calculada
Estamos na etapa final. Para que a data calculada reflita o último dia do mês, vamos usar a estratégia de somar um mês à data, e em seguida, subtrair um dia.
Estes dois passos podem ser feitos na mesma fórmula, mas neste tutorial vamos separar em 2 ações distintas. Use a função DateTimeAdd para somar 1 mês.
Passo 6: Subtraia um dia da data calculada
Finalmente, subtraia um dia da data calculada no passo anterior, e você terá o último dia do mês, dada uma data específica.
Bônus: Calculando a Data de uma única vez
Agora que você já entendeu como funciona, pode implementar a fórmula em um único campo, uma vez que o Alteryx permite aninhar funções. A fórmula fica mais complexa de interpretar, mas o resultado é o mesmo.
Não há ganho de performance quando se utiliza apenas 1 fórmula. Avalie a questão de interpretabilidade antes de decidir pela implementação única.
Se esta fórmula for usada constantemente, você pode salvá-la clicando no botão correspondente para uso futuro. Também pode criar uma ferramenta específica para isso usando macros. Não sabe como?Veja esta dica aqui.