Excel guide · 5 min read
SUMPRODUCT vs SUMIFS: which should you use?
=SUMIFS(F2:F11,B2:B11,"North") and =SUMPRODUCT((B2:B11="North")*F2:F11) both return 11,720. Use SUMIFS for plain conditions on columns (it is simpler and usually faster). Use SUMPRODUCT when the condition needs a calculation on each row, like MONTH or WEEKDAY, OR logic across different columns, or a case-sensitive match.Sample data
Every result on this page was calculated from this sheet by the same spreadsheet engine the Cellwise app uses.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Date | Region | Rep | Product | Units | Revenue |
| 2 | Oct 3, 2026 | North | Ana | Laptop | 4 | 5200 |
| 3 | Oct 11, 2026 | East | Ben | Monitor | 12 | 2160 |
| 4 | Oct 19, 2026 | North | Dana | Dock | 9 | 1080 |
| 5 | Oct 27, 2026 | West | Ana | Monitor | 6 | 1080 |
| 6 | Nov 2, 2026 | East | Ben | Laptop | 2 | 2600 |
| 7 | Nov 5, 2026 | North | Ana | Monitor | 15 | 2700 |
| 8 | Nov 9, 2026 | East | Cal | Dock | 10 | 1200 |
| 9 | Nov 14, 2026 | West | Dana | Laptop | 3 | 3900 |
| 10 | Nov 20, 2026 | North | Cal | Monitor | 8 | 1440 |
| 11 | Nov 18, 2025 | North | Ben | Laptop | 1 | 1300 |
Download this sheet as an Excel practice file (.xlsx)
The same total, written both ways
The sheet is a small sales log: date, region, rep, product, units and revenue. Total revenue for North is 11,720 with either function. SUMIFS takes the sum range first, then pairs of "range, criteria". SUMPRODUCT turns each test into TRUE or FALSE per row, and multiplying by the revenue column turns those into 1 and 0, so only matching rows are left in the sum.
More conditions work the same way. North laptops: =SUMIFS(F2:F11,B2:B11,"North",D2:D11,"Laptop") adds two more arguments, and =SUMPRODUCT((B2:B11="North")*(D2:D11="Laptop")*F2:F11) multiplies one more test. Both return 6,500. For AND conditions like these, the SUMIFS version is easier to read and to hand to a colleague.
Result: 11720
11,720. =SUMPRODUCT((B2:B11="North")*F2:F11) returns the same.
Dates: a date range in SUMIFS, MONTH in SUMPRODUCT
SUMIFS can only test the cells themselves, so a month is written as a date range: =SUMIFS(F2:F11,B2:B11,"North",A2:A11,">="&DATE(2026,11,1),A2:A11,"<"&DATE(2026,12,1)) gives North's November 2026 revenue, 4,140. You cannot write MONTH(A2:A11) as a criteria range; SUMIFS only accepts real ranges there, and Excel rejects the formula.
SUMPRODUCT can run MONTH on every date, which feels more natural. But =SUMPRODUCT((B2:B11="North")*(MONTH(A2:A11)=11)*F2:F11) returns 5,440, not 4,140. MONTH ignores the year, so Ben's laptop sale from 18 November 2025 (1,300) sneaks in. Add a YEAR test, as below, or stick with the date range, which is exact by design.
Result: 4140
4,140, the same as the SUMIFS date range: Ana's 2,700 and Cal's 1,440.
OR logic: easy in SUMPRODUCT, awkward in SUMIFS
SUMIFS joins its conditions with AND only. For North or West in the same column, add one SUMIFS per value, or pass both values as an array constant and wrap it in SUM: =SUM(SUMIFS(F2:F11,B2:B11,{"North","West"})) returns 16,700. SUMPRODUCT adds the tests instead of multiplying them: =SUMPRODUCT(((B2:B11="North")+(B2:B11="West"))*F2:F11) gives the same 16,700.
OR across two different columns is where SUMPRODUCT clearly wins. North or Laptop: a North laptop row passes both tests, so plain addition gives it a 2 and counts it twice (24,720). Wrapping the sum in >0 turns every match back into a single TRUE. With SUMIFS you would need North plus Laptop minus North-and-Laptop, three SUMIFS, to get the same 18,220.
Result: 18220
18,220: every North sale plus the laptops sold in East and West, each row counted once.
Tests SUMIFS cannot do at all
Any condition that needs a function on each row is SUMPRODUCT's job. Weekend sales use WEEKDAY: with return type 2, Saturday is 6 and Sunday is 7, so >5 keeps the weekend. Three rows qualify: Saturday 3 October, Sunday 11 October and Saturday 14 November. The SUMIFS alternative is a helper column with =WEEKDAY(A2,2) that you then test with ">5".
Wildcards go the other way. SUMIFS understands them: =SUMIFS(F2:F11,D2:D11,"*top") returns 13,000 for laptops. SUMPRODUCT compares exactly, so a partial match needs ISNUMBER(SEARCH("top",D2:D11)) instead, which gives the same 13,000.
Neither is case-sensitive by default. =SUMIFS(F2:F11,B2:B11,"north") still returns 11,720, and so does B2:B11="north" inside SUMPRODUCT. Only SUMPRODUCT can be made strict: =SUMPRODUCT(EXACT(B2:B11,"north")*F2:F11) returns 0, because every cell says North with a capital N.
Result: 11260
11,260 from weekend sales: 5,200 + 2,160 + 3,900.
Numbers stored as text give different totals
East's Dock sale on 9 November was imported as the text 1200, not a number. SUMIFS skips text in the sum range, so =SUMIFS(F2:F11,B2:B11,"East") returns 4,760. Multiplying with * coerces text that looks like a number, so the SUMPRODUCT version adds the 1,200 and returns 5,960. Two formulas that look equivalent disagree, and neither warns you.
The comma form behaves like SUMIFS: =SUMPRODUCT(--(B2:B11="East"),F2:F11) also returns 4,760, because SUMPRODUCT treats non-numbers in its arguments as 0. And text that is not a number, like n/a, makes the * version fail with #VALUE!.
Do not pick a formula to work around this; fix the data. =COUNTA(F2:F11)-COUNT(F2:F11) returns 1 here: one non-empty cell in the revenue column is not a number. Convert it (the green triangle menu > Convert to Number), and both functions agree on 5,960.
Result: 5960
5,960: the text 1200 is counted. SUMIFS gives 4,760 for the same question.
Side by side, and which to pick
Conditions: SUMIFS tests cell values against fixed criteria, joined with AND. SUMPRODUCT tests anything you can calculate per row (MONTH, WEEKDAY, LEN, units x price) and does OR with +.
Matching: SUMIFS supports wildcards (* and ?) and operators in text, like ">=10". SUMPRODUCT compares exactly unless you add SEARCH, and only SUMPRODUCT can be case-sensitive with EXACT.
Data problems: SUMIFS skips text and handles a header row inside the range. SUMPRODUCT with * coerces text numbers, and a header or n/a cell in a multiplied range returns #VALUE!.
Speed and ranges: SUMIFS is usually faster on large sheets and copes well with whole columns like F:F. SUMPRODUCT calculates every cell you give it, so use exact ranges or a table, never whole columns. SUMIFS also returns #VALUE! when it points at another workbook that is closed; SUMPRODUCT still calculates.
Verdict: start with SUMIFS. It is the clearer formula for the common case of one or more AND conditions on columns. Switch to SUMPRODUCT when you need a calculated condition, OR across columns, case-sensitive matching, or links to closed workbooks. SUMIFS is in Excel 2007 and later; SUMPRODUCT works in every version.
Common mistakes
MONTH without YEAR in SUMPRODUCT
MONTH(A2:A11)=11 matches November of every year. Add (YEAR(A2:A11)=2026), or use a SUMIFS date range from the 1st to the 1st of the next month.
Double counting with OR across columns
(B2:B11="North")+(D2:D11="Laptop") is 2 for a North laptop. Wrap the sum in >0 before multiplying by the values.
Including the header row in SUMPRODUCT
=SUMPRODUCT((B1:B11="North")*F1:F11) returns #VALUE!, because the text Revenue is multiplied. Start the ranges on row 2.
Totals that differ between the two
Usually numbers stored as text: SUMIFS skips them and * counts them. Check with COUNTA minus COUNT and convert the column.
FAQ
Is SUMPRODUCT faster than SUMIFS?
Usually not. SUMIFS is built for conditional sums and is generally the quicker of the two on large data. SUMPRODUCT works through every cell in every range, which is why whole-column references make it slow.
Can SUMIFS do OR conditions?
Within one column, yes: =SUM(SUMIFS(F2:F11,B2:B11,{"North","West"})) adds both regions. Across different columns, you need several SUMIFS and must subtract the overlap, so SUMPRODUCT with ((test1)+(test2)>0) is simpler.
Can I use MONTH inside SUMIFS?
No. SUMIFS needs real ranges as criteria ranges, not calculated arrays. Use a date range instead (">="&DATE(2026,11,1) and "<"&DATE(2026,12,1)), add a helper column with =MONTH(A2), or switch to SUMPRODUCT.
Do I need Ctrl+Shift+Enter for SUMPRODUCT?
No. SUMPRODUCT handles arrays itself in every version of Excel, which is why it was the standard way to sum with calculated conditions before Excel 365.
Why does my SUMPRODUCT return #VALUE!?
A multiplied range contains text that is not a number (often the header row or an n/a), or the ranges in the comma form are different sizes. Start ranges on the first data row and make them all the same height.
Functions used
SUMPRODUCTMultiply then addSUMIFSAdds with several conditionsSUMAdds numbersMONTHMonth numberYEARYear of a dateWEEKDAYDay of the week as a numberDATEBuilds a dateISNUMBERIs it a number?SEARCHPosition of textEXACTSame text, case included?COUNTACounts non-empty cellsCOUNTCounts numbers
Related guides
- How to use SUMPRODUCT in Excel
- SUMIF vs SUMIFS: what is the difference?
- SUMIF with multiple criteria in Excel (SUMIFS)
- SUMIF with OR: sum if a cell matches one of several values
- SUMIFS not working or returning 0: how to fix it
- How to extract month and year from a date in Excel
- How to convert one column into multiple columns in Excel
Updated