Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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.
Solução!!
Bom dia;
Existe algum padrão neste campo?
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.
A ocorrência é sempre em 5 em 5 casas? 53001-53002-53003
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...
Para conseguir extrair os tipos de separadores no campo, teste:
KeepChar('[LOTE]', ',.;:/\[]{}()$#@%¨&*_+-=<>')
Isso eu já fiz... O que preciso é retornar apenas os distintos.
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
Com len(KeepChar([LOTE], ',.;:/\[]{}()$#@%¨&*_+-=<>')) poderá saber quantas vezes terá que executar a função no FOR para separar os sub campos
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.