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: 
diegoagoes
Contributor II
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

1 Solution

Accepted Solutions
michellysodre
Contributor III
Contributor III

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

;

View solution in original post

12 Replies
el_aprendiz111
Specialist
Specialist

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

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

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

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

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

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

diegoagoes
Contributor II
Contributor II
Author

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

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

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.