Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
Not applicable

IF com TextBetween

Olá, tenho um campo a ser tratado com Textbetween e nele tenho assuntos, sendo eles:
-Cancelamento,
-QuerCancelamento,

-QuerDarNota,

Agradecimento.

Meu código TextBetween(resource_uri, '#', '') trás esses assuntos, quero que:
Quando TextBetween(resource_uri, '#', '') for igual a 'Cancelamento' me traga 'Negativo'
Quando TextBetween(resource_uri, '#', '') for igual a 'QuerCancelamento' me traga 'Negativo'

Quando TextBetween(resource_uri, '#', '') for igual a 'QuerDarNota' me traga 'Posivito'

Quando TextBetween(resource_uri, '#', '') for igual a 'Agradecimento' me traga 'Positivo'

Tentei fazer assim IF(TextBetween(resource_uri, '#', '') = 'AgradecimentoOperador', 'Positivo')

Mas quero agrupar todos os Positivos e Negativos em suas respectivas colunas Positivo e Negativo e dentro delas os novos assuntos alterados para Positivo e Negativo. Mas apenas consegui trazer um registro em cada coluna, quero dois positivos na coluna Positivo e dois na coluna Negativo.

1 Solution

Accepted Solutions
rodrigo_damas
New Contributor II

Re: IF com TextBetween

A primeira linha do inline é, por padrão o nome do campo, então ele estava entendendo que o nome do campo era Cancelamento e Negativo, e não entendendo como o dado em si.

tenta colocar assim:

Negat:

Mapping LOAD * INLINE

[

De, Para

Cancelamento, Negativo

QuerCancelamento, Negativo

MausTratosParaOperador, Negativo

AtendimentoRuim, Negativo

];

Já quando for aplicar o Mapping, se não quer trazer o que não for negativo, coloque o "padrão"  como NULL()

Ex:

ApplyMap('Negat', TextBetween(resource_uri, '#', ''), Null()) as Negativo

7 Replies
el_aprendiz111
Valued Contributor

Re: IF com TextBetween

Kaleb buenas tardes

tienes datos de ejemplo para ayudarte.

saludo,

Employee
Employee

Re: IF com TextBetween

Construa um mapa com todas suas substituições

Mapa:

Mapping load * inline [

     De, Para

Cancelamento, Negativo

QuerCancelamento, Negativo

QuerDarNota, Positivo

];

Depois use com o resultado do seu TextBetween

Applymap('Mapa',TextBetween(resource_uri, '#', '')) as Campo

Not applicable

Re: IF com TextBetween

O meu campo 'Negativo' esta me retornando todos os assuntos, até mesmo os positivos e nem mesmo mudou as nomenclaturas de Cancelamento para Negativo.
O que estou fazendo de errado?
Tentei o Applymap depois do Mapping Load e na imagem abaixo tentei dentro do LOAD da tabela.

algoerrado.jpg

rodrigo_damas
New Contributor II

Re: IF com TextBetween

A primeira linha do inline é, por padrão o nome do campo, então ele estava entendendo que o nome do campo era Cancelamento e Negativo, e não entendendo como o dado em si.

tenta colocar assim:

Negat:

Mapping LOAD * INLINE

[

De, Para

Cancelamento, Negativo

QuerCancelamento, Negativo

MausTratosParaOperador, Negativo

AtendimentoRuim, Negativo

];

Já quando for aplicar o Mapping, se não quer trazer o que não for negativo, coloque o "padrão"  como NULL()

Ex:

ApplyMap('Negat', TextBetween(resource_uri, '#', ''), Null()) as Negativo

rodrigo_damas
New Contributor II

Re: IF com TextBetween

Só não entendi o motivo de você ter um campo específico para Negativo só com dados de Negativo...

Você poderia colocar todas as opções no Mapping, como sugeriu o Clever, com todas as possibilidades de retorno para a expressão: TextBetween(resource_uri, '#', '')

Not applicable

Re: IF com TextBetween

Então eu preciso demonstrar em um gráfico de barras, a QTD de Assuntos Negativos e Positivos, praticamente vou dar um count de registros dentro de cada um deles. Só preciso separar os assuntos e coloca-los em suas respectivas colunas/campos.

rodrigo_damas
New Contributor II

Re: IF com TextBetween

Entendi, desse jeito que falei vai funcionar...

Coloca só o null() como padrão no applyMap e depois coloca count(Negativo)

ai para o Positivo a mesma coisa.

Unica coisa é que vão ser 2 campos que daria para fazer em um só, ai no grafico você colocaria como dimensão esse campo do applymap

mas das 2 formas irá funcionar