Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde, pessoal,
Estou fazendo os exercícios do livro QlikView Your Business e estou com a seguinte dificuldade no exercício 4.28, em que tenho que fazer o preço médio de vendas acumulado no ano (YTD Average Sales Price). Em exercício anterior, isso foi calculado da seguinte forma:
YTD Average Sales Price = sum(# Amount) / sum(# Invoiced Quantity)
Agora, como faço o acumulado no ano? Tentei a seguinte fórmula:
sum( IF(InYearToDate([Invoice Date], '12/31/2014',0), sum(# Amount) / sum(# Invoiced Quantity) ) )
porém dá a seguinte mensagem de erro: nested agregation not allowed.
Como resolver isso?
Obs.: utilizo QlikSense
Olá Ludo,
É possível realizar a operação através de set analysis:
Digamos que você tem dados assim:
data:
load *,
Num([Invoice Date]) as [Num Invoice Date],
Year([Invoice Date]) as [Year Invoice Date];
Load * Inline
[
Invoice Date,#Amount
01/01/2017,100
01/06/2017,200
01/01/2018,300
01/02/2018,400
01/03/2018,350
01/04/2018,406
01/05/2018,340
01/06/2018,460
01/07/2018,311
01/08/2018,30
01/09/2018,355
01/10/2018,6
01/11/2018,1000
01/12/2018,666666
01/01/2019,691390812839
];
Você pode usar set analysis para pegar somente as datas que são do ano e menor que a data atual através de:
sum({<[Year Invoice Date]={"$(=Year(Today()))"},[Num Invoice Date]={"<=$(=Num(Today()))"}>}#Amount)
/
count({<[Year Invoice Date]={"$(=Year(Today()))"},[Num Invoice Date]={"<=$(=Num(Today()))"}>}[Invoice Date])
Isso te dará apenas os valores que são até a data, através de set analysis, de modo a ficar como no print a seguir: