Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
julianacampag
Creator
Creator

Manter apenas caracteres distintos

Olá,

Tenho um campo de texto com vários caracteres repitidos, e preciso criar um campo que contenha apenas os caracteres distintos.

EX: 'aaaaaaabbbbcbbbccccaaaaa', preciso retornar apenas 'abc'.

Desde já agradeço.

Labels (2)
1 Solution

Accepted Solutions
julianacampag
Creator
Creator
Author

14 Replies
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Bom dia;

Existe algum padrão neste campo?

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
julianacampag
Creator
Creator
Author

Não. Não existe nenhum padrão, nem quantidade de caracteres definida.

Apenas para contextualizar para que seja entendida a minha necessidade:

Tenho uma planilha onde são lançados os registros de paradas de máquinas, e cada pessoa que lança valores no campo 'LOTE' faz de um jeito... alguns lançam '53001-53002-53003', outros lançam '53001/53002/53003', outros lançam '53001,53002,53003'.

Preciso de uma lista com os valores DISTINTOS dos separadores utilizados, para fazer um FOR padronizando em um caracter.

mario_sergio_ti
Partner - Specialist
Partner - Specialist

A ocorrência é sempre em 5 em 5 casas? 53001-53002-53003

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
julianacampag
Creator
Creator
Author

Não... lotes de produtos acabados possuem um padrão e lotes de semi-acabados outro.

Já fiz a separação dos lotes. O que tenho agora é uma lista dos caracteres que foram utilizados como separador, porém, eles aparecem repitidos...

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Para conseguir extrair os tipos de separadores no campo, teste:

KeepChar('[LOTE]', ',.;:/\[]{}()$#@%¨&*_+-=<>')

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
julianacampag
Creator
Creator
Author

Isso eu já fiz... O que preciso é retornar apenas os distintos.

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Parece que tem um sub campo no mesmo campo;

Para separar, pode utilizar a expressão:

subfield([LOTE], left(KeepChar([LOTE], ',.;:/\[]{}()$#@%¨&*_+-=<>'),1) ,1)

Interpretação:

KeepChar([LOTE], ',.;:/\[]{}()$#@%¨&*_+-=<>') | Identificar o separador utilizado pelo usuário


left(KeepChar([LOTE], ',.;:/\[]{}()$#@%¨&*_+-=<>'),1) | Capturar o 1º caractere, assumindo o separador utilizado


subfield([LOTE], left(KeepChar([LOTE], ',.;:/\[]{}()$#@%¨&*_+-=<>'),1) ,1) | Separar o primeiro sub campo

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Com len(KeepChar([LOTE], ',.;:/\[]{}()$#@%¨&*_+-=<>')) poderá saber quantas vezes terá que executar a função no FOR para separar os sub campos

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
julianacampag
Creator
Creator
Author

Mario, eu já tenho a lista dos separadores.

Não posso usar a forma como propôs porque muitas vezes é utilizado mais de um caractere na mesma sequencia.

Para ter uma ideia, anexo segue a lista com os separadores.

Por isso que preciso retornar os DISTINTOS para depois fazer o FOR.