Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Olá.
Cenário:
Tenho uma tabela com 2 colunas Data e Valor. A coluna de valor tem que mostrar o acumulado até a data selecionada.
Exemplo:
DT_COMPRA | COLUNA_VALOR | Acumulado |
---|---|---|
01/01/2016 | 1 | 0 |
02/01/2016 | 2 | 1 + 2 =3 |
03/01/2016 | 1 | 1 + 2 + 1 =4 |
04/01/2016 | 2 | 1 + 2 + 1 + 2 = 6 |
05/01/2016 | 2 | 1 + 2 + 1 + 2 + 2 =8 |
06/01/2016 | 3 | 1 + 2 + 1 + 2 + 2 + 3 = 11 |
07/01/2016 | 0 | 1 + 2 + 1 + 2 + 2 + 3 + 0 = 11 |
08/01/2016 | 0 | 1 + 2 + 1 + 2 + 2 + 3 + 0 + 0 = 11 |
09/01/2016 | 2 | 1 + 2 + 1 + 2 + 2 + 3 + 0 + 0 + 2= 13 |
Problema
Quando eu não seleciono nada (nenhum data) está funcionando. O problema é quando seleciona apenas uma data. Ex. Se seleciono a data 04/01/2016 a coluna valor tem que mostrar 6, se seleciono 09/01/2016 a coluna valor tem que mostrar 13.
Como resolver?
Expressão:
Na coluna valor estou usando as seguinte expressões:
if(RowNo() <2, | |
//se for apenas uma coluna, retorna o acumulado até a data selecionada sum({<DT_COMPRA={"<=$(=DATE(MAX(DT_COMPRA)))"}>}VL_COMPRA), | |
//mostra a compra + acumulado Above(sum(VL_COMPRA),1)+Above([COLUNA_VALOR]) | |
) |
)
Veja se ajuda.
O primeiro linlk da o seguinte erro:
O item não existe. Pode ter sido excluído.
Estou lendo o segundo.
Esse é um velho bug da comunidade 😕
O problema está quando eu seleciono apenas uma data no filtro. Ex.
DT_COMPRA | COLUNA_VALOR | Acumulado |
---|---|---|
01/01/2016 | 1 | 0 |
02/01/2016 | 2 | 1 + 2 =3 |
03/01/2016 | 1 | 1 + 2 + 1 =4 |
04/01/2016 | 2 | 1 + 2 + 1 + 2 = 6 |
Após a seleção
DT_COMPRA | COLUNA_VALOR | Acumulado |
---|---|---|
04/01/2016 | 2 | 2 |
*Sendo que o Correto é 6.
O Rangesum quando eu seleciono apenas uma data ele não me atende mais.
você esta selecionando a data por esse campo mesmo DT_COMPRA? ou você criou outro campo como filtro?
Então você tem a opção de fazer acumulado via script ou com calendário asOf:
Exemplos de script: Re: Criar Acumulado Mensal
Exemplos de acumulado por expressão: Calculating rolling n-period totals, averages or other aggregations
Exemplo de Calendário AsOf: QlikView Blog Q-Tip #4 How to Use "As of Date" table | Natural Synergies
Rodrigo,
A partir do campo DT_Compra eu gero meu calendario.
então no teu set analysis adicione os campos que vc usa como filtro, ex:
sum({<DT_DIA, DT_MES, DT_ANO, DT_COMPRA={"<=$(=DATE(MAX(DT_COMPRA)))"}>}VL_COMPRA)
* não irá considerar esses campos no seu sum() , mas irá considerar no seu max(dt_compra)...