Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
juliofabi
Partner - Contributor II
Partner - Contributor II

Erro de cálculo em coluna de % de variação de colunas acumuladas

Eu estou montando um gráfico tabela simples com somente uma dimensão e algumas colunas.

Quero ver as vendas de 2014 por mês (dimensão) e quero comparar com as vendas do ano de 2013 também na mesma dimensão.

Selecionei o Ano 2014 e os meses de jan e fev para facilitar a leitura da tabela com menos dados, na pratica se não selecionar o mês dá o mesmo resultado.

Detalhe importante: Este exemplo eu montei de uma planilha com poucos dados. No meu projeto final tem o mesmo caso com muitos dados e seria mais complexo de explicar. Significa que o "erro" é o mesmo em dois locais diferentes.

Então tenho o seguinte resultado:

erro tabela.png

As expressões são as seguintes:

Venda 2013 = sum({$<Ano = {"$(=Ano-1)"}>} [Valor vendido]);

Acumulado 2013 = sum({$<Ano = {"$(=Ano-1)"}>} [Valor vendido]) -- Selecionei a opção Acumular

Venda 2014 = sum([Valor vendido])

Acum 2014 = sum([Valor vendido])  -- Selecionei a opção Acumular

% var no mes = Column(3)/Column(1)-1  - formatado como %

% var acum = Column(4)/Column(2)-1  -- Selecionei a opção acumular e formatei como %

O erro está na coluna % var acum linha de Fevereiro, onde deveria aparecer 16,83% (conforme aparece no total) mas aparece 57,95%

Veja que (736,00 / 630,00 - 1) resulta em 0,1683. (16,83%)

Obrigado.

Julio Cesar Fábio

1 Solution

Accepted Solutions
Anonymous
Not applicable

Oi, Julio.

Usa esta fórmula que funciona perfeitamente:

(Sum([Valor vendido]) + RangeSum(Above(Sum([Valor vendido]), 1, RowNo())))

/(Sum({$<Ano = {"$(=Ano-1)"}>} [Valor vendido]) + RangeSum(Above(Sum({$<Ano = {"$(=Ano-1)"}>} [Valor vendido]), 1, RowNo())))

-1

View solution in original post

4 Replies
rogerioqv
Creator II
Creator II

Julio,

Não testei tudo, mas veja se o anexo te ajuda...

Abraços.

Anonymous
Not applicable

Oi, Julio.

Usa esta fórmula que funciona perfeitamente:

(Sum([Valor vendido]) + RangeSum(Above(Sum([Valor vendido]), 1, RowNo())))

/(Sum({$<Ano = {"$(=Ano-1)"}>} [Valor vendido]) + RangeSum(Above(Sum({$<Ano = {"$(=Ano-1)"}>} [Valor vendido]), 1, RowNo())))

-1

juliofabi
Partner - Contributor II
Partner - Contributor II
Author

Obrigado pela ajuda Rogério, com o teu exemplo eu conheci mais uma função que ainda não tinha visto (above). No meu caso funcionou a partir do segundo mês.

juliofabi
Partner - Contributor II
Partner - Contributor II
Author

Obrigado pela resposta Bruno. O teu exemplo funcionou perfeitamente e ja implementei em meu modelo.