Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Como fazer um procv no Qlik Sense

Prezados,

Estou a procura de uma solução onde eu possa validar uma linha da tabela (colunas concatenadas) a partir de uma outra tabela contendo as regras desta validação.

Pelo excel, eu consigo fazer usando o procv, já pelo Qlik não encontrei uma maneira.

Exemplo:

Se a informação de uma coluna na tabela de dados constar na tabela de regras, ela deverá retornar a informação Sim, caso contrário, Não.

Espero ter deixado claro minha dúvida.

Desde já agradeço

Att

Fabricio

7 Replies
MarcoARaymundo
Creator III
Creator III

Tente usar uma tabela mapeada.

PROCV:

MAPPING LOAD

     Chave,

     Retorno

FROM AlgumLugar;

Na outra tabela faz assim:

OUTRATABELA:

LOAD

     ApplyMap('PROCV', Chave, 'ERRO')               as MeuRetorno

FROM AlgumLugar\Tabela2;

isaiasdd
Creator
Creator

Você pode tentar usar a função Exists.

Exists - função de script ‒ Qlik Sense

Ou a função lookup.

LookUp - função de script ‒ Qlik Sense

No seu caso acho que a função Exists com where seria o ideal.

Not applicable
Author

Marco, fiz algumas tentativas e não consegui chegar no resultado esperado, abaixo segue minha última tentativa:

PROCV:

Mapping LOAD

    Regras,

    "Variáveis de referência"

FROM [lib://Regras/Variaveis_ref_producao.xlsx]

(ooxml, embedded labels, table is Variaveis_ref_producao);

LIB CONNECT TO 'Oracle_172.18.4.28';

LOAD PROJETO,

NOME,

ALINHAMENTO,

UO,

UNIDADE,

COD_PROGRAMA,

PROGRAMA,

COD_ATIVIDADE,

ATIVIDADE,

COD_MODALIDADE,

MODALIDADE,

COD_REALIZACAO,

[REALIZAÇÃO],

COD_SUBREALIZACAO,

SUBREALIZACAO,

[COD_UNIDADEPRODUÇÃO],

[UNIDADEPRODUÇÃO],

[COD_SUBUNIDADEPRODUÇÃO],

[SUBUNIDADEPRODUÇÃO],

CATEGORIA,

MES,

MES_ANO,

VALOR as TOTAL,

    ApplyMap('PROCV', Regras, '_NÃO POSSUI_') as Soma_Variaveis_referencia;

[BI_PRODUCAOPREV]:

SELECT "PROJETO",

"NOME",

"ALINHAMENTO",

"UO",

"UNIDADE",

"COD_PROGRAMA",

"PROGRAMA",

"COD_ATIVIDADE",

"ATIVIDADE",

"COD_MODALIDADE",

"MODALIDADE",

"COD_REALIZACAO",

"REALIZAÇÃO",

"COD_SUBREALIZACAO",

"SUBREALIZACAO",

"COD_UNIDADEPRODUÇÃO",

"UNIDADEPRODUÇÃO",

"COD_SUBUNIDADEPRODUÇÃO",

"SUBUNIDADEPRODUÇÃO",

"CATEGORIA",

"MES",

"MES_ANO",

"VALOR"

FROM "GX_PRODUCAOSESC"."BI_PRODUCAOPREV";

LOAD MES,

MES_ANO,

PROJETO,

NOME,

ALINHAMENTO,

UO,

UNIDADE,

COD_PROGRAMA,

PROGRAMA,

COD_ATIVIDADE,

ATIVIDADE,

COD_MODALIDADE,

MODALIDADE,

COD_REALIZACAO,

[REALIZAÇÃO],

COD_SUBREALIZACAO,

SUBREALIZACAO,

[COD_UNIDADEPRODUÇÃO],

[UNIDADEPRODUÇÃO],

[COD_SUBUNIDADEPRODUÇÃO],

[SUBUNIDADEPRODUÇÃO],

CATEGORIA,

TOTAL,

    ApplyMap('PROCV', Regras, '_NÃO POSSUI_') as Soma_Variaveis_referencia;

[BI_PRODUCAOREAL]:

SELECT "MES",

"MES_ANO",

"PROJETO",

"NOME",

"ALINHAMENTO",

"UO",

"UNIDADE",

"COD_PROGRAMA",

"PROGRAMA",

"COD_ATIVIDADE",

"ATIVIDADE",

"COD_MODALIDADE",

"MODALIDADE",

"COD_REALIZACAO",

"REALIZAÇÃO",

"COD_SUBREALIZACAO",

"SUBREALIZACAO",

"COD_UNIDADEPRODUÇÃO",

"UNIDADEPRODUÇÃO",

"COD_SUBUNIDADEPRODUÇÃO",

"SUBUNIDADEPRODUÇÃO",

"CATEGORIA",

"TOTAL"

FROM "GX_PRODUCAOSESC"."BI_PRODUCAOREAL";

Porém deu o seguinte erro:

Ocorreram os seguintes erros:

Field 'Regras' not found

O erro ocorreu aqui:

?

Os dados não foram carregados. Solucione o erro e tente carregar novamente.

MarcoARaymundo
Creator III
Creator III

Tenta este exemplo:

TMP:

LOAD * INLINE [

DATA, NOME, CHAVE

20170904,FULANO,A

20170904,CICLANO,C

20170904,BELTRANO,B

];

PROCV:

MAPPING LOAD * INLINE [

CHAVE, REGRA

A,EXCLUIR

B,ALTERAR

C,ENVIAR

];

TABELA:

NoConcatenate

LOAD

DATA,

NOME,

ApplyMap('PROCV', CHAVE, 'XXXX') as ProcvResposta

RESIDENT TMP;

DROP TABLE TMP;

Clever_Anjos
Employee
Employee

Qual seria o equivalente no procv ao primeiro parâmetro?

Realmente você não tem um Campo chamado "Regras", qual deveria ser mapeado

É esse que deveria vir aqui

ApplyMap('PROCV', PARAMETRO_PESQUISA_PRIMEIROPARAMETRODOPROCV, '_NÃO POSSUI_') as Soma_Variaveis_referencia

MarcoARaymundo
Creator III
Creator III

Bom dia!

Clever as tabelas mapeadas funcionam retornando um valor se a chave enviada for verdadeira.

Se você quer trazer outras colunas, o melhor é criar uma chave que una as tabelas e assim você terá acesso a todos os campos disponíveis entre as tabelas vinculadas.

Clever_Anjos
Employee
Employee

Eu estava perguntando ao Fabricio, eu conheço o funcionamento do applymap()