Weighted Average in Excel [Formulas]

Share

Facebook
Twitter
LinkedIn

Today we will learn how to calculate weighted average in Excel with percentages.

What is weighted average ?

Weighted average or weighted mean is defined as [from wikipedia],

The weighted mean is similar to an arithmetic mean …, where instead of each of the data points contributing equally to the final average, some data points contribute more than others.

If all the weights are equal, then the weighted mean is the same as the arithmetic mean.

Why should you calculate weighted average?

Well, it is because, in some situations normal averages give in-correct picture. For eg. assume you are the CEO of ACME Widgets co.. Now you are looking annual salary report and being the numbers-gal you are, you wanted to find-out the average salary of your employees. You asked each department head to give you the average salary of that department to you. Here are the numbers,

Weighted Average Formula for Excel - why you need it

Now, the average salary seems to be $ 330,000 [total all of all salaries by 5, (55000+65000+75000+120000+1200000)/5 ].

You are a happy boss to find that your employees are making $330k per year.

Except, you are wrong. You have not considered the number of employees in each department before calculating the average. So, the correct average would be $76k as shown above.

How to Calculate Weighted Average in Excel with Percentages

Weighted average formula in Excel with percentage weights

There is no built-in formula in Excel to calculate weighted averages. However, there is an easy fix to that. You can use SUMPRODUCT formula. By definition, SUMPRODUCT formula takes 2 or more lists of numbers and returns the sum of product of corresponding values. [related: Excel SUMPRODUCT Formula – what is it and how to use it?]

So, if you have values in B4:B8 and the corresponding weights in C4:C8, you can use SUMPRODUCT like this to get weighted average.

Caution: However, the above method works only if C4:C8 contains weights in percentages(%) totaling to 100%.

WAvg Formula Pattern (use this with your data)

=SUMPRODUCT(<your values>, <your weights>)

What if my percentage weights don’t add up to 100%?

When weights don't add up to 100 percent

May be your weights are more than 100 percent. Or may be they are less than 100 percent. In both cases, you can use the below formula variation.

The idea is to divide the total of weights with the SUMPRODUCT result so that we can adjust Weighted Average as the weights don’t add up to 100 percent.

WAvg Formula Pattern when weights don’t add up to 100 percent

=SUMPRODUCT(<your values>, <your weights>) / SUM(<your weights>)

Weighted Average when you have counts instead of weights:

WA when you have counts instead of percent weights

If you have count of observations instead of weights, you can still use the SUMPRODUCT formula to calculate weighted average in Excel.

Here is the formula for above example:

Notice that this formula is same as the formula for weighted average with weights not adding up to 100 percent.

WAvg Formula Pattern when you have counts instead of weights

=SUMPRODUCT(<your values>, <your counts>) / SUM(<your counts>)

Weighted Average with Extra Conditions

Weighted average with criteria or special conditions

Let’s say you have city wise observations and weights. And you want to calculate the weighted average, only for Boston values. In this case, you can use a variation of the formula like below:

How does this formula work?

  1. SUMPRODUCT calculates the total value for BOSTON by summing up C5:C16 (value column) where B5:B16 is Boston (highlighted portion of the formula) and multiplies that with the counts.
  2. So in the above example, this will just give us the total of Boston – ie 218,600
  3. We then divide this with the total count of Boston (using the SUMIFS formula) – ie 400
  4. This results in the weighted average for Boston values alone – ie 546.50

For more information on how the conditions work inside SUMPRODUCT formula, please read this article.

Download Weighted Average Calculation Example Workbook:

In this workbook, you can find 4 examples on how to to calculate weighted average in excel. Go ahead and download it to understand the formulas better.

Weighted Average in Excel – Formula Explained

Here is a video with Weighted Average formula explained. Please watch it below to learn more. Alternatively, head to my YouTube page to see the weighted averages in Excel video.

In Conclusion

Weighted averages are a great way to explain data and every data analyst should know how and when to use them with their data. Apart from Weighted Average, I suggest learning how to use moving average and average of top n values. These will help you explain the data and trends to your audience better.

Do you use Weighted Mean / Weighted Average?

What do you use it for? What kind of challenges you face? Do you apply any tweaks to weighted average calculations? Please share your ideas / tips using comments.

More examples on Averages and Formulas:

Facebook
Twitter
LinkedIn

Share this tip with your colleagues

Excel and Power BI tips - Chandoo.org Newsletter

