How to Calculate Weighted Average in Excel — Formula and Examples
Learn how to calculate weighted average in Excel using SUMPRODUCT and SUM. Step-by-step examples for grades, GPA, and portfolio returns.

You scan your gradebook and the math just feels off. The simple AVERAGE function spits out 82, but your syllabus weights the final exam at 40 percent, and you know your actual grade should sit closer to 78. Welcome to the small but stubborn world of weighted averages in Excel, where every value gets a different say in the final number. Most spreadsheet users learn AVERAGE on day one. The weighted version stays hidden for years, even though it powers grades, portfolio returns, KPI dashboards, and survey results.
A regular average treats every number as equal. A weighted average doesn't. Some inputs matter more, so they pull harder on the result. Think of a class where homework is worth 20 percent, quizzes are worth 30 percent, and the final exam is worth 50 percent.
The final exam grade tugs the average twice as hard as the quiz grade — that's the whole point. Excel has no single button called WEIGHTED AVERAGE, but it gives you a clean two-function combo that does the job in one cell: SUMPRODUCT and SUM. Once you see the pattern, you'll wonder how you ever survived without it.
This guide walks you through the formula, the logic behind it, and three real examples you can copy into your own sheet right now. We'll cover grades, GPA conversion, and a small stock portfolio. You'll also see the mistakes that trip people up — mismatched ranges, weights that don't add to 1, and the percent-versus-decimal trap that quietly inflates numbers by a factor of 100.
Drop this into any Excel cell, swap in your ranges, and you're done: =SUMPRODUCT(values, weights)/SUM(weights). The numerator multiplies each value by its weight and adds the results. The denominator divides by the total weight, so it works whether your weights add to 1, 100, or 47.3. No helper columns needed.
Weighted Average vs Simple Average — Why the Difference Matters
A simple average treats five numbers like five equal voters. Add them, divide by five, done. AVERAGE(B2:B6) does this in milliseconds. But not every measurement deserves the same vote. A teacher who scored 100 on a one-question pop quiz didn't suddenly become better than the student who scored 88 on a 200-question final. The final carries more weight because more is riding on it.
Here's a quick sanity check. Say you have three test scores: 70, 80, and 100. The simple average is 83.3 — clean and pleasant. Now suppose those tests were worth 10 percent, 30 percent, and 60 percent of the grade. The weighted average becomes (70×0.10) + (80×0.30) + (100×0.60) = 91. That's almost eight points higher, and it reflects reality: the student crushed the test that mattered most.
Stockbrokers, teachers, project managers, and survey analysts all live in this world. If you've ever calculated a GPA, computed a portfolio return, or weighted customer satisfaction scores by purchase value, you've already done a weighted average — probably the long way. Excel just removes the manual arithmetic.

