Qlik Community

Brasil

Announcements
Submit your remarkable customer story for the Global Transformation Awards at QlikWorld Denver 2022. SUBMIT A STORY
cancel
Showing results for 
Search instead for 
Did you mean: 
felripper
Contributor III
Contributor III

Soma Acumulada no Mês (Set Analysis)

Boa tarde,

Pessoal, preciso mostrar em um gráfico de linhas os seguintes temas:

  1. Soma Acumulada do Mês Atual; e
  2. Soma Acumulada do Mês Passado

Estou utilizando os seguintes sets analysis:

  1. Soma Acumulada do Mês Atual = rangesum(above(Sum({$<Mês={$(=Month(AddMonths(Max(data),0)))}>}valor)),0,RowNo())
  2. Soma Acumulada do Mês Passado = rangesum(above(Sum({$<Mês={$(=Month(AddMonths(Max(data),-1)))}>} valor)),0,RowNo())

Eixo x = Dias úteis

Eixo y: Valor

Problemas ?

  • Quando não temos valor no ponto o gráfico coloca o valor igual ao dia, por exemplo: 14/07 é um final de semana, logo não é um dia útil, mas ele está no gráfico com o valor 14; e
  • Não está acumulando.

bug.png

Labels (3)
1 Solution

Accepted Solutions
pablolabbe
Luminary Alumni
Luminary Alumni

O problema de não estar acumulando está nos parenteses

O rowno() deve ser um parametro do above e não do rangesum) do jeito que está ele está somante o resultado do sum + 0 + rowno(). Por isso que aparece um numero sequencial nos dias que não tem venda.

Tenta assim


  1. rangesum(above(Sum({$<Mês={$(=Month(AddMonths(Max(data),0)))}>}valor),0,RowNo()))
  2. Soma Acumulada do Mês Passado = rangesum(above(Sum({$<Mês={$(=Month(AddMonths(Max(data),-1)))}>} valor),0,RowNo()))

View solution in original post

5 Replies
pablolabbe
Luminary Alumni
Luminary Alumni

O problema de não estar acumulando está nos parenteses

O rowno() deve ser um parametro do above e não do rangesum) do jeito que está ele está somante o resultado do sum + 0 + rowno(). Por isso que aparece um numero sequencial nos dias que não tem venda.

Tenta assim


  1. rangesum(above(Sum({$<Mês={$(=Month(AddMonths(Max(data),0)))}>}valor),0,RowNo()))
  2. Soma Acumulada do Mês Passado = rangesum(above(Sum({$<Mês={$(=Month(AddMonths(Max(data),-1)))}>} valor),0,RowNo()))

View solution in original post

felripper
Contributor III
Contributor III
Author

Paulo, bom dia !

Muito obrigado pela ajuda !!!

Apareceu outro problema !!

O valor não pode ficar repetindo, como é possível resolver esse problema ?

erro.png

pablolabbe
Luminary Alumni
Luminary Alumni

Oi Felippe,

  O conceito dos gráficos acumulados é repetir os valores até o final do eixo. Talvez você consiga limitar isso testando com IF.   if (Dia <= $(=day(max(Day))), rangesum(above(Sum({$<Mês={$(=Month(AddMonths(Max(data),0)))}>}valor),0,RowNo())) )

felripper
Contributor III
Contributor III
Author

Pablo,

Essa script não funcionou e concordo contigo sobre as repetições dos valores, mas o cliente não quer.

glacielle
Contributor
Contributor

olá estou com um problema parecido eu gostaria de fazer um gráfico com o acumulado mes a mes,alguem saberia me dizer q função eu poderia usar por q usei o range sum porem esta calculando errado.