Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Tenho uma tabela semelhante a essa:
(a tabela tem mais milhares de linhas, mas coloquei um pedaço para exemplificar)
ID | DATA | CLIENTE | VALOR | TOTAL |
1 | 2018-02-21 00:00:00.000 | CLIENTE1 | R$ 1.575,00 | R$ 8.024,07 |
1 | 2018-02-21 00:00:00.000 | CLIENTE1 | R$ 744,21 | R$ 8.024,07 |
1 | 2018-02-21 00:00:00.000 | CLIENTE1 | R$ 2.554,86 | R$ 8.024,07 |
1 | 2018-02-21 00:00:00.000 | CLIENTE1 | R$ 3.150,00 | R$ 8.024,07 |
2 | 2018-02-21 00:00:00.000 | CLIENTE2 | R$ 687,33 | R$ 9.098,00 |
2 | 2018-02-21 00:00:00.000 | CLIENTE2 | R$ 687,33 | R$ 9.098,00 |
2 | 2018-02-21 00:00:00.000 | CLIENTE2 | R$ 687,34 | R$ 9.098,00 |
2 | 2018-02-21 00:00:00.000 | CLIENTE2 | R$ 1.172,66 | R$ 9.098,00 |
2 | 2018-02-21 00:00:00.000 | CLIENTE2 | R$ 1.172,66 | R$ 9.098,00 |
2 | 2018-02-21 00:00:00.000 | CLIENTE2 | R$ 1.172,67 | R$ 9.098,00 |
2 | 2018-02-21 00:00:00.000 | CLIENTE2 | R$ 1.172,67 | R$ 9.098,00 |
2 | 2018-02-21 00:00:00.000 | CLIENTE2 | R$ 1.172,67 | R$ 9.098,00 |
2 | 2018-02-21 00:00:00.000 | CLIENTE2 | R$ 1.172,67 | R$ 9.098,00 |
Só para entenderem a situação. Eu quero calcular a variação de porcentagem entre transações.
Pra isso eu queria ter soma de "VALOR" de acordo com "CLIENTE".
Total representa o valor da transação completa, de acordo com o ID.
Tentei a formula: SUM(AGGR(MAX(DTBORDERO),VALOR))
Mas, me trouxe um numero bilionário e irreal.
Tentei também sem o SUM, mas não retornou valor nenhum.
Eu quero trazer a soma dos valores com a maior data, porque há mais transações de um mesmo cliente em datas diferentes.
Então quero calcular a mais recente com a primeira transação, por exemplo.
Se puderem me ajudar com ideias.
Sou novo no QLIK.
Obs. Uso o QlikCloud
Obrigado.
Com esse script:
TABELA_TEMP:
LOAD * INLINE [
ID, DATA, CLIENTE, VALOR, TOTAL
1, 22/02/2018, CLIENTE1,'1.575,00','8.024,07'
1, 23/02/2018, CLIENTE1,'744,21','8.024,07'
1, 24/02/2018, CLIENTE1,'2.554,86','8.024,07'
1, 25/02/2018, CLIENTE1,'3.150,00','8.024,07'
2, 26/02/2018, CLIENTE2,'687,33','9.098,00'
2, 27/02/2018, CLIENTE2,'687,33','9.098,00'
2, 28/02/2018, CLIENTE2,'687,34','9.098,00'
2, 21/02/2018, CLIENTE2,'1.172,66','9.098,00'
2, 21/02/2018, CLIENTE2,'1.172,66','9.098,00'
2, 21/02/2018, CLIENTE2,'1.172,67','9.098,00'
2, 21/02/2018, CLIENTE2,'1.172,67','9.098,00'
2, 21/02/2018, CLIENTE2,'1.172,67','9.098,00'
2, 21/02/2018, CLIENTE2,'1.172,67','9.098,00'
];
FINAL:
LOAD
*,
Num(If(Peek(ID)=ID,VALOR/Peek(VALOR),0),'###,00 %') as VARIACAO
Resident TABELA_TEMP ORDER BY ID,DATA;
DROP Table TABELA_TEMP;
Obtive esse resultado:
Hudson,
É isso?
Expressão:
sum(VALOR)/sum(ALL <DATA> VALOR)
ou por Cliente:
sum(VALOR)/sum(ALL <CLIENTE> VALOR)
Thiago,
Obrigado pela ajuda.
Não é isso, mas você me deu uma idéia.
Essa tabela é minha base de dados. Eu não tenho ela no qlik montada como você fez.
Cada ID representa um titulo de FIDC, o total é o montante do titulo.
O valor é de acordo com a quantidade que cada cliente pagou desse montante.
Eu queria fazer a representação de acordo com o valor total.
A soma do Valor é semrpe igual ao Total.
Então, eu queria fazer a representação de acordo com o ID ou o Total.
Por exemplo.
Cliente vendeu um titulo no valor de 10k, depois vendeu um titulo de 20k.
Então eu queria mostrar a porcentagem de aumento de acordo com o passar do tempo.
Se ele tá negociando mais ou menos de acordo com as anteriores.
Com esse script:
TABELA_TEMP:
LOAD * INLINE [
ID, DATA, CLIENTE, VALOR, TOTAL
1, 22/02/2018, CLIENTE1,'1.575,00','8.024,07'
1, 23/02/2018, CLIENTE1,'744,21','8.024,07'
1, 24/02/2018, CLIENTE1,'2.554,86','8.024,07'
1, 25/02/2018, CLIENTE1,'3.150,00','8.024,07'
2, 26/02/2018, CLIENTE2,'687,33','9.098,00'
2, 27/02/2018, CLIENTE2,'687,33','9.098,00'
2, 28/02/2018, CLIENTE2,'687,34','9.098,00'
2, 21/02/2018, CLIENTE2,'1.172,66','9.098,00'
2, 21/02/2018, CLIENTE2,'1.172,66','9.098,00'
2, 21/02/2018, CLIENTE2,'1.172,67','9.098,00'
2, 21/02/2018, CLIENTE2,'1.172,67','9.098,00'
2, 21/02/2018, CLIENTE2,'1.172,67','9.098,00'
2, 21/02/2018, CLIENTE2,'1.172,67','9.098,00'
];
FINAL:
LOAD
*,
Num(If(Peek(ID)=ID,VALOR/Peek(VALOR),0),'###,00 %') as VARIACAO
Resident TABELA_TEMP ORDER BY ID,DATA;
DROP Table TABELA_TEMP;
Obtive esse resultado:
Cara, desculpa minha mudança de ideia.
Mas, mesmo se desse certo, ficaria dificil a leitura.
Pensei em fazer da seguinte forma:
Separei por data da negociação e dentro dela o total e o campo que eu gostaria de colocar a variação de % de acordo com o valor anterior.
Então, no 15/01/2018 eu queria colocar a porcentagem de aumento com relação a data anterior.
Tentei algumas formulas, mas não consegui nada.
Obrigado mais uma vez pela ajuda.
Hudson,
Essa discussão foi resolvida aqui? Duvida - SUM com AGGR // FirstSortedValue
Se sim, por favor, feche esta também para mantermos a comunidade atualizada acerca das questões já resolvidas.
Abs e Sucesso!