Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Calculos em Pivot Tables

Viva!

Estou com dificuldade em perceber porque é que uma fórmula usada numa coluna de uma Pivot Table, só funciona em alguns casos, será bug do Qlik view?

O que acontece é que tenho uma Pivot Table com duas dimensões Mês/Dia  e com uma coluna onde é apresentado o valor acumulado de 2013 e outra com o valor acumulado de 2012.

Também utilizo duas variáveis vAnoSelecionado e vAnoAntSelecionado. A primeira tem o valor do ano que está selecionado (neste exemplo é 2013) e a segunda tem o valor do ano anterior (neste exemplo é 2012).

Para o calculo do acumulado de 2013 utilizei a formula:

(RangeSum(Above(TOTAL Sum({<Ano={$(vAnoSelecionado)}>} AggrVenda),0,RowNo(TOTAL))),Data)

... que funciona perfeitamente.

Similarmente, para o acumulado de 2012 utilizei a formula:

(RangeSum(Above(TOTAL Sum({<Ano={$(vAnoAntSelecionado)}>} AggrVenda),0,RowNo(TOTAL))),Data)

... que não funciona.

Não percebo porquê, a única diferença entre as formulas é a variável. Já tentei fazer o mesmo com os valores fixos 2013 e 2012, e o resultado foi o mesmo, ou seja, apenas funciona para o 2013 e não funciona para 2012.

Apresento uma imagem exemplificativa com dados fictícios:

20140404-161136.jpg

Agradeço ajuda.

Cumprimentos,

Eduardo Ribeiro

Labels (2)
3 Replies
aderlanrm
Partner - Specialist
Partner - Specialist

Olá Eduardo,

Dá uma olhada no F1, o Above e o Before tem características diferentes em tabelas dinâmicas.

Retirado do QlikView Help:

rangeavg (above(sum(x),1,3))retorna uma média dos três resultados da função sum(x) avaliada nas três linhas imediatamente acima da atual.

rangeavg (before(sum(x),1,3))

retorna uma média dos três resultados da função sum(x) avaliada nas três colunas imediatamente à esquerda da atual.

Abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dadose e Desenvolvedor
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
Not applicable
Author

Olá Aderlan,

Eu já verifiquei o Help, mas o meu caso não se prende com a seleção da coluna a acumular.

O acumulado faz-se pelo valor do campo AggrVenda, que é carregado no script.

O meu problema é que alterando a instrução:

(RangeSum(Above(TOTAL Sum({<Ano={2013}>} AggrVenda),0,RowNo(TOTAL))),Data)

... funciona, sendo o '2013' o ano selecionado, e a instrução:

(RangeSum(Above(TOTAL Sum({<Ano={2012}>} AggrVenda),0,RowNo(TOTAL))),Data)

... não funciona, sendo o '2012' o ano anterior ao selecionado.

Obrigado.

fernando_tonial
Employee
Employee

Olá Eduardo,

Tem como colocar um QVW de exemplo com o seu problema.

Abraços.

Tonial.

Don't Worry, be Qlik.