Weighted Average in Excel at a Glance
The Formula Broken Down — SUMPRODUCT and SUM Working Together
SUMPRODUCT does something most Excel users never bother to learn: it multiplies arrays pairwise and adds the results. Give it two columns of equal length, and it returns one number. So =SUMPRODUCT(B2:B6, C2:C6) walks down both columns, multiplies row by row, and sums everything. That's exactly what a weighted average needs.
The second half — SUM(weights) — handles the denominator. If your weights add to 100 because they're percentages, you'd divide the SUMPRODUCT result by 100. If they add to 1 because they're decimals, you'd divide by 1, which changes nothing but still needs to be there for correctness. If they don't add to either (say, share counts in a portfolio), SUM handles it automatically. That's why the full formula is =SUMPRODUCT(B2:B6, C2:C6)/SUM(C2:C6) rather than just SUMPRODUCT alone. The division normalizes everything.
You can also skip the division entirely if you know your weights are decimals summing to exactly 1. In that case, =SUMPRODUCT(B2:B6, C2:C6) by itself is the weighted average. Most spreadsheet builders include the SUM anyway — it's one extra reference and it guards against the day you accidentally enter weights as 10, 30, 60 instead of 0.10, 0.30, 0.60.
If your weights live in column C as percentages (10, 30, 60), Excel reads them as numbers — not as fractions. SUMPRODUCT will multiply by 30, not by 0.30. The SUM(weights) in the denominator saves you because it equals 100, and dividing by 100 brings the answer back to scale. But if you format the cells as percent (10%, 30%, 60%), Excel stores them as 0.10, 0.30, 0.60 under the hood. Same display, very different math. Format consistency saves hours of debugging.
Step-by-Step — A Grade Book Example You Can Copy
Open a blank sheet. Type these headers in row 1: Assignment, Score, Weight. Now fill rows 2 through 5 with this data:
Row 2: Homework, 88, 20%. Row 3: Quizzes, 76, 25%. Row 4: Midterm, 82, 20%. Row 5: Final Exam, 71, 35%. Make sure column C is formatted as percent, so Excel stores the actual decimals (0.20, 0.25, 0.20, 0.35). They add to 1.00 — that's your sanity check.
In cell B7, type: =SUMPRODUCT(B2:B5, C2:C5)/SUM(C2:C5). Press Enter. You should see 77.95. That's the weighted grade. Compare it to =AVERAGE(B2:B5), which gives you 79.25. The weighted version is lower because the final exam — where this student struggled — counted for 35 percent of the grade. A simple average flattered the result by treating the easy homework score the same as the tough final. That's the whole reason teachers use weighted grading in the first place.
One more thing: notice how readable the formula is. You're literally asking Excel to multiply every score by its weight, add them, and divide by the total weight. No nested IFs, no array formulas, no Ctrl+Shift+Enter gymnastics. SUMPRODUCT is one of the underused gems in the function library.
Four Steps to a Weighted Average
Put your values in one column (test scores, returns, ratings) and your weights in the column right next to them. Both columns must have the same number of rows.
- ▸Values column (B): your numbers
- ▸Weights column (C): same row count
- ▸Identical start and end rows
- ▸Avoid mixing text with numbers
If weights are decimals (0.2, 0.3, 0.5), they should sum to 1. If they're whole percentages (20, 30, 50), they should sum to 100. Format consistently.
- ▸Decimals sum to 1.00
- ▸Percentages sum to 100
- ▸Format every weight cell the same
- ▸Watch the percent button in the ribbon
In an empty cell type =SUMPRODUCT(values, weights)/SUM(weights). Replace values and weights with your actual ranges, like B2:B10 and C2:C10. Hit Enter.
- ▸Use range references not single cells
- ▸Both ranges identical length
- ▸Press Enter — no Ctrl+Shift+Enter needed
- ▸One cell, no helper column
Run =AVERAGE(values) in another cell. The two numbers should differ — that's the whole point. If they match exactly, your weights are all equal and you don't actually need a weighted average.
- ▸Compare weighted vs simple
- ▸Difference proves weights matter
- ▸Investigate if numbers are identical
- ▸Add =SUM(weights) as sanity check

