Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Filtrar registros.

Bom dia, estou com uma duvida sobre algo que me parece ser simples de resolver, tenho uma listagem de recursos de produtos, e  existem vários registros de recursos para cada produto, nessa tabela quero que caso o produto 'X' tiver o recurso 'Y' não traga nenhum registro desse produto as invés de não trazer apenas os registros que contém o recurso 'Y'.

Na tabela abaixo estou filtrando o produto EM16, no caso ele tem o recurso 'GALV', o que quero é que caso o produto tenha esse

recurso não traga nenhum registro do mesmo na tabela. Resumindo, se o produto EM16 tiver o recurso GALV, a tabela tem que ficar zerada. Qualquer duvida estou a disposição.

Sem título.png

1 Solution

Accepted Solutions
fernando_tonial
Partner - Specialist
Partner - Specialist

Olá,

Você pode utilizar o Operador implícito da análise de conjunto E().

Count({$<CodProd=E({1<CodRecurso={'GALV'}>} CodProd)>} CodProd)

Don´t worry,

Be Qlik.

Tonial.

Don't Worry, be Qlik.

View solution in original post

8 Replies
nicolett_yuri

Marcos, você pode fazer isso de algumas maneiras:

A primeira você removeria os registros dos produtos que possuem esse recurso, por exemplo:

Produtos_Recurso_Galv:

LOAD

DISTINCT COD_PRODUTO

RESIDENT TABELA

WHERE COD_RECURSO = 'GALV'

Produtos:

LOAD

COD,

COD_PRODUTO,

PRODUTO,

COD_RECURSO (etc,etcetc...)

RESIDENT TABELA2

WHERE NOT Exists(COD_PRODUTO)

A segunda você apenas incluir um FLAG na tabela indicador que esse produto não deve aparecer, desta forma você trata isso no gráfico.

Produtos:

LOAD

COD,

COD_PRODUTO,

PRODUTO,

COD_RECURSO (etc,etcetc...)

RESIDENT TABELA2;

LEFT JOIN

LOAD

DISTINCT COD_PRODUTO,

'REMOVE' as FLG_REMOVE_PRODUTO

RESIDENT TABELA

WHERE COD_RECURSO = 'GALV'

nicolett_yuri

Depois basta utilizar essa coluna "FLG_REMOVE_PRODUTO" para decidir se o produto será ou não utilizado.

Fica mais fácil.

Uma terceira maneira, sem nenhuma tratativa de script, é criar uma dimensão calculada com a regra

if(COD_RECURSO = 'GALV', PRODUTO) e marcar a regra "Ocultar quando o valor for nulo".

fernando_tonial
Partner - Specialist
Partner - Specialist

Olá,

Você pode utilizar o Operador implícito da análise de conjunto E().

Count({$<CodProd=E({1<CodRecurso={'GALV'}>} CodProd)>} CodProd)

Don´t worry,

Be Qlik.

Tonial.

Don't Worry, be Qlik.
Not applicable
Author

Fernando, não conheço Set Analysis ainda, porém inclui na minha tabela como dimensão o código que você me passou da seguinte forma:

=Aggr(Count({$<CodProd=E({1<CodRecurso={'GALV', 'PT01'}>} CodProd)>} CodProd), CodProd)

Depois marquei a opção ocultar valores nulos e ele deixou de trazer os produtos que tinham os recursos 'GALV' e 'PT01', agora só não tenho certeza se fiz da forma correta.

Not applicable
Author

Analisei melhor aqui o exemplo que você me mando e funcionou também, obrigado.

Not applicable
Author

Estava testando aqui e verifiquei que não está sendo possível filtrar as informações pelo código do produto, indiferente de eu clicar ou selecionar em um caixa de seleção ele fica como se estivesse travado, já pelas outras dimensões está filtrando normalmente.

Obs: Resolvi utilizando um CodProd2  na tabela, ao invés do que está sendo utilizado na expressão.

fernando_tonial
Partner - Specialist
Partner - Specialist

Altere o identificador 1 por $.

No lugar de:

E({1<CodRecurso={'GALV', 'PT01'}>} CodProd)>}

Altere por:

E({$<CodRecurso={'GALV', 'PT01'}>} CodProd)>}

e veja se funciona.

Don´t worry,

Be Qlik.

Tonial.

Don't Worry, be Qlik.
Not applicable
Author

Boa tarde, Fernando, não resolveu, mas isso não é problema pois utilizando um código auxiliar funcionou normalmente, outra coisa, caso eu quiser fazer o procedimento contrario, ou seja, mostrar apenas os produtos que não contenham os recursos GALV e PT01 como ficaria a sintaxe, ou teria que utilizar outro método? Obrigado, qualquer duvida estou a disposição.