Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
diegoagoes
New Contributor II

Conjuntos

Olá pessoal, por favor, preciso de ajuda na tabela hipotética a seguir. Eu quero que na coluna “COMPRADOR” mostre apenas os nomes que também estão na coluna “VENDEDOR”, em outras palavras, desejo observar a relação de vendedores com compradores que também sejam vendedores. A tabela a seguir possui poucos dados, mas, em uma tabela com centenas de dados, não seria interessante selecionar um por um. Poderiam me ajudar com essa questão?

Vendedor

Valor

Comprador

João

500

André

300

Fernando

Pedro

600

João

500

José

300

Júlia

Mateus

700

Felipe

500

João

Carlos

800

Pedro

200

Mateus

100

Tiago

José

900

Mateus

400

Lucas

200

Fernando

Lucas

100

Felipe

300

Pedro

400

Ana

Tags (1)
1 Solution

Accepted Solutions
michellysodre
New Contributor III

Re: Conjuntos

diegogoes‌, segue noooovo exemplo rsrsrs...

Como falei, tem que ser via script essa solução, então segue exemplo.

Lógico que você precisará alterar para os campos chaves da sua base:

Vendas_Comprador:

LOAD * INLINE [

    VENDEDOR, Valor, COMPRADOR

    João, 500, André

    João, 300, Fernando

    Pedro, 600, João

    Pedro, 500, José

    Pedro, 300, Júlia

    Mateus, 700, Felipe

    Mateus, 500, João

    Carlos, 800, Pedro

    Carlos, 200, Mateus

    Carlos, 100, Tiago

    José, 900, Mateus

    José, 400, Lucas

    José, 200, Fernando

    Lucas, 100, Felipe

    Lucas, 300, Pedro

    Lucas, 400, Ana

];

Join(Vendas_Comprador)

Comprador_V:

LOAD

COMPRADOR,

'S' as Comparador_V //Vendedor e comprador

Resident Vendas_Comprador

where Exists(VENDEDOR,COMPRADOR)

Com o identificador 'S' você pode manipular da melhor forma criando a condição na tabela:

Teste_Comunidade.JPG

;

12 Replies
el_aprendiz111
Valued Contributor

Re: Conjuntos

Diego buenas tardes

este Script te puede servir:

TMP:
LOAD * Inline
[
Vendedor, Valor,    Comprador,
João, 500, André,
João, 300, Fernando,
Pedro,     600, João,
Pedro,     500, José,
Pedro,     300, Júlia,
Mateus,    700, Felipe,
Mateus,    500, João,
Carlos,    800, Pedro,
Carlos,    200, Mateus,
Carlos,    100, Tiago,
José, 900, Mateus,
José, 400, Lucas,
José, 200, Fernando,
Lucas,     100, Felipe,
Lucas,     300, Pedro,
Lucas,     400, Ana,
]
;


NoConcatenate

SUMARY:
LOAD 'Vendedor'  AS TP, Vendedor AS Nombre,Valor  Resident TMP;
LOAD 'Comprador' AS TP, Comprador AS Nombre,Valor  Resident TMP;


pvt.png

michellysodre
New Contributor III

Re: Conjuntos

Olá Amigo,

Veja se atende:

TESTE:

LOAD * INLINE [

    VENDEDOR, Valor, COMPRADOR

    João, 500, André

    João, 300, Fernando

    Pedro, 600, João

    Pedro, 500, José

    Pedro, 300, Júlia

    Mateus, 700, Felipe

    Mateus, 500, João

    Carlos, 800, Pedro

    Carlos, 200, Mateus

    Carlos, 100, Tiago

    José, 900, Mateus

    José, 400, Lucas

    José, 200, Fernando

    Lucas, 100, Felipe

    Lucas, 300, Pedro

    Lucas, 400, Ana

];

Vendedor_Comprador:

LOAD

VENDEDOR as Vendedor_C

Resident TESTE

;

Comprador_V:

LOAD

COMPRADOR as Comparador_V

Resident TESTE

where Exists(VENDEDOR,COMPRADOR)

;

Principal:

LOAD

VENDEDOR as Comparador_V,

*

resident TESTE;

DROP Table Vendedor_Comprador,TESTE;

Capturar.JPG

diegoagoes
New Contributor II

Re: Conjuntos

Pessoal, esqueci de avisar que estou usando o Sense! E gostaria de saber se haveria alguma expressão para isso que me proponho a fazer. E a ideia é a relação do vendedor com outros compradores que também sejam vendedores.

michellysodre
New Contributor III

Re: Conjuntos

diegogoes‌, Com o modelo enviado você consegue desenvolver no Sense sem precisar desenvolver expressões complexas. Para que possamos ajudar com expressão você precisa disponibilizar o modelo de dados, ou melhor, seu projeto QDF.

Sem isso fica complicado ajudar.

Abraço.

diegoagoes
New Contributor II

Re: Conjuntos

michellysodre, o modelo que você encaminhou faz o que eu consigo fazer por meio da seguinte expressão: if(VENDEDOR = COMPRADOR, VENDEDOR, 'Não se aplica”). Entretanto, assim como o seu script, ele irá mostrar a relação do “vendedor” com ele próprio quando comprador. Por causa dessa situação, surgiu a minha demanda.

michellysodre
New Contributor III

Re: Conjuntos

diegogoes‌ pode colocar pelo menos no Excel o que deseja? Enviar um print de como quer que os dados apareçam.

diegoagoes
New Contributor II

Re: Conjuntos

Entendo Michely. Segue os prints, fiz algumas alterações, você irá observar que somente “Fernando” seria comprador, mas não seria vendedor. No filtro do excel, basta eu fazer a exclusão do termo “Fernando”. Do mesmo modo isso seria no Sense, entretanto, trabalho com centenas de linhas, não é possível excluir “um por um” (tempo), por essa razão busco uma expressão. Quando eu excluo “Fernando” tenho de fato a relação de vendedores com compradores que também sejam vendedores.


Tabela com termo - Fernando.png



Tabela sem o termo - Fernando.png

srchagas
Contributor III

Re: Conjuntos

Porque voce precisa fazer isso no Layout ?

No Script e muito mais perfomatico e mais simples do que dicar fazendo If em  layout,

Sinceramente eu nao to entendo direito o que tu queres, desculpa, porque me parece uma coisa, mas agora ta parecendo outra...so me ajuda ve se eu entendi

Se tem o Fernando...que e vendedor....mas tambem foi comprador ( nao para ele mesmo para outra pessoa) , voce quer saber quando vendedor foi comprador..seria isso ?

diegoagoes
New Contributor II

Re: Conjuntos

Meu caro, foi isso que escrevi desde o primeiro post e nos demais. Relação entre vendedores e compradores. Sim, eu irei fazer isso via layout. O "if" conforme a leitura foi um exemplo para demonstrar que o que foi realizado via script é realizado também pela mesma expressão, ou seja, se for para ser mais simples e performático, acredito que a expressão é mais objetiva.