Weighted Moving Average

Excel Formulas › Average

All versionsSUMPRODUCT

A weighted moving average gives recent points more pull than older ones — smoothing a series while staying responsive. SUMPRODUCT multiplies each value by its weight and divides by the weight total.


Quick formula: weighted average of a window with weights in D:D:
=SUMPRODUCT(values, weights) / SUM(weights)
Each value times its weight, summed, then divided by the total weight.

Functions used (tap for the full reference guide):

The example

Newest reading weighted heaviest.

AB
1ValueWeight
2101
3202
4303 → WMA 23.3

The formula

The formula:

=SUMPRODUCT(B2:B4, D2:D4) / SUM(D2:D4) // weighted by recency

How it works

How it works:

  1. SUMPRODUCT(values, weights) multiplies each value by its weight and adds the products.
  2. Dividing by SUM(weights) normalizes the result to a proper average.
  3. Give the newest point the largest weight (e.g. 3, 2, 1) so it responds faster than a plain moving average.
  4. The weights can be anything — linear (3,2,1), exponential, or custom by importance.

Linear vs exponential: linear weights (3,2,1) are simple and intuitive; exponential weighting (each older point a fixed fraction of the last) reacts even faster and is the basis of EWMA used in finance and control charts. SUMPRODUCT handles any weighting scheme.

Try it: interactive demo

Live demo

Values and weights.

WMA:

Variations

Plain moving average

Equal weights:

=AVERAGE(B2:B4)

Weights sum to 1

Pre-normalized:

=SUMPRODUCT(values, weights)

Last 3, recency-weighted

3-2-1:

=SUMPRODUCT(B2:B4, {1;2;3}) / 6

Pitfalls & errors

Always divide by SUM(weights). Skip it and you get a weighted total, not an average.

Match the lengths. Values and weights ranges must be the same size or SUMPRODUCT errors.

Order the weights. Make sure the biggest weight lines up with the newest value.

Practice workbook

📊
Download the free Weighted Moving Average practice workbook
A weighted-moving-average sheet with the plain-average, normalized, and 3-2-1 variants, plus 4 challenges with answers. No sign-up required.

Frequently asked questions

How do I calculate a weighted moving average in Excel?
Use =SUMPRODUCT(values, weights)/SUM(weights). Give recent points larger weights (like 3,2,1) so the average responds faster than a plain mean.
Why divide by SUM(weights)?
It normalizes the weighted total back into an average. Without it you get a sum, not a mean.
What weights should I use?
Linear weights like 3,2,1 are common; exponential weighting reacts faster. Any positive scheme works as long as the biggest weight matches the newest value.

Stop fighting formulas. Learn them in a day.

This recipe is one of hundreds of real-world formulas we teach. Our Excel Formulas & Functions class covers lookups, logic, text, and dynamic arrays hands-on — live in Dallas–Fort Worth, Houston, Austin, Oklahoma City, Denver, or online.

See the Formulas & Functions Class

Related formulas: Weighted average · Moving average · SUMPRODUCT formula

Function references: SUMPRODUCT