GPA Conversion — A Classic Weighted Average
Your transcript is one giant weighted average. Each course has a grade (A=4, B=3, C=2, D=1) and a credit count (3 credits, 4 credits, 1 credit lab). The GPA is the credit-weighted average of your grade points. A 4-credit A in calculus matters more than a 1-credit B in a one-hour seminar — that's why universities use credits as weights.
Set up a sheet with Course, Grade Points, Credits. Say you have four classes this semester: Calculus (4.0, 4 credits), English (3.0, 3 credits), Chemistry (3.5, 4 credits), and a lab (4.0, 1 credit). Your GPA formula in any empty cell is =SUMPRODUCT(B2:B5, C2:C5)/SUM(C2:C5). The answer comes out to 3.625. A simple AVERAGE of grade points would give you 3.625 only by coincidence — change the credits, and the two numbers diverge fast.
This is why GPA can feel unfair. A bad grade in a high-credit course tanks the average much harder than the same grade in a low-credit one. Knowing the formula gives you control: you can model a semester in advance and see exactly how each course will move the needle.
Weighted Average Across Different Use Cases
Four assignments with weights 20%, 25%, 20%, 35%. Formula: =SUMPRODUCT(B2:B5, C2:C5)/SUM(C2:C5). The denominator catches you if your percents are stored as whole numbers instead of decimals — it'll equal 100 instead of 1, and the division corrects automatically.
A Financial Portfolio Example — Returns Weighted by Position Size
Investing magnifies the importance of weighting. Imagine you hold three stocks. Stock A is worth $40,000 and returned 6% this year. Stock B is worth $25,000 and returned 12%. Stock C is worth $10,000 and lost 4%. What's your portfolio return? A simple average of the three returns gives you (6 + 12 + (-4))/3 = 4.67%. That number is wrong in every meaningful way — it ignores the fact that you have four times more money in Stock A than Stock C.
Build the sheet: Holding, Return, Value. Row 2: Stock A, 6%, 40000. Row 3: Stock B, 12%, 25000. Row 4: Stock C, -4%, 10000. In your answer cell: =SUMPRODUCT(B2:B4, C2:C4)/SUM(C2:C4). You get 6.13% — almost a point and a half higher than the unweighted average, because your biggest position did the heavy lifting.
Now imagine running this across 30 holdings, updated daily. The same one-line formula scales to B2:B31 and C2:C31 without breaking a sweat. That's why portfolio managers build dashboards on this exact pattern. If you want to get deeper into spreadsheet building blocks, the article on the SUM formula in Excel walks through SUMIF and SUMIFS, which you'll want when you start filtering by sector or asset class.
Common Errors and How to Spot Them Fast
The #1 weighted-average bug is range mismatch. If values are in B2:B10 but weights are in C2:C11, SUMPRODUCT throws #VALUE! because the arrays don't line up. Always select both ranges with the same start and end rows. A quick way to catch this: select your weight column and look at the row count in the status bar at the bottom. It should match your value column exactly.
The second bug is the percent trap. You type 20, 30, 50 into column C thinking they're percentages. Excel stores them as 20, 30, 50 — full numbers. SUMPRODUCT multiplies each score by 20, 30, or 50, returning a huge number. Then SUM(weights) returns 100, the division brings it back, and the answer happens to be correct. But the moment you mix one cell formatted as percent (0.20) with two formatted as raw numbers (30, 50), the math silently breaks. Format-check your weight column before you trust the answer.
The third bug is weights that don't sum to 1 when you expect them to. If your syllabus says homework is 20%, quizzes are 30%, midterm is 25%, and final is 30%, that's 105% — typo somewhere. Add a quick =SUM(C2:C5) below your weights as a sanity check. If it doesn't equal 1 (decimals) or 100 (percents), find the missing or duplicated weight before relying on the average.

