Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
dioneicm
New Contributor II

Dados excluídos pela seleção atual

Boa Tarde

Tenho

uma tabela Clientes

uma tabela produtos

uma tabela vendas

uma tabela representante

Ao selecionar um representante e um produto, quero que seja listado somente os clientes daquele representante que não compraram aquele produto.

Desculpe-me se não fui claro

sds

Tags (1)
1 Solution

Accepted Solutions
rvsilvestre
Contributor III

Re: Dados excluídos pela seleção atual

Não consegui abrir o qvw por que estou com a personal edition aqui... mas vc ja tentou usar P() e E() ?

(tirei do help do qlikview F1 - procure por set analysis ou analise de conjunto)

"Nesses casos, devem ser usadas as funções de elemento P() e E(), representando o conjunto de elementos de valores possíveis e os valores excluídos de um campo, respectivamente. Dentro dos parênteses, é possível especificar uma expressão de conjunto e um campo, por exemplo, P({1} Cliente). Essas funções não podem ser usadas em outras expressões:

Exemplos:

sum( {$<Cliente = P({1<Produto={‘Sapato’}>} Cliente)>} Vendas )
retorna as vendas para a seleção atual, mas somente para os clientes que já compraram o produto “Sapato”. Aqui, a função de elemento P( ) retorna uma lista de clientes possíveis; aqueles decorrentes da seleção ‘Sapato’ no campo Produto.

sum( {$<Cliente = P({1<Produto={‘Sapato’}>})>} Vendas )
é igual ao anterior. Se o campo na função de elemento for omitido, a função retornará os valores possíveis do campo especificado na atribuição externa.

sum( {$<Cliente = P({1<Produto={‘Sapato’}>} Fornecedor)>} Vendas )
retorna as vendas para a seleção atual, mas somente para os clientes que já forneceram o produto “Sapato”. Aqui, a função de elemento P( ) retorna uma lista de fornecedores possíveis; aqueles decorrentes da seleção ‘Sapato’ no campo Produto. Assim, a lista de fornecedores é usada como uma seleção no campo Cliente.

sum( {$<Cliente = E({1<Produto={‘Sapato’}>})>} Vendas )
retorna as vendas para a seleção atual, mas somente para os clientes que nunca compraram o produto “Sapato”. Aqui, a função de elemento E( ) retorna a lista de clientes excluídos; aqueles excluídos pela seleção ‘Sapato’ no campo Produto.

"

ficaria algo tipo

sum({$<Cliente = E({Produto}) >} valor)

11 Replies
srchagas
Contributor III

Re: Dados excluídos pela seleção atual

Boas amigo

isso ai na verdade vai depender da sua consulta, tentar usar um Set analysis, existe alguma relação entre representante e o produto?

dioneicm
New Contributor II

Re: Dados excluídos pela seleção atual

Não existe relação direta do representante com produtos

as relações das tabelas são :

codigo representante ---> clientes

codigo do produto --------> vendas

codigo do cliente ---------> vendas

Obrigado!

rphpacheco
Contributor III

Re: Dados excluídos pela seleção atual

Boa tarde Dionei.

Seria melhor se você pudesse postar um QVW exemplo para analisarmos a construção das suas tabelas.

Att,

dioneicm
New Contributor II

Re: Dados excluídos pela seleção atual

Bom dia

Segue qvw similar com estrutura que tenho.

O que quero é que seja listado os clientes que não compraram determinado produto.

Para o teste favor selecionar:

Ano = 2012

Representante = Santos

Produtos = Coifa

Na tabela positivação teria que aparecer os clientes que não compraram coifa do representante Santos em 2012.

Obs: tenho qlikvew personal edition. Não sei se consiguiram abrir o arquivo.

sds

dioneicm
New Contributor II

Re: Dados excluídos pela seleção atual

Bom dia

Enviei arquivo para testes

sds

rphpacheco
Contributor III

Re: Dados excluídos pela seleção atual

Bom dia Dionei.

Inclua a expressão

SUM({1-$<[REPRESENTANTE NOME]={'SANTOS'}>} [PEDIDO QUANTIDADE])

Anexei um QVW para você visualizar melhor

Vê se é isso que você quer fazer.

Abs

srchagas
Contributor III

Re: Dados excluídos pela seleção atual

Bom dia Dionei,

O problema basico ai é vinculo da Chave Codigo do Produto (dentro de pedido) com o Codigo de Produto (Produto) se você tirar esse vinculo colocando no load

LOAD [PEDIDO NUMERO],

     Year([PEDIDO EMISSAO])AS ANO,

     [CLIENTE CODIGO],

     [PRODUTO CODIGO] as Codigo_Prod_pedido,

     [PEDIDO QUANTIDADE]

FROM

VENDAS.xlsx

(ooxml, embedded labels, table is Plan1);

você já consegue pegar tudo ai no caso do jeito que você quer

isso e jeito feio de se fazer.

o que você pode fazer é no momento no LOAD , cria uma tabela segunda tabela e compara usando "Not exists" tudo que não existir entre vinculo de Codigo Produto( Produto) e Codigo Produto ( Pedido) e usar essa tabela no Grafico.

não se ficou muito claro, qualquer coisa avisa, te outro jeito mas nao to achando aqui como faz, assim que eu achar meu exemplo aqui até posto.

rphpacheco
Contributor III

Re: Dados excluídos pela seleção atual

Seguinte... Esqueci que você quer filtrar os clientes que não compraram o fornecedor selecionado. Sendo assim a expressão será essa:

SUM({1-$<[REPRESENTANTE NOME]={$(=GetFieldSelections([REPRESENTANTE NOME]))}>} [PEDIDO QUANTIDADE])

Acho que é isso aí

dioneicm
New Contributor II

Re: Dados excluídos pela seleção atual

Obrigado!

Mas gostaria que fosse listado somente os clientes do representante selecionado que não compraram determinado produto. Na forma que você passou ele traz sim os clientes que não compraram o produto, mas os clientes de todos os representantes. Eu gostaria de listar somente os clientes que não compraram o produto do representante que selecionei.

Obrigado