Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
mfigueiredo
Contributor III
Contributor III

Weighted Average/Sumproduct issue

Dear Qlik Community,

I've stumbled upon a rather annoying problem I can't seem to solve.

Despite finding many questions related to this and trying some solutions I've reached a dead end.

I am asking for your help concerning weighted averages.


You see, I have a table with Sales: sum(Volume) and Prices: sum(Prices)/sum(sales) as expressions and Market as dimension.

Something like this:

   

MarketSalesPrice
A577280
B3,879300
C4,582310
D1,242309
E5,793223
F6,901315
G2,420250
Total25,393284

This table is for 2016, but I need two extra columns for 2015 (Sales + Price 2015). I created them as well in Qlik, no problem.

The problem is, I need to find the mix effect of one year vs another.

Now the way I do this in excel is simply sumproduct the prices 2016 * the sales volume 2015, and them divide that by the total sales volume 2015.

I'm not worried about the mix effect by market, but in TOTAL. For example, if the price is now 284, and with the weight of sales 2015, the price would be... 280, for example. That's a difference of 4 euros.

I've created the expression

Prices 2016 =   sum(Prices 2016)/sum(sales 2016)

Sales 2015 = sum (Sales 2015)


(Prices 2016 * Sales 2015)/ sum(TOTAL Sales 2015 )

What QV gives me (BELOW) is the correct expression for each market, of course. But I need the total effect, not the effect by market. However, I need to ponder each market weight for the formula to work.

As you can see, the total remains the same as Price 2016: 283.537 €

The correct value would be 283.957 € if I use sumproduct() in excel. The correct difference is 0.42 €.

I can't really find a solution. This is part of a very important report to be issued every week in the company. Could you help?

Which formula can I use to calculate something like this weighted average?  Would I remove the dimension?

What I need is a simple Sumproduct(Sales;Price) / sum(Total Sales 2015).

     

MarketSales 2016Price 2016Sales 2015W Average
A5772808009
B3,8793003,81245
C4,5823104,58055
D1,2423091,32716
E5,7932235,63249
F6,9013157,00286
G2,4202502,49024
Total25,39328425,643284

If this is not the correct method, could you give me any alternatives for calculating such an average?

Please bear in mind I'm really a novice

Many thanks in advance,

Mariana.

5 Replies
sunny_talwar

Can you try this:

Sum(Aggr((Prices 2016 Expression * Sales 2015 Expression)/ sum(TOTAL Sales 2015 Expression), Market))

Make sure to list out the complete expressions within the Aggr() function, as it doesn't work with Column Labels (in case you are using that)

mfigueiredo
Contributor III
Contributor III
Author

Dear Sunny,

Thank you so much for helping me.

However the expression is giving me 0, and I have no idea why?

I did try a similar expression with aggr, but I wasn't sure it was correct before and it gave me the same result.

Is there any possibility to get a similar sumproduct() result as we do in excel?

Thanks again,

Mariana.

sunny_talwar

Would you be able to share a sample to help you better here?

mfigueiredo
Contributor III
Contributor III
Author

Hi Sunny,

Unfortunately, I have one of those "data is confidential" problems.

I can share the expressions, no problem.

I managed to find the correct number by multiplying the weight in % of the volume 2015 by the price 2016.

If I cummulate that expression, I get the correct value I was talking about above!

Below is the accurate chart. The values in black are real, so I cannot share them. So I multiplied each weight (year) by the price 2016 and got expressions A and B. The last column is the same as B-A but cummulated.

My problem is I wanted this fairly automatic in order to get a bar chart and put it on a report.

Seems to me it needs to be manual, nonetheless.

Many thanks,

Mariana

sunny_talwar

Your confidentiality concerns can be handled by looking at this thread:

Preparing examples for Upload - Reduction and Data Scrambling

Once again it is difficult to look at screenshots and try to understand what might not be working. A sample will make it much more easier to offer a help. Sample of dummy data with expected output will also be helpful.