Adds numbers only where every one of several conditions is true at once.
SUMIFS is SUMIF for the real world, where you rarely filter on just one thing. Sales in the North region, in the Hardware category, above £500 — SUMIFS takes all three conditions and adds only the rows where every one of them holds.
The important detail is that it reverses SUMIF's argument order. SUMIFS puts the range you are adding first, then pairs of range and criteria after it. This trips up almost everyone who learned SUMIF first, and it is the reason many people simply use SUMIFS everywhere, even for a single condition — one argument order to remember instead of two.
Conditions combine with AND, never OR. Every pair you add narrows the result further. To total rows matching either of two things, add two SUMIFS together.
=SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)sum_rangecriteria_range1criteria1criteria_range2, criteria2, ...Headers in row 1, data in A2:D6.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Region | Rep | Category | Amount |
| 2 | North | Alice | Hardware | 1240 |
| 3 | South | Bruno | Software | 385 |
| 4 | North | Chen | Hardware | 2100 |
| 5 | South | Alice | Software | 940 |
| 6 | North | Bruno | Software | 156 |
=SUMIFS(D2:D6, A2:A6, "North", C2:C6, "Hardware")Result: 3340
Two conditions. Only the two rows that are both North and Hardware are added.
=SUMIFS(D2:D6, A2:A6, "South", B2:B6, "Alice")Result: 940
A single row satisfies both conditions.
=SUMIFS(D2:D6, A2:A6, "North", D2:D6, ">500")Result: 3340
The sum range can also be a criteria range — North rows worth more than 500, which excludes Bruno's 156.
=SUMIFS(D2:D6, C2:C6, "Software")Result: 1481
One condition, written as SUMIFS. Note the range order is the opposite of the equivalent SUMIF.
Reading about a formula is not the same as writing one. Open this function's exercise and type it into a real grid — you get instant feedback on exactly which cell is wrong and why.
Why it happens: One of the criteria ranges is a different size from sum_range. SUMIFS is strict about this where SUMIF is not.
How to fix it: Make every range exactly the same height. Whole-column references (D:D, A:A) are the easy way to guarantee it.
Why it happens: The conditions are mutually exclusive, or one of them does not match the stored data — the usual text-versus-number and trailing-space problems.
How to fix it: Remove conditions one at a time until it returns something. The one that changes the answer to 0 is the broken one.
Why it happens: Arguments were supplied in SUMIF's order, so what you meant as sum_range was read as criteria_range1.
How to fix it: SUMIFS starts with the range you are adding. If your formula starts with the range you are testing, it is written as a SUMIF.
Because SUMIFS accepts an unlimited number of criteria pairs, the sum range has to come first — there is no fixed position at the end for it to occupy. It is an unfortunate inconsistency, and the simplest response is to use SUMIFS for everything.
Not within one formula: every criteria pair narrows the result with AND. To total rows matching either condition, add two SUMIFS together, or use SUMPRODUCT for anything more complicated.
Use two conditions on the date column, one for each end: =SUMIFS(D:D, E:E, ">="&F1, E:E, "<="&F2), where F1 and F2 hold the start and end dates. Putting the dates in cells rather than in the formula keeps them editable.
Longer reads where this function does real work in a real sheet.