What Most People Miss About SUMPRODUCT in Excel

Why does SUMPRODUCT return #VALUE! when you copy-paste a working formula? Why does it ignore your TRUE/FALSE array but work fine with 1s and 0s? Why does =SUMPRODUCT(A2:A10*B2:B10) give different results than =SUMPRODUCT(--(A2:A10>5),B2:B10)?

The answer lies in how Excel evaluates arrays — and what SUMPRODUCT actually sees before it multiplies.

The Myth

Most people think SUMPRODUCT is just "a fancier SUM with multiplication." They believe it exists to replace =SUM(A1*B1,A2*B2,A3*B3) — a convenient shortcut for weighted sums. That’s not wrong… but it’s dangerously incomplete.

This belief leads to three predictable failures: using SUMPRODUCT where SUMIFS would be faster, wrapping it in double negatives unnecessarily, and treating it like a lookup function (spoiler: it’s not — but it can simulate one).

The Reality

SUMPRODUCT doesn’t multiply and sum cells. It multiplies and sums arrays — and those arrays can be logical tests, text comparisons, or even nested functions that return numbers.

Its true power emerges when you realize every comma-separated argument is coerced into an array of the same dimension — and non-numeric entries become zero. That means --(B2:B10="Acme Corp") becomes {1;0;1;0;0;1;0;0;1}, not an error.

Use CaseSUMPRODUCTSUMIFS + Helper ColumnArray Formula (Ctrl+Shift+Enter)
Weighted avg by region & status✓ (1 formula, no helper)✓ (but needs column D)✗ (obsolete in Excel 365)
Count rows where Region="East" AND Status="Active" AND Amount > 5000✓ (12 chars)✓ (but 3 criteria = 3 columns or complex nesting)✓ (but fragile)
Sum only odd-numbered rows in A2:A20✓ (=SUMPRODUCT(A2:A20,MOD(ROW(A2:A20),2)))✗ (no native row-index logic)✓ (but volatile)
Dynamic lookup across 2D table (like INDEX/MATCH but no MATCH)✓ (with array logic)

Why the Myth Persists

Excel 2003’s Help file called SUMPRODUCT "the Swiss Army knife of array math" — then immediately showed only weighted sums. Microsoft never updated that language, and thousands of blog posts copied it verbatim.

YouTube tutorials from 2012 still open with "SUMPRODUCT = Sum + Product" — ignoring that Excel now treats all ranges as arrays natively. Worse, many corporate training decks use fake data like "Product1", "Qty1", "$10" — which hides how SUMPRODUCT handles mixed types.

The final nail: pressing Alt+= (AutoSum) never suggests SUMPRODUCT. So users discover it only when they Google "how to sum if two conditions" — and land on outdated Stack Overflow answers telling them to avoid it.

The Right Way

Start with this mental model: SUMPRODUCT eats arrays, not cells. Every argument must resolve to an array of equal size. If you give it A2:A10 and B2:B10, it’s fine. Give it A2:A10 and C2:C12? #VALUE! — even if only 3 rows overlap.

Here’s how to build a working conditional sum in 4 steps:

  1. Type =SUMPRODUCT(
  2. Add your condition(s) wrapped in parentheses and double-negated: --(B2:B10="Acme Corp")
  3. Add your value range: ,C2:C10)
  4. Press Enter — no Ctrl+Shift+Enter needed.

Try this in your sheet right now:
=SUMPRODUCT(--(B2:B10="Acme Corp")*--(C2:C10>10000),D2:D10)

That formula sums column D only where column B equals "Acme Corp" and column C exceeds $10,000. No helper columns. No named ranges. Just pure array logic.

Sample data (paste into A1:D10):

NameCompanyAmountCommission
Sarah ChenAcme Corp$12,500$750
James LeeBeta Labs$8,200$492
Maya PatelAcme Corp$15,800$948
Diego RuizAcme Corp$6,300$378
Anya KimGamma Inc$18,100$1,086
Tariq AliAcme Corp$22,400$1,344
Lena WuBeta Labs$9,700$582
Omar HassanAcme Corp$4,900$294
Priya DesaiGamma Inc$13,600$816

Now enter this in cell F2:
=SUMPRODUCT(--(B2:B10="Acme Corp")*--(C2:C10>10000),D2:D10)
You’ll get $3,042 — the sum of commissions for Acme Corp deals over $10k: $750 + $948 + $1,344.

The beauty of this approach is that SUMPRODUCT doesn’t care about blanks or text in the amount column — it treats them as zero. Try changing C5 to "N/A". The result stays the same.

Proof It Works

Compare side-by-side:

ScenarioFormula UsedResultNotes
All Acme Corp commissions=SUMPRODUCT(--(B2:B10="Acme Corp"),D2:D10)$3,414Matches manual sum of D2,D4,D6,D8
Acme Corp + Amount > $10k=SUMPRODUCT(--(B2:B10="Acme Corp")*--(C2:C10>10000),D2:D10)$3,042Excludes Diego Ruiz ($6,300) and Omar Hassan ($4,900)
Avg commission per Acme deal=SUMPRODUCT(--(B2:B10="Acme Corp"),D2:D10)/SUMPRODUCT(--(B2:B10="Acme Corp"))$853.50No AVERAGEIFS needed
Count Acme deals with commission > $500=SUMPRODUCT(--(B2:B10="Acme Corp")*--(D2:D10>500))3Sarah, Maya, Tariq — correct

Exceptions

There are exactly two cases where the "SUMPRODUCT = fancy SUM" myth holds up — and you should lean into it:

  • When performance matters and data is static: For large datasets (>100k rows), SUMIFS is consistently 15–30% faster than SUMPRODUCT with identical logic. Use SUMIFS if speed trumps elegance.
  • When you need wildcard text matching: SUMPRODUCT can’t handle "*Corp" natively. You’ll need SEARCH or FIND inside it — but SUMIFS supports wildcards directly. So for =SUMIFS(D2:D10,B2:B10,"*Corp"), stick with SUMIFS.

One counterintuitive tip: SUMPRODUCT ignores entire rows if any argument contains an error — even if that argument isn’t used in the final logic. So =SUMPRODUCT(A2:A10,B2:B10,C2:C10/0) returns #DIV/0! — even if you’re only trying to multiply A and B. Always wrap suspect ranges in IFERROR first.

Ready to go deeper? Paste this into E1 and drag down:

=SUMPRODUCT(--(B$2:B$10=A1),C$2:C$10)
Then type "Acme Corp" in A1, "Beta Labs" in A2, "Gamma Inc" in A3. Instant pivot-style summary — no ribbon clicks.

Tom Bradley

Tom Bradley

Tom has 15 years of experience in office management and supply chain optimization. He shares practical tips for running efficient workplaces.