Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
ROM
Contributor II
Contributor II

Como faço algo semelhante ao PROCV

Olá, pessoal.

Alguém pode me ajudar, como faço para criar uma nova coluna que transforme

CódigoSituação
43UMA
44B
44UMA
45UMA
45B
46UMA
47UMA
47UMA
48UMA
48B
48B
48UMA
49B
49UMA
49UMA

em

CódigoSituaçãoNOVA COLUNA
43UMAUMA
44BB
44UMAB
45UMAB
45BB
46UMAUMA
47UMAUMA
47UMAUMA
48UMAB
48BB
48BB
48UMAB
49BB
49UMAB
49UMAB

 

Observem que na NOVA COLUNA prioriza a Situação B.
Traz apenas uma Situação, priorizando quando aparece a Situação B.

No Excel, faria uma nova coluna antes de Situação que apresentasse o código quando aparecesse a Situação B e depois com um PROCV em NOVA COLUNA eu resolveria o caso, mas pelo qlik não encontro uma forma de fazer isso.

1 Solution

Accepted Solutions
Saravanan_Desingh

Try this,

tab1:
LOAD RowNo() As RowID,* INLINE [
    Code, Situation
    43, ONE
    44, B
    44, ONE
    45, ONE
    45, B
    46, ONE
    47, ONE
    47, ONE
    48, ONE
    48, B
    48, B
    48, ONE
    49, B
    49, ONE
    49, ONE
];

Left Join(tab1)
LOAD Code, Index(Concat(DISTINCT '@'&Situation&'@'),'@B@')>0 As C1
Resident tab1
Group By Code;

Left Join(tab1)
LOAD Code, If(C1,'B',Situation) As [NEW COLUMN]
Resident tab1;

View solution in original post

9 Replies
Gui_Approbato
Creator III
Creator III

Olá,

No script você consegue fazer um procv com a função Lookup() , mas cuidado por que assim como no excel, apenas o primeiro registro vai aparecer.

https://help.qlik.com/pt-BR/sense/May2021/Subsystems/Hub/Content/Sense_Hub/Scripting/InterRecordFunc...

 

ROM
Contributor II
Contributor II
Author

Olá, Gui.

Agradeço pela dica, mas ainda não consegui replicar o que faço no excel.

Por favor, se puder, dê uma como eu faria no excel (no anexo). coloquei as fórmulas onde está em vermelho.

O que me indicaria fazer para obter o mesmo resultado?

 

Gui_Approbato
Creator III
Creator III

Oi,

Eu fiz um video curtinho pra mostrar como você pode fazer.

Veja aqui no link: https://youtu.be/u8a4NuHFwdU

aqui abaixo está o script.

Abs

// Lookup ( 'coluna que quero', 'correspondente na outra tabela', coluna atual, 'nome da tabela')


Tabela_Proc:
LOAD
código1,
Situação1
FROM [lib://Fonte/Modelo.xlsx]
(ooxml, embedded labels, table is Plan1);

Oficial:
LOAD
código,
Situação,
if(
IsNull(Lookup('Situação1','código1',[código],'Tabela_Proc')),[Situação],
Lookup('Situação1','código1',[código],'Tabela_Proc')) as Nova_Coluna
FROM [lib://Fonte/Modelo.xlsx]
(ooxml, embedded labels, table is Plan1);

 

Saravanan_Desingh

Try this,

tab1:
LOAD RowNo() As RowID,* INLINE [
    Code, Situation
    43, ONE
    44, B
    44, ONE
    45, ONE
    45, B
    46, ONE
    47, ONE
    47, ONE
    48, ONE
    48, B
    48, B
    48, ONE
    49, B
    49, ONE
    49, ONE
];

Left Join(tab1)
LOAD Code, Index(Concat(DISTINCT '@'&Situation&'@'),'@B@')>0 As C1
Resident tab1
Group By Code;

Left Join(tab1)
LOAD Code, If(C1,'B',Situation) As [NEW COLUMN]
Resident tab1;
Saravanan_Desingh

Output:

commQV80.PNG

menta
Partner - Creator II
Partner - Creator II

Use mapping loading B

TestMap:

Mapping Load Código,Situação

from your table

where Situacao ='B';

 

Load Código,Situação, Applymap('TestMap',Código,Situação) as NOVA COLUMNA

from your table;

 

 

ROM
Contributor II
Contributor II
Author

Olá, Guilherme.

Agradeço muito por estar tentando me ajudar, foi muito esclarecedora sua explicação, valeu mesmo.

Tem um problema, não tenho a opção de extrair a Tabela_Proc, preciso criá-la a partir da tabela Oficial.

Tenho outra dificuldade, não sei como faço para referenciar quando os dados vêm de duas tabelas diferentes.

Código vem de uma tabela. qvd

Situação de outra.xlsx

Tentei replicar como tenho no anexo.

Se puder me ajudar.

 

ROM
Contributor II
Contributor II
Author

Nossa! Saran.

A forma que fez é realmente muito boa, muito obrigado!

Tenho outra dificuldade, não sei como faço para utilizar o script que criou quando os dados vêm de duas tabelas diferentes.

Código vem de uma tabela. qvd

Situação de outra.xlsx

Tentei replicar como tenho no anexo.

Se puder me ajudar.

ROM
Contributor II
Contributor II
Author

Olá, Menta.

Agradeço pela dica.

Mas eu ainda sou muito iniciante, tive um pouco de dificuldade em aplicar a sua sugestão.

Acho interessante aprender as diferentes formas de se chegar ao mesmo resultado.