Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Pessoal, boa tarde.
Tenho uma duvida, e gostaria da ajuda de vocês. No excel eu consigo fazer isso tranquilamente, mas quando tentei fazer no Qlik Sense, estou com dificuldades
Eu tenho uma tabela com da seguinte maneira
| Item NF | Pedido | Item Pedido | Valor | ||
|---|---|---|---|---|---|
| 5100184666/000001/2017 | 4500000072 |
|
| ||
| 5100185702/000001/2017 | 4500000072 |
| 2550,71 | ||
| 5100185701/000001/2017 | 4500000072 |
| 3772,03 |
Meu objetivo é criar uma coluna adicional que vai me informar o 'range' de valor que a coluna 'Pedido' se enquadra, por exemplo:
| Pedido | Valor | Range |
|---|---|---|
| 4500000072 | 6.322,74 | > 5K |
Meu maior problema é em conseguir criar a coluna 'Valor' para somar enquanto tiver o Pedido '4500000072', pois sei que a coluna 'Range' é um 'If'
Olá Atila,
Para o que você quer, ficaria melhor se fosse um IntervalMatch() se entendi direito.
Segue um exemplo abaixo:
Dados:
Load * Inline
[
Item NF, Pedido, Item Pedido, Valor
5100184666/000001/2017 ,4500000072 ,1,0
5100185702/000001/2017 ,4500000072 ,1,2550
5100185701/000001/2017 ,4500000072 ,1,3772
5100185705/000001/2017 ,4500000072 ,1,9999
];
DePara:
Load * Inline
[
De,Para,Desc
0,4999,Menor que 5k
5000,10000,Maior que 5k
];
IntervalMatch(Valor)
Left join (Dados)
Load
De,
Para
Resident DePara;
left join(Dados)
Load
De,
Para,
Desc
Resident DePara;
drop fields De,Para from Dados;
drop table DePara;
Que dá o seguinte:

Boa tarde,
Não sei se entendi direito, mas segue um exemplo

Olá Atila,
Para o que você quer, ficaria melhor se fosse um IntervalMatch() se entendi direito.
Segue um exemplo abaixo:
Dados:
Load * Inline
[
Item NF, Pedido, Item Pedido, Valor
5100184666/000001/2017 ,4500000072 ,1,0
5100185702/000001/2017 ,4500000072 ,1,2550
5100185701/000001/2017 ,4500000072 ,1,3772
5100185705/000001/2017 ,4500000072 ,1,9999
];
DePara:
Load * Inline
[
De,Para,Desc
0,4999,Menor que 5k
5000,10000,Maior que 5k
];
IntervalMatch(Valor)
Left join (Dados)
Load
De,
Para
Resident DePara;
left join(Dados)
Load
De,
Para,
Desc
Resident DePara;
drop fields De,Para from Dados;
drop table DePara;
Que dá o seguinte:

Felipe, obrigado de novo pela resposta, mas na verdade ainda não seria exatamente isso que preciso.
Seguindo exatamente o seu exemplo, o objetivo é que a coluna 'Valor' tenha a soma dos pedidos, entende?
Na verdade, eu nao sei ao certo se consigo fazer o que preciso.
Usando o excel, por exemplo, eu faria uma tabela dinamica e colocaria os meus pedidos em uma coluna e valores em outra. Criaria a coluna com os Ranges que gostaria, e teria a tabela. Feito isso, criaria uma tabela adicional para contar <5K ou contar >5K, assim como, somar <5K e somar >5K, pra ter o seguinte resultado final:
| Range | Qtde Pedidos | Valor Pedido |
|---|---|---|
| <5K | 1 | 6.000,00 |
| >5K | 1 | 100.000,00 |
Não sei se estou sendo muito claro, mas estou aqui para eventuais duvidas
Obrigado amigo.
na verdade, é isso que preciso fazer, porem, a coluna 'Range', precisaria se tornar um filtro ou uma variavel, talvez.
Porque meu resultado final, é contar o numero de pedidos que tem >5K
Atila,
Acredito que consegue manipulando o script.
Fiz um teste, mas como não sei pelo que você pretende agrupar, coloquei por Item NF, mas ai fica a seu critério:
TesteComunidade:
Load * Inline
[
Item NF, Pedido, Item Pedido, ValorP
5100184666/000001/2017 ,4500000072 ,1,0
5100185702/000001/2017 ,4500000072 ,1,2550
5100185701/000001/2017 ,4500000072 ,1,3772
5100185705/000001/2017 ,4500000072 ,1,9999
5100185702/000002/2017 ,4500000072 ,2,2550
5100185701/000002/2017 ,4500000072 ,4,3772
5100185705/000002/2017 ,4500000072 ,3,9999
];
join
LOAD
[Item NF],
sum(ValorP) as Valor_Range,
if(sum(ValorP)>5000,'>5k','<5k') as Range
Resident TesteComunidade Group by [Item NF]
Fazendo a agregação com o exemplo que passei, ficaria algo como o seguinte:

Felipe,
Depois de algum tempo, consegui fazer como você me falou.
Obrigado pela ajuda.
Que bom que te ajudou
.
Felipe,
Aproveitando a sua ajuda, finalizei a carga e fiz alguns ajustes, conforme a minha necessidade, porem, tem um unico resultado estranho
Se puder me ajudar
Coloquei as classificações:
DePara1:
Load * Inline
[
De,Para,Desc
0,4999.99,Menor que 5k
5000.00,10000.00,Entre 5K e 10K
10000.01,50000.00,Entre 10K e 50K
50000.01,100000.00,Entre 50K e 100K
100000.01,500000.00,Entre 100K e 500K
500000.01,1000000.00,Entre 500K e 1MM
1000000.01,99999999,Acima de 1MM
];
Deu muito certo, porém, um unico pedido nao classificou. Eu achei o pedido, mas nao sei porque ele nao classificou.
Veja que quando eu coloco o 'Filtro' ele nao aparece o '-'

Consigo debugar somente essa PO pra tentar entender por que nao classificou corretamente?