Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
dioneicm
Contributor III
Contributor III

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

1 Solution

Accepted Solutions
Anonymous
Not applicable

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)

View solution in original post

11 Replies
srchagas
Creator III
Creator III

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
Contributor III
Contributor III
Author

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
Creator III
Creator III

Boa tarde Dionei.

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

Att,

dioneicm
Contributor III
Contributor III
Author

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
Contributor III
Contributor III
Author

Bom dia

Enviei arquivo para testes

sds

rphpacheco
Creator III
Creator III

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
Creator III
Creator III

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
Creator III
Creator III

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
Contributor III
Contributor III
Author

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