Explanation
In this example, the goal is to sum the value of orders that have a status of "Complete" or "Pending". This is a slightly tricky problem in Excel because the SUMIFS function is designed for conditional sums based on multiple criteria, but all criteria must be TRUE in order for a value to be included in the sum. In other words, criteria used in the SUMIFS function is joined with AND logic, not OR logic. In simple scenarios, a simple solution is to use the SUMIFS function with an array constant.
SUMIFS function
The SUMIFS function sums the values in a range that meet multiple criteria. It is similar to the SUMIF function, which only allows a single condition, but SUMIFS allows multiple criteria, using AND logic. This can be illustrated with the following formulas:
=SUMIFS(E5:E16,D5:D16,"complete") // returns 150
=SUMIFS(E5:E16,D5:D16,"pending") // returns 50
=SUMIFS(E5:E16,D5:D16,"complete",D5:D16,"pending") // returns 0
Notice the first two formulas correctly return the total of complete and pending orders, but the last formula returns zero because an order cannot be "Complete" and "Pending" at the same time. This is because the SUMIFS function only allows AND logic – all conditions must be TRUE in order for a value to be included in the sum.
SUMIFS + SUMIFS
One simple solution is to use SUMIFS twice in a formula like this:
=SUMIFS(E5:E16,D5:D16,"complete")+SUMIFS(E5:E16,D5:D16,"pending")
This formula returns a correct result of $200, but it is redundant and doesn't scale well.
SUMIFS + array constant
Another option is to supply SUMIFS with an array constant that holds more than one criteria like this:
=SUMIFS(E5:E16,D5:D16,{"complete","pending"}) // returns {150,50}
Through a formula behavior called "lifting", this will cause SUMIFS to be evaluated twice, once for "complete" and once for "pending", and SUMIFS will return two results in an array like this:
{150,50}
If you enter the formula above in the latest version of Excel, which supports dynamic array formulas, you will see both results spill into a range that contains two cells. Because we want a single result, we nest the SUMIFS function in the SUM function like this:
=SUM(SUMIFS(E5:E16,D5:D16,{"complete","pending"}))
This is the formula used in the worksheet shown. The formula evaluates like this:
=SUM(SUMIFS(E5:E16,D5:D16,{"complete","pending"}))
=SUM({150,50})
=200
With wildcards
You can use wildcards in the criteria if needed. For example, to sum items that contain "red" or "blue" anywhere in the criteria_range, you can use:
=SUM(SUMIFS(sum_range,criteria_range,{"*red*","*blue*"}))
Adding another OR criteria
You can add one more OR-type criteria to this formula, but you'll need to use a horizontal array for one criteria and a vertical array for the other. So, for example, to sum orders that are "Complete" or "Pending", when the customer is "Andy Garcia" or "Bob Jones", you can use a formula like this:
=SUM(SUMIFS(E4:E16,D4:D16,{"complete","pending"},C4:C16,{"Bob Jones";"Andy Garcia"}))
Note the semi-colons in the second array constant, which represents a vertical array. This works because Excel "pairs" elements in the two array constants, and returns a two dimensional array of results. To apply additional criteria, you will want to move to a formula based on SUMPRODUCT.
Cell references for criteria
You can't use cell references inside an array constant, you must use a proper range. When you switch from array constants to ranges, the formula becomes an array formula in older versions of Excel and must be entered with control + shift + enter:
={SUM(SUMIFS(range1,range2,range3))}
Where range1 is the sum range, range2 is the criteria range, and range3 contains multiple criteria on the worksheet. With two OR criteria, you'll need to use horizontal and vertical arrays as explained above.
Note: this is an array formula and must be entered with control + shift + enter.