Qlik Community

Qlik Brasil

Welcome to the group for Brazil users. .All discussions will be in Portuguese.

Highlighted
Contributor

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.

1 Solution

Accepted Solutions
Highlighted
Contributor

Re: Manter apenas caracteres distintos

14 Replies
Highlighted
Partner
Partner

Re: Manter apenas caracteres distintos

Bom dia;

Existe algum padrão neste campo?

mario.soares@cubotimize.com | WhatsApp (21) 97014-5133 | Eu trabalho com paixão!
Highlighted
Contributor

Re: Manter apenas caracteres distintos

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.

Highlighted
Partner
Partner

Re: Manter apenas caracteres distintos

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

mario.soares@cubotimize.com | WhatsApp (21) 97014-5133 | Eu trabalho com paixão!
Highlighted
Contributor

Re: Manter apenas caracteres distintos

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...

Partner
Partner

Re: Manter apenas caracteres distintos

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

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

mario.soares@cubotimize.com | WhatsApp (21) 97014-5133 | Eu trabalho com paixão!
Highlighted
Contributor

Re: Manter apenas caracteres distintos

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

Highlighted
Partner
Partner

Re: Manter apenas caracteres 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

mario.soares@cubotimize.com | WhatsApp (21) 97014-5133 | Eu trabalho com paixão!
Highlighted
Partner
Partner

Re: Manter apenas caracteres distintos

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

mario.soares@cubotimize.com | WhatsApp (21) 97014-5133 | Eu trabalho com paixão!
Highlighted
Contributor

Re: Manter apenas caracteres distintos

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.