Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
pauloandre
Creator II
Creator II

problemas com função acumulada

Prezados,

possuo uma tabela simples usando como dimensão mes/ano e com 4 expressões: soma de realizado, soma de previsto, acumulado do previsto e acumulado do realizado. Porém o cliente deseja que o acumulado do realizado pare quando houver a ultima informação do realizado, alguém poderia me ajudar a solucionar esse problema???

em anexo uma imagem da tabela

1 Solution

Accepted Solutions
fernando_tonial
Partner - Specialist
Partner - Specialist

Nesse exemplo que passei irá mostrar o mesmo valor para os demais meses do ano de 2013.

Você quer até o mês de set/2013, para os demais meses do ano você quer mostrar valor 0.

Para isso é necessário um Flag por mês e ao invés do flag por dia.

depois pode fazer a seguinte expressão.

RangeSum(Above(

Sum(Valor_Realizado)

,0,RowNo())) * Flg_Mes_Realizado

Para esse caso é necessário garantir que tenha apenas um valor do campo Flg_Mes_Realizado para cada um dos meses do ano.

Abraços.

Tonial.

Don't Worry, be Qlik.

View solution in original post

5 Replies
fernando_tonial
Partner - Specialist
Partner - Specialist

Olá Paulo, Faça dois campos flag em sua dimensão de calendário, um para dias ou meses já realizados e outro para os projetados, depois faça a multiplicação dos valores pelos flags.

Ex.:

Sum(Valor_Realizado * Flg_Realizado)

Sum(Valor_Projetado * Flg_Projetado)

Exemplo de como criar os flags, colocando valores 0 ou 1.

If(Data<='$(vHoje)',1,0) as FlgRealizado,

    If(Data>'$(vHoje)',1,0)    _as FlgProjetado,

Abraços.

Tonial.

Don't Worry, be Qlik.
pauloandre
Creator II
Creator II
Author

Tonial,

incluindo essa flag vai fazer a função de Acumular parar na data escolhida??

na imagem anexada na mensagem anterior, quero que a ultima expressão só apresente valor até set/2013

Paulo André

fernando_tonial
Partner - Specialist
Partner - Specialist

Nesse exemplo que passei irá mostrar o mesmo valor para os demais meses do ano de 2013.

Você quer até o mês de set/2013, para os demais meses do ano você quer mostrar valor 0.

Para isso é necessário um Flag por mês e ao invés do flag por dia.

depois pode fazer a seguinte expressão.

RangeSum(Above(

Sum(Valor_Realizado)

,0,RowNo())) * Flg_Mes_Realizado

Para esse caso é necessário garantir que tenha apenas um valor do campo Flg_Mes_Realizado para cada um dos meses do ano.

Abraços.

Tonial.

Don't Worry, be Qlik.
pauloandre
Creator II
Creator II
Author

Tonial,

Partindo da sua idéia, fiz da seguinte forma e deu certo:

- criar uma coluna de flag com a seguinte expressão (teste2)

if(sum({<DATA_ATUAL=, DATA_ATUAL_ANO=, DATA_ATUAL_MES=, DATA_ATUAL_DIA=,

DATA_ATUAL_MES_ANO={'<=$(=max(date('$(vD1)')))'} >} 1)>0,1,0)

onde vD1=data de referência

- em seguida criei a seguinte expressão

if(teste2=1,

RangeSum(Above(

Sum({<DATA_ATUAL=, DATA_ATUAL_ANO=, DATA_ATUAL_MES=, DATA_ATUAL_DIA=>} PROD_REALIZADA_TOTAL)

,0,RowNo())),

null())

com isso o acumulado para quando se atinge o último dia!!!

Obrigado pela dica

fernando_tonial
Partner - Specialist
Partner - Specialist

Ótimo Paulo.

Abraços.

Tonial.

Don't Worry, be Qlik.