Boa tarde
preciso criar uma formula para separar unidades de reais e em seguida criar outra formula para gerar data respeitando a sequencia do campo MÊS/MÉTRICAS
exemplo:
MÊS/MÉTRICAS | MÉTRICAS | DATA |
MÊS_1_REAIS | REAIS | jul/19 |
MÊS_1_UNIDADES | UNIDADES | jul/19 |
MÊS_2_REAIS | REAIS | jun/19 |
MÊS_2_UNIDADES | UNIDADES | jun/19 |
MÊS_3_REAIS | REAIS | mai/19 |
MÊS_3_UNIDADES | UNIDADES | mai/19 |
MÊS_4_REAIS | REAIS | abr/19 |
MÊS_4_UNIDADES | UNIDADES | abr/19 |
obrigado.
Solucionado! Ir para Solução.
Olá @GuiMoraesNunes
Para isolar REAIS e UNIDADES sugiro o REGEX.
REGEX_Replace([MÊS/MÉTRICAS], ".*_(.*)", "$1")
Basicamente esse REGEX funciona dessa maneira:
Isole tudo que vem depois do último underscore(_) e traga essa String para mim.
.*_(.*) - os parenteses indicam o grupo $1, que é a expressão que substitui a original.
Para criar a sequência de data, precisamos de mais informações. Qual critério para começar no mês de julho/2019?
Abs,
segue a ordem
mês_1_reais = jul/2019, mês_2_reais = jun/2019 e assim por diante
Mas o mês 1 será o atual?
Porque se você considerar isso como premissa, nos próximos meses o mês 1 sempre será o de Julho.
isso mesmo mês 1 é o atual e mês 2 é o anterior e assim por diante
Claro, é possível.
Use essa fórmula pra pegar a sequência mês/ano em inglês.
DateTimeFormat(
DateTimeAdd(
DateTimeNow(),1-ToNumber(REGEX_Replace([MÊS/MÉTRICAS], "[^\d]", "")), "months"),
"%b/%y")
O que essa fórmula significa?
Primeiro você usa o Regex pra isolar o número
REGEX_Replace([MÊS/MÉTRICAS], "[^\d]", "")
Isso substitui qualquer caracter que não é dígito por um vazio, deixando você apenas com o número (no caso de mês_1, só 1)
Depois você usa a fórmula do DateTimeAdd pra você variar sua data de acordo com esse número:
DateTimeAdd(DateTimeNow(), 1-ToNumber(REGEX_Replace([MÊS/MÉTRICAS], "[^\d]", "")), "months")
Adicione a data de agora (DateTimeNow()), 1 - o número que está dentro da sua string (em meses). Ou seja, no mês 2, vai ser 1-2, que é -1. Vai adicionar 1 mês negativo na data atual, sendo assim, retornando Junho para Mês 2.
Depois, formate sua data no esquema que você quer:
DateTimeFormat(
DateTimeAdd(
DateTimeNow(),1-ToNumber(REGEX_Replace([MÊS/MÉTRICAS], "[^\d]", "")), "months"),
"%b/%y")
DateTimeFormat é uma função em que você pega uma data e deixa ela no formato de uma string que você deseja, usando parâmetros específicos de data.
Dá uma olhada nesse link para entender melhor a função e os parâmetros https://help.alteryx.com/current/pt-br/Reference/DateTimeFunctions.htm
Como isso retorna os nomes dos meses em inglês, por exemplo, maio de 2019 retornaria May/2019, usamos a função Switch para traduzí-los:
Switch(Left([Mês],3), Left([Mês],3),
"Feb", "Fev",
"Apr", "Abr",
"May", "Mai",
"Aug", "Ago",
"Sep", "Set",
"Oct", "Out",
"Dec", "Dez") + Right([Mês], 3)
Os 3 primeiros caracteres do campo Mês que criamos serão substituídos de acordo com a regra acima:
Feb vira fev
Apr vira Abr e por aí vai...
Esses 3 primeiros caracteres concatenamos com os 3 últimos da direita, que são o "/19", referente ao ano.
Pronto, temos o campo data.
Segue workflow caso tenha dúvidas.
Abs,
deu certo muito obrigado