How to calculate weighted average in Excel?
For example, you have a shopping list with prices, weights, and amounts. You can easily calculate average price with the AVERAGE function in Excel. But what if weighted average price? In this article, I will introduce a method to calculate the weighted average, as well as a method to calculate weighted average if meeting specific criteria in Excel.
- Reuse Anything: Add the most used or complex formulas, charts and anything else to your favorites, and quickly reuse them in the future.
- More than 20 text features: Extract Number from Text String; Extract or Remove Part of Texts; Convert Numbers and Currencies to English Words.
- Merge Tools: Multiple Workbooks and Sheets into One; Merge Multiple Cells/Rows/Columns Without Losing Data; Merge Duplicate Rows and Sum.
- Split Tools: Split Data into Multiple Sheets Based on Value; One Workbook to Multiple Excel, PDF or CSV Files; One Column to Multiple Columns.
- Paste Skipping Hidden/Filtered Rows; Count And Sum by Background Color; Send Personalized Emails to Multiple Recipients in Bulk.
- Super Filter: Create advanced filter schemes and apply to any sheets; Sort by week, day, frequency and more; Filter by bold, formulas, comment...
- More than 300 powerful features; Works with Office 2007-2019 and 365; Supports all languages; Easy deploying in your enterprise or organization.
Supposing your shopping list is as below screenshot shown. You can easily calculate the weighted average price with combining the SUMPRODUCT function and SUM function in Excel, and you can get it done as follows:
Step 1: Select a blank cell, says Cell F2, enter the formula =SUMPRODUCT(C2:C18,D2:D18)/SUM(C2:C18) into it, and press the Enter key.
Note: In the formula =SUMPRODUCT(C2:C18,D2:D18)/SUM(C2:C18), C2:C18 is the Weight column, D2:D18 is the Price column, and you can change both based on your needs.
Step 2: The weighted average price may include too many decimal places. To change the decimal places, you can select the cell, and then click the Increase Decimal button or Decrease Decimal button on the Home tab.
The formula we introduced above will calculate the weighted average price of all fruits. But sometimes you may want to calculate the weighted average if meeting given criteria, such as the weighted average price of Apple, and you can try this way.
Step 1: Select a blank cell, for example Cell F8, enter the formula =SUMPRODUCT((B2:B18="Apple")*C2:C18*D2:D18)/SUMIF(B2:B18,"Apple",C2:C18) into it, and press the Enter key.
|Formula is too complicated to remember? Save the formula as an Auto Text entry for reusing with only one click in future! |
Read more… Free trial
Note: In the formula of =SUMPRODUCT((B2:B18="Apple")*C2:C18*D2:D18)/SUMIF(B2:B18,"Apple",C2:C18), B2:B18 is the Fruit column, C2:C18 is the Weight column, D2:D18 is the Price column, "Apple" is the specific criteria you want to calculate weighted average by, and you can change them based on your needs.
Step 2: Select the cell with this formula, and then click the Increase Decimal button or Decrease Decimal button on the Home tab to change the decimal places of weighted average price of apple.
You are guest
or post as a guest, but your post won't be published automatically.
- To post as a guest, your comment is unpublished.· 6 months agoThis is great, thank you very much! If error with SUMPRODUCT when selecting columns for example A:A and data starts A1. Then use $A$1:$A$2000.
- To post as a guest, your comment is unpublished.· 2 years agoHi Andy, Good Question, I hope you're still searching for the answer. You can still apply the same formula as above just adapt it to fit your needs. I hope this helps:)
3 years is never too late to reply lol hehe
- To post as a guest, your comment is unpublished.· 5 years agoI am trying to calculate a weighted average on a subset of data that meets certain criteria. Lets use the following as the data;
Name (Column A) Length (Column B) Value (Column C)
Red Oak 10 ft $100
Red Oak 15 ft $150
Red Oak 21 ft $210
Birch 5 ft $35
Birch 8 ft $50
Birch 11 ft $85
I am trying to calculate the weighted average length per Tree name based on Value as the measure you use to weight it. So for red oak the weight on the first line is .217391 (100/460). So my weighted average length based on value of inventory is 16.65217 ft. I believe I would use SUMPRODUCT like in your example above, but I can't get it to work.