Weighted Average Sanity-Check List
- ✓Both your value range and weight range cover the exact same rows (e.g. B2:B10 and C2:C10)
- ✓Weights are formatted consistently — all decimals (0.20) or all percentages (20%) but never mixed
- ✓A quick =SUM(weights) cell exists somewhere to confirm weights add to 1.00 or 100
- ✓Your formula uses /SUM(weights) at the end so it works no matter how weights are stored
- ✓You've compared the weighted result to =AVERAGE(values) to confirm the numbers differ (they should)
- ✓The answer cell is formatted to the right number of decimals — usually 2 for grades, 4 for returns
- ✓If any value or weight cell is blank, you've decided whether to skip it or treat it as zero
Named Ranges, AVERAGE.IF Alternatives, and Handling Missing Weights
Once your sheet gets bigger than ten rows, raw cell references stop being readable. =SUMPRODUCT(B2:B47, C2:C47)/SUM(C2:C47) is technically correct, but no one looking at the sheet six months later will know what it means. Named ranges fix this.
Go to the Formulas tab, click Name Manager, and name B2:B47 "Scores" and C2:C47 "Weights." Your formula becomes =SUMPRODUCT(Scores, Weights)/SUM(Weights). Self-documenting and bulletproof. Better still, named ranges follow you when you add rows — set them to expand dynamically and the formula never breaks.
What if some weights are missing? Maybe a few students didn't submit an assignment, or some portfolio holdings have no current price. SUMPRODUCT treats blank cells as zero, so a missing weight effectively drops that row from the calculation. Usually what you want.
But if blank means "unknown weight" rather than "zero weight," you need to filter the missing rows out first, perhaps with a helper column or a conditional formula. The article on the COUNT formula in Excel covers COUNTBLANK, which is the fastest way to spot how many weights are missing before you trust the average. Run it on your weight range and write the count somewhere visible — that one cell will save you the next 50 debugging sessions.
People sometimes ask about AVERAGEIF or AVERAGEIFS as an alternative. Those functions average a range conditionally. Handy for "average score where category equals math" — but they don't weight at all. AVERAGEIF treats every matching value equally, which is precisely what we're trying to avoid.
There's no native WEIGHTED.AVERAGE function in Excel even in 2026. Power users have been requesting one for two decades. Microsoft hasn't budged, presumably because SUMPRODUCT plus SUM does the job and is already universal. Most experienced spreadsheet builders actually prefer it because it's transparent — you can see exactly what's being multiplied and divided. There's no hidden behaviour, no "what does this function do under the hood" debate.
For larger data work, you might layer SUMIFS on top, or — more elegantly — use SUMPRODUCT with boolean filters. The latter pattern is below in the next section and it's the single most useful Excel trick most analysts never learn.
SUMPRODUCT Weighted Average — Pros and Cons
- +Works with any weights — decimals, percentages, dollar amounts, share counts
- +One cell, no helper columns, no array formula gymnastics
- +Scales from 3 rows to 30,000 without rewriting anything
- +Reads almost like English once you know SUMPRODUCT
- +Handles weights that don't sum to 1 thanks to the /SUM(weights) divisor
- −SUMPRODUCT errors out on mismatched ranges — both arrays must have identical dimensions
- −No built-in WEIGHTED.AVERAGE function, so newer users won't discover it from the function list
- −Blank weights are silently treated as zero, which can mask data entry mistakes
- −Percent-versus-decimal confusion accounts for most wrong answers — formatting matters
- −Doesn't gracefully handle text values mixed into the value column without an IFERROR wrapper
Putting It All Together
Weighted averages aren't an advanced Excel topic. They're a fundamental one that just happens to live behind two functions instead of one. The pattern =SUMPRODUCT(values, weights)/SUM(weights) is the same whether you're grading a class, valuing a portfolio, scoring a survey, or building a KPI dashboard.
Once it clicks, you'll catch yourself using it constantly. Whole columns of helper calculations get replaced with a single line. Coworkers will ask how you got the answer in one cell. The honest reply is that you stopped fighting Excel and started using the tool it already gave you.
Start with the grade book example above. Type the four rows yourself, enter the formula, and watch the result change as you tweak the weights. Then try the portfolio version with your own holdings. Within an afternoon, you'll have a reusable template you can drop into any new project.
And if you're working through more Excel fundamentals, take a look at the standard deviation formula in Excel. Once you can compute a weighted mean, weighted variance and standard deviation are the natural next step for anyone analyzing risk-adjusted returns or grade distributions.
One last tip — make the formula a habit, not a one-off. Every time you find yourself reaching for AVERAGE, pause and ask whether the inputs really deserve equal voting power. If they don't, the weighted version is your friend. And it costs nothing extra to type.
Going Beyond Basics — Conditional Weighted Averages
Once the basic formula is muscle memory, you'll want to filter. Imagine your grade book covers four subjects, and you want the weighted average for math only. SUMPRODUCT handles this beautifully with a small trick: multiply by a boolean array. The formula becomes =SUMPRODUCT((category="math")*scores*weights)/SUMPRODUCT((category="math")*weights).
What's happening here? The expression (category="math") returns an array of TRUE/FALSE values, which Excel treats as 1 and 0 in arithmetic. Rows where the category isn't math contribute zero to both numerator and denominator, so they drop out cleanly. It's a one-cell version of a filtered weighted average — no helper columns, no pivot tables.
You can stack conditions too. =SUMPRODUCT((category="math")*(year=2026)*scores*weights)/SUMPRODUCT((category="math")*(year=2026)*weights) gives you the weighted math average for one specific year. The syntax stays the same: each boolean filter is a parenthesised expression, and multiplication is logical AND. This is the same pattern that powers most enterprise-grade Excel dashboards, and it's all just SUMPRODUCT under the hood.
Excel Questions and Answers
About the Author
Attorney & Bar Exam Preparation Specialist
Yale Law SchoolJames R. Hargrove is a practicing attorney and legal educator with a Juris Doctor from Yale Law School and an LLM in Constitutional Law. With over a decade of experience coaching bar exam candidates across multiple jurisdictions, he specializes in MBE strategy, state-specific essay preparation, and multistate performance test techniques.