Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Oi Pessoal, bom dia!
Tenho um conjunto de 49 palavras divididas em 04 grupos que preciso verificar se existem em uma uma coluna chamada "Descrição da Manifestação".
Depois de alguns pesquisas, achei algumas expressões e montei a seguinte expressão no script para localizar a palavra "processo":
Capitalize(Mid(Upper([Descrição da Manifestação]) , index(Upper([Descrição da Manifestação]) , 'PROCESSO') , len('PROCESSO'))) as AlertaProcesso
No exemplo acima, transformei tudo em letra maiúscula, pois percebi que o conjunto de expressão que usei e sensível a forma pesquisada.
Bom, pesquisando palavra a palavra foi até fácil, porém gostaria de saber se existe alguma alternativa para pesquisar todas as palavras de um mesmo grupo na mesma expressão, sendo assim, usando apenas 04 expressões e não 49.
Alguém tem alguma sugestão?
Desde já, agradeço!
Amigo, poderá utilizar Mapping ‒ QlikView, mais performático;
Exemplo:
Map_TipoOcorr:
Mapping Load *
Inline [
1,Agressão
2,Agressão
3,Exposição da Marca
4,Exposição da Marca
5,Autoridades
6,Autoridades
7,Ética
8,Ética
];
Tab_Dados:
Load
ApplyMap('Map_TipoOcorr', WildMatch([Descrição da Manifestação],
'*AGRESSÃO*','*ATACAR*','*FACEBOOK*','*IMPRENSA*','*190*',
'*AÇÃO JUDICIAL*','*DESRESPEITO*','*ABUSO DE AUTORIDADE*')
, 'Indefinido') As 'Tipo de Alerta',
...
Pessoal,
Achei um alternativa, mas creio que haja melhores.
If(WildMatch(Capitalize([Descrição da Manifestação]) , '*Agressão*') , 'Agressão' ,
If(WildMatch(Capitalize([Descrição da Manifestação]) , '*Atacar*') , 'Agressão' ,
If(WildMatch(Capitalize([Descrição da Manifestação]) , '*Facebook*') , 'Exposição da Marca' ,
If(WildMatch(Capitalize([Descrição da Manifestação]) , '*Imprensa*') , 'Exposição da Marca' ,
If(WildMatch(Capitalize([Descrição da Manifestação]) , '*190*') , 'Autoridades' ,
If(WildMatch(Capitalize([Descrição da Manifestação]) , '*Ação Judicial*') , 'Autoridades' ,
If(WildMatch(Capitalize([Descrição da Manifestação]) , '*Desrespeito*') , 'Ética' ,
If(WildMatch(Capitalize([Descrição da Manifestação]) , '*Abuso de Autoridade*') , 'Ética' ,
)))))))) as "Tipo de Alerta"
Se houver uma maneira de agrupar as palavras pesquisadas que resultasse na condição final (04 condições), ficaria bem melhor.
Att,
Amigo, poderá utilizar Mapping ‒ QlikView, mais performático;
Exemplo:
Map_TipoOcorr:
Mapping Load *
Inline [
1,Agressão
2,Agressão
3,Exposição da Marca
4,Exposição da Marca
5,Autoridades
6,Autoridades
7,Ética
8,Ética
];
Tab_Dados:
Load
ApplyMap('Map_TipoOcorr', WildMatch([Descrição da Manifestação],
'*AGRESSÃO*','*ATACAR*','*FACEBOOK*','*IMPRENSA*','*190*',
'*AÇÃO JUDICIAL*','*DESRESPEITO*','*ABUSO DE AUTORIDADE*')
, 'Indefinido') As 'Tipo de Alerta',
...
Boa solução, Mário.
Gostei
Obrigado cleveranjos, é bom receber feedback de um veterano como você, me ajuda a saber se estou apoiando bem;
Aproveitei e editei o script acima para retirar a função Upper(), já que a função WildMatch() não é case sensitive.
Abraço.
Muito obrigado Mário!
Funcionou perfeitamente!
Abraço.