Get FREE Excel + Power BI Tips

Simple, fun and useful emails, once per week.

Learn & be awesome.

Welcome to Chandoo.org

Thank you so much for visiting. My aim is to make you awesome in Excel & Power BI. I do this by sharing videos, tips, examples and downloads on this website. There are more than 1,000 pages with all things Excel, Power BI, Dashboards & VBA here. Go ahead and spend few minutes to be AWESOME.

Read my storyFREE Excel tips book

Overall I learned a lot and I thought you did a great job of explaining how to do things. This will definitely elevate my reporting in the future.
Rebekah S
Reporting Analyst
Excel formula list - 100+ examples and howto guide for you

From simple to complex, there is a formula for every occasion. Check out the list now.

Calendars, invoices, trackers and much more. All free, fun and fantastic.

Advanced Pivot Table tricks

Power Query, Data model, DAX, Filters, Slicers, Conditional formats and beautiful charts. It's all here.

Still on fence about Power BI? In this getting started guide, learn what is Power BI, how to get it and how to create your first report from scratch.

28 Responses to “Pimp your comment boxes [because it is Friday]”

  1. Jeff Weir says:

    This borders on Excel soft-cell...er, soft-core...porn. My favorite kind.

  2. Tim says:

    Wow, that is pimp-TASTIC! I have a question, as a VBA n00b: additional comment boxes stay plain unless I "run" the macro. Is there a way to change all comments, going-forward?

  3. laguerriere says:

    hi Chandoo, well, I like the macro approach. For those who don't like it, there is another way: just add the "draw" toolbar to the shapes toolbar (via Custom etc), click on "edit comment", click on the auto-shape and then choose "draw" drop-down, --> modify auto-shape --> then you even can have a heart or a banner (I like the horizontal banner in in purple :-)) . in excel 2007, you have to add this custom menu that you choose via Excel Options --> Custom --> it is called "change/ modify auto-shape"!!!
    best,

  4. Tom says:

    @Chandoo. Great Post 🙂
    @Tim : the way the macro is coded, it must be run very time.
    @Community: If someone has an idea to perform it when opening an existing excel, it should be nice.
    @Community: if someone has some code to revamp the commentboxes on all sheets, please share it. 🙂
    @Microsoft Excel-progammers: some pimpoptions for the commentboxes should be great.

    Cheerio
    Tom

  5. Yukikomi says:

    For the auto run, please add the codes in workbook:

    Private Sub Workbook_SheetActivate(ByVal Sh As Object)

    Call Comments_Tom

    End Sub

  6. Debra says:

    Wow, that was a lot of fun... Thanks Tom!

  7. Chandoo says:

    @Jeff... Now, 5000 people know about your favorite porn... 😛

    @Tim ... you can write an event to handle the new comments. I wouldnt recommend it as it is really painful. another option is to use the macro suggested by Yukikomi. It will update comments everytime you activate the sheet.

    @laguerriere: very cool 🙂

  8. Johnnie says:

    @Chandoo ... Thanks! This is good stuff. I combined your tip with a tip from Mark O'Brien, then assigned it to a button on Excel 2010's Quick Access Toolbar, to format comments AS I add them. I also like how Mark's code saves me the trouble of backspacing my name out of new comments:

    Sub AppendToExistingComment()
    'Source: Mark O'Brien at http://www.mrexcel.com/forum/showthread.php?t=57296
    Dim oRange As Range
    Dim oComment As Comment
    Dim sText As String

    'Use object variable to hold range.
    Set oRange = ActiveCell
    'Use object variable for comment
    Set oComment = oRange.Comment
    'text to be added to the comment box
    sText = InputBox("Type text to be added:", "APPEND TO COMMENT TEXT")
    If Len(sText) = 0 Then End
    'If Active Cell has a comment then append new text to the end of the comment text
    If Not oComment Is Nothing Then
    sText = oComment.Text & vbNewLine & sText
    oRange.Comment.Delete
    End If

    'Add a comment with the contents of sText
    oRange.AddComment sText

    DoEvents
    Comments_Tom

    End Sub

  9. Nick says:

    Thank you very much for the code, it seems to be working for the most part; I am having a problem however. Once the routine makes the corrections to the comment, the comment becomes invisible. By invisible, I mean that when I highlight my mouse over it, nothing appears. However, when I right click the cell and click 'edit comment' then the comment becomes visible and I enter edit mode. Upon clicking out of the comment, it simply vanishes again. I've tried to fix this problem by adding a .shape.visible = msoTrue but then every comment is always visible. o_O please advise...

    Thank you,

    Nick

  10. Shailyog says:

    @Nick- That is because the font color of the comment is white and when you select the color of selection is also white hence you can not see anything. Try to change the color code in the routine to something else. would work

  11. Michael says:

    Thanks for that! The code works perfectly!

  12. [...] look at Format Excel Comment Boxes using VBA Macros | Chandoo.org - Learn Microsoft Excel Online [...]

  13. Sunny says:

    @ Chandoo - code works great and the comments look super cool. But I have ran into a small issue. In the comments, I am inserting pictures. When I run the macro, for all comments which already have pictures; pictures are deleted. Pls help me retain the pics in comments.

  14. […] posted some code one of his readers submitted, it "pimps" your comment boxes from those boring black-text-on-yellow rectangles to something more professional and eye-pleasing. […]

  15. mohammad mal says:

    love in it

  16. Deepak says:

    Hi Tom,

    This looks really excellent. I am however relatively new to macros / VBA codes so having copy pasted your code in the Developer mode of an Excel file, what are the next steps to use them? Can you please help? Just to recap, I opened a blank Excel workbook, clicked on Developer, copy pasted the comments code and saved the file to the desktop.

    Now how do I go about using it to add comments to an existing file? My apologies for asking a question which may be basic to you great geniuses, but I am not there yet and aspire to get there.

    Many thanks for helping me with next steps that I need to take so that I can now use the code.

    Best Wishes

    Deepak Dave, CMA, MBA, PMP
    Senior Management Consultant

  17. Tom says:

    Dear Dave,

    The best thing to do is to copy the macro in the personal.xls(x) file. The personal excel file will always be launched when you open excel so you can use it with every excelworkbook.
    Read all about it on the page of Microsoft.
    https://support.office.com/en-us/article/Copy-your-macros-to-a-Personal-Macro-Workbook-aa439b90-f836-4381-97f0-6e4c3f5ee566

    Once you have the macro in the personal, you can 'call' the macro by the keyboardcombination 'alt+f8' and klik on the macroname.

    Hope this clarifies the 'how to'. Good luck with your first steps in the wonderfull world of macro's.
    Tom

    • Deepak says:

      Hi Tom,

      Many thanks. I will try that out. Learning is fun and learning this stuff is even more amazing.

      Best Wishes

      Deepak Dave

  18. Gary says:

    There is a line 'Dim LArea As Long' which does not appear to be used. Have I missed something?

  19. Luis says:

    Excellent hack!
    For some reason when I opened my file after using LibreOffice Calc, all comment boxes had changed to some arrow shape.
    So this macro helped me from manually changing more than 5000 comments in a worksheet, or having to install some Excel extension.
    I used it with the following attributes to get back old style comments:

    It helped me from manually changing more than 5000 comments in a worksheet, or having to install some Excel extension.

    .Shape.AutoShapeType = msoShapeRectangle
    .Shape.TextFrame.Characters.Font.Name = "Calibri"
    .Shape.TextFrame.Characters.Font.Size = 10
    .Shape.TextFrame.AutoMargins = True
    .Shape.TextFrame.AutoSize = True

    Thanks a lot!

  20. Mark Blackburn says:

    This was helpful, thank you

  21. loana says:

    I think this is among the most significant
    information for me. And i am glad reading your article.
    But wanna remark on some general things, The site style is great,
    the articles is really great : D. Good job, cheers

  22. Jen says:

    Is there code to add to this that will format a particular part of the comment (i.e. make the last sentence in the comment bold and in italics)?

  23. Phil says:

    This is fantastic!
    How would I add auto-sizing to it?
    I tried adding this:
    .Shape.AutoSize = True but it gives me an error and as a novice at VBA I can't figure it out.

  24. site de promos says:

    Hello I am so glad I found your web site, I really found you by accident,
    while I was browsing on Bing for something else, Nonetheless I am here now and would
    just like to say thanks a lot for a remarkable post and a all round entertaining blog (I also love the theme/design), I don’t have time to
    read it all at the moment but I have book-marked
    it and also added in your RSS feeds, so when I have time I will be back to read a lot more,
    Please do keep up the fantastic work.

  25. E.H. says:

    This is GREAT!

    How should the code be changed in order to tun once for all worksheets in a workbook?

Leave a Reply