Free Trial

Fórum

SOLUCIONADO

Criação de campo percentual a partir de uma string

RaulVale
Meteoroide

Bom dia pessoal, estou tratando uma campo string e preciso criar uma formula para capturar um número dentro desse campo.

Esses números são para construir um campo de percentual, notem que tem campos com 4, 3, 2 ou 1 número dentro desse intervalo, isso se refere as casas decimais, por exemplo:
linha 4: "0.782" no novo campo é para retornar 7.82%

linha 5: "0.2894" é para retornar 28.94%

linha 7: "0.78" é pra retornar 7.8%

linha 8: "0.0" é pra retornar 0%
Seria os valores após o "0." e anterior a letra, caso possua. Atualmente estou fazendo com substring, mas o meu receio é se o tamanho ou alguma nomenclatura na string mude. Teriam alguma solução mais inteligente para gerar esse novo campo?

RaulVale_1-1666967450792.png

 

 

5 RESPOSTAS 5
RaulVale
Meteoroide

Segue os exemplos em texto:

---inflation:-!ruby/object:BigDecimal27:0.681e1-!ruby/object:BigDecimal27:0.668e1
---inflation:-!ruby/object:BigDecimal27:0.682e1-!ruby/object:BigDecimal27:0.681e1
---inflation:-!ruby/object:BigDecimal27:0.927e1-!ruby/object:BigDecimal27:0.1302e2
---inflation:-!ruby/object:BigDecimal27:0.781e1-!ruby/object:BigDecimal27:0.782e1
---inflation:-!ruby/object:BigDecimal27:0.2571e2-!ruby/object:BigDecimal27:0.2894e2
---inflation:-!ruby/object:BigDecimal27:0.652E1-!ruby/object:BigDecimal27:0.639E1
---inflation:-!ruby/object:BigDecimal18:0.78E0-!ruby/object:BigDecimal18:-0.78E0
---inflation:-!ruby/object:BigDecimal18:-0.78E0-!ruby/object:BigDecimal18:0.0

pedrodrfaria
Pulsar

Oi Raul,

 

Voce pode so usar um Regex e Tokenize com isso daqui e ele vai pegar para voce os valores decimais. Ai depois é só converter para o formato que voce quer.

 

BigDecimal\d+:(-*\d*.-*\d+)

 

pedrodrfaria_0-1666969857642.png

 

 

biosartorelli
Asteroide

Oi Raul, 

Acredito que a melhor solução seja com Regex - é claro que neste caso precisa ter sempre o mesmo padrão. Aqui na minha lógica, estou capturando os numeros após os ":".

 

Dá uma olhada no fluxo que estou enviando e veja se atende. Espero que dê certo!

 

Screenshot 2022-10-28 121535.png

 

 

Raul, boa tarde.

Deixei um exemplo ae em anexo de como trataria esse texto. Creio que atenda a necessidade.

Garabujo7
Alteryx
Alteryx

Opa @RaulVale 

 

Além de fazer o que @pedrodrfaria fala, eu adicionaria o valor completa. Desse jeito, com mais um select, você pode mudar o tipo de dado para double e dar certo.

 

Garabujo7_0-1666970365896.png

 

Garabujo7_2-1666970414561.png

 

 

Gabriel

 

Rótulos
Autores com maior número de soluções