Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Olá, pessoal.
Alguém pode me ajudar, como faço para criar uma nova coluna que transforme
Código | Situação |
43 | UMA |
44 | B |
44 | UMA |
45 | UMA |
45 | B |
46 | UMA |
47 | UMA |
47 | UMA |
48 | UMA |
48 | B |
48 | B |
48 | UMA |
49 | B |
49 | UMA |
49 | UMA |
em
Código | Situação | NOVA COLUNA |
43 | UMA | UMA |
44 | B | B |
44 | UMA | B |
45 | UMA | B |
45 | B | B |
46 | UMA | UMA |
47 | UMA | UMA |
47 | UMA | UMA |
48 | UMA | B |
48 | B | B |
48 | B | B |
48 | UMA | B |
49 | B | B |
49 | UMA | B |
49 | UMA | B |
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.
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;
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.
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?
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);
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;
Output:
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;
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.
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.
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.