Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
EduardoAlexandredeFrancisco

Retornar Valores de datas anteriores a selecionada

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_COMPRACOLUNA_VALORAcumulado
01/01/201610
02/01/201621 + 2 =3
03/01/201611 + 2 + 1 =4
04/01/201621 + 2 + 1 + 2 = 6
05/01/201621 + 2 + 1 + 2 + 2 =8
06/01/201631 + 2 + 1 + 2 + 2 + 3 = 11
07/01/201601 + 2 + 1 + 2 + 2 + 3 + 0 = 11
08/01/201601 + 2 + 1 + 2 + 2 + 3 + 0 + 0 = 11
09/01/20162

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])

)

)

Labels (2)
1 Solution

Accepted Solutions
Anonymous
Not applicable

20 Replies
EduardoAlexandredeFrancisco
Author

O primeiro linlk da o seguinte erro:

Não Encontrado

O item não existe. Pode ter sido excluído.

Estou lendo o segundo.

nicolett_yuri

Esse é um velho bug da comunidade 😕

EduardoAlexandredeFrancisco
Author

O problema está quando eu seleciono apenas uma data no filtro. Ex.

DT_COMPRACOLUNA_VALORAcumulado
01/01/201610
02/01/201621 + 2 =3
03/01/201611 + 2 + 1 =4
04/01/201621 + 2 + 1 + 2 = 6

Após a seleção

DT_COMPRACOLUNA_VALORAcumulado
04/01/20162 2

*Sendo que o Correto é 6.

O Rangesum quando eu seleciono apenas uma data ele não me atende mais.

Anonymous
Not applicable

você esta selecionando a data por esse campo mesmo DT_COMPRA? ou você criou outro campo como filtro?

nicolett_yuri

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

EduardoAlexandredeFrancisco
Author

Rodrigo,

A partir do campo DT_Compra eu gero meu calendario.

Anonymous
Not applicable

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)




Anonymous
Not applicable

* não irá considerar esses campos no seu sum() , mas irá considerar no seu max(dt_compra)...