Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Pessoal, boa tarde!
Tenho uma base em excel que em um determinado campo contem dados do tipo texto. No meio desse texto, ha uma parte que eu precisaria extrair uma parte da informação e transfoma-lo em outro campo. Porem, esse texto nao tem um tamanho padrao ate a parte que preciso extrair, nem antes nem depois. Nao estou conseguindo encotrar uma solução para resolver esse problema.
Exemplo: o campo traz a seguinte informação: numero_de_pedido_para_solicitação_P1_enviado_com_sucesso
O campo que preciso criar é justamente para pegar o tipo de solicitação. P1, P2, P3, etc. Para assim, conta-lo e criar um indicador.
A ideia e nao ter que trabalhar no arquivo em excel e sim tratar isso no proprio Qlik.
Isso é possivel de ser feito?
Alguem poderia me ajudar?
Obrigado.
Ola João,
Conforme o Aderlan falou você pode utilizar a função TextBetween em conjunto com outras funções de caracteres para chegar em uma lógica e extrair suas informações.
De acordo com o informado a informação que deseja é "P1", ou seja, a letra "P" em maiusculo seguido de um sequencial numérico.
Pode utilizar a função FindOneOF() para saber a posição desta letra em questão, desde que a letra P em maiusculo não se repita na sua string (ai teria que pensar em outra lógica), ficaria:
Texto exemplo:
numero_de_pedido_para_solicitação_P1_enviado_com_sucesso
FindOneOf( SUA_STRING, 'P' ) // retorna a posição deste caracter.
Este trecho retorna apenas a string iniciando com o caracter "P"
MID( SUA_STRING, FindOneOf( SUA_STRING, 'P' ) )
Resultado: P1_enviado_com_sucesso
Em seguida é necessário encontrar a posição do primeiro delimitador após o caracter "P" (no seu exemplo o "_").
FindOneOf (
MID( SUA_STRING, FindOneOf( SUA_STRING, 'P' ) )
, '_' )
Para obter o código desejado, utiliza-se a função LEFT informando a quantidade de posições que deve considerar da esquerda para a direita.
LEFT(
MID( SUA_STRING, FindOneOf( SUA_STRING, 'P' ) ) // Seu texto iniciando em P
, FindOneOf (
MID( SUA_STRING, FindOneOf( SUA_STRING, 'P' ) )
, '_' ) - 1 // Posição do primeiro caracter "_", mas subtrai 1 para não ser demonstrado este caracter ("_")
)
Este é um exemplo de uma lógica de acordo com o texto de exemplo que você passou, vai variar muito de acordo com a sua base de dados, mas a idéia é demonstrar a utilização de funções de caracteres para a extração de uma determinada palavra chave dentro de um texto.
Abraços
Olá joaolenon,
Veja a função TextBetween na ajuda (F1).
TextBetween(campo, '_', '_',5)
Abraço.
Ola João,
Conforme o Aderlan falou você pode utilizar a função TextBetween em conjunto com outras funções de caracteres para chegar em uma lógica e extrair suas informações.
De acordo com o informado a informação que deseja é "P1", ou seja, a letra "P" em maiusculo seguido de um sequencial numérico.
Pode utilizar a função FindOneOF() para saber a posição desta letra em questão, desde que a letra P em maiusculo não se repita na sua string (ai teria que pensar em outra lógica), ficaria:
Texto exemplo:
numero_de_pedido_para_solicitação_P1_enviado_com_sucesso
FindOneOf( SUA_STRING, 'P' ) // retorna a posição deste caracter.
Este trecho retorna apenas a string iniciando com o caracter "P"
MID( SUA_STRING, FindOneOf( SUA_STRING, 'P' ) )
Resultado: P1_enviado_com_sucesso
Em seguida é necessário encontrar a posição do primeiro delimitador após o caracter "P" (no seu exemplo o "_").
FindOneOf (
MID( SUA_STRING, FindOneOf( SUA_STRING, 'P' ) )
, '_' )
Para obter o código desejado, utiliza-se a função LEFT informando a quantidade de posições que deve considerar da esquerda para a direita.
LEFT(
MID( SUA_STRING, FindOneOf( SUA_STRING, 'P' ) ) // Seu texto iniciando em P
, FindOneOf (
MID( SUA_STRING, FindOneOf( SUA_STRING, 'P' ) )
, '_' ) - 1 // Posição do primeiro caracter "_", mas subtrai 1 para não ser demonstrado este caracter ("_")
)
Este é um exemplo de uma lógica de acordo com o texto de exemplo que você passou, vai variar muito de acordo com a sua base de dados, mas a idéia é demonstrar a utilização de funções de caracteres para a extração de uma determinada palavra chave dentro de um texto.
Abraços
Eduardo,
Cara, funcionou beleza.
Muito obrigado pela ajuda.
Obs. Desculpe pela demora no retorno. Fiquei 02 (duas) semanas fora.
Abraço.