Weighted Average Calculator
Compute a weighted average from a list of values and weights, with the SUMPRODUCT formula that works in Excel and Google Sheets.
Empty rows are ignored. Numbers stay in your browser. The default rows are scores 80, 90 and 70 with weights 0.5, 0.3 and 0.2, which average to 81.
Quick answer: a weighted average is the sum of each value times its weight, divided by the total of the weights. In Excel or Google Sheets, with values in A2:A4 and weights in B2:B4:
=SUMPRODUCT(A2:A4, B2:B4)/SUM(B2:B4) The two ranges must be the same height. You can also write the products out by hand, =(A2*B2+A3*B3+A4*B4)/SUM(B2:B4), but SUMPRODUCT is easier to extend when the list grows. For more on when SUMPRODUCT is the right tool, see COUNTIF vs COUNTIFS vs SUMPRODUCT.
Scores of 80, 90 and 70
Take three test scores with uneven weights: 80 at 50%, 90 at 30% and 70 at 20%. The weighted sum is 80×0.5 + 90×0.3 + 70×0.2 = 81, and the weights already add to 1, so the average is 81. In Google Sheets on 12 November 2026:
=SUMPRODUCT(70,0.2)/SUM(0.5,0.3,0.2) returned 81. A plain average of 80, 90 and 70 is 80. That is the usual reason people reach for a weighted average: the 80 matters more than the 70 here, and a simple AVERAGE hides that.
The weights do not have to be fractions that add to 1. A grade-point example with credit hours — 4.0 for 3 credits, 3.0 for 4 credits, 4.0 for 3 credits — is:
=SUMPRODUCT(4,3)/SUM(3,4,3) which is 3.6. The simple average of 4, 3 and 4 would have been 3.667, because it treats the 4-credit course as if it were the same size as the others.
Quantities as weights
The same math works for an average price. You bought 100 units at $2 and 50 units at $5:
=SUMPRODUCT(5,50)/SUM(100,50) The result is $3.00, not $3.50. $3.50 would be the unweighted average of the two prices, as if you had bought the same quantity at each price.
Things that quietly go wrong
- Averaging averages. If one group of 10 has an average of 50 and a group of 90 has an average of 100, the combined average is not 75. Weight each group by its size:
=SUMPRODUCT(100,90)/SUM(10,90), which is 95. - A zero total weight. If every weight is 0, the division is undefined and a sheet shows
#DIV/0!. - Ranges of different sizes.
SUMPRODUCTneeds equal-length arrays. A stray blank at the bottom of one column is fine (it contributes 0); a missing row in only one column is not. - Text that looks like a number. If a weight was pasted as text,
SUMPRODUCTmay treat it as 0. Convert those cells first.
Questions that come up
What is the Excel or Google Sheets formula for a weighted average?
If values are in A2:A4 and weights are in B2:B4, use =SUMPRODUCT(A2:A4,B2:B4)/SUM(B2:B4). The two ranges must be the same size.
Can I use AVERAGE instead?
Only when every weight is equal. AVERAGE ignores the weights. In the 80, 90, 70 example with weights 0.5, 0.3, 0.2, AVERAGE is 80 and the weighted average is 81.
Do the weights have to add up to 1?
No. Shares, credit hours, quantities and percentages all work, as long as you divide by the total of the weights. 50% + 30% + 20% is the same as 5 + 3 + 2 after that division.