Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Em uma tabela que precisa estar na ordem decrescente de data, preciso incluir uma coluna com os valores acumulados, partindo do princípio que esse acúmulo deve acontecer de baixo para cima. Como no modelo abaixo:
Data, Valor,Acumulado
05/01/2018,20,90
04/01/2018,20,70
03/01/2018,10,50
02/01/2018,30,40
01/01/2018,10,10
Em ordem crescente, consigo fazer isso tranquilamente, bastando aplicar um RangeSum(Above(total sum(Valor), 0, RowNo(TOTAL))). Só que isso exige que a data esteja sempre em ordem crescente na tabela.
Alguém aqui já se deparou com algo similar, conseguindo um cálculo que permita a situação do modelo que coloquei aqui? E melhor, mantendo isso, independente se está ou não em ordem decrescente. De forma que, por exemplo, a data de 04/01/2018 esteja sempre com o valor 70, independente se a data está em ordem crescente ou decrescente?
Você pode usar AGGR para forçar a ordenação, dessa maneira não importa como esteja a ordenação da sua tabela, o que vai valer é a ordenação gerada pela função AGGR;
Um exemplo de aggr:
sum(
aggr(
above(sum([Valor]))
, Data
, (Data, (NUMERIC, DESCENDING))
)
)
Olá, Yuri
No modelo simples que fiz aqui, implementado no Qlikview, com base nos mesmos dados que compartilhei, consegui utilizando a seguinte expressão:
sum(
aggr(
RangeSum(Below(Total sum(Valor),0,Data))
,Data
,(Data,(NUMERIC, DESCENDING))
)
)
No entanto, ao adaptar para a aplicação final, no Qlik Sense, não deu certo (os dados aparecem, mas sem o acúmulo esperado). Na tabela em questão, tenho tanto a coluna da data quanto a coluna com a expressão. Aqui, chama a atenção também que NUMERIC, DESCENDING estão sem cor, aparentemente indicando não ter função alguma aqui (não sei se no Sense seria diferente do Qlikview nesse caso):
O que pode estar acontecendo?