# Sum columns based on adjacent criteria

=SUMPRODUCT(--(range1=criteria),range2)

To sum or subtotal columns based on criteria in adjacent columns, you can use a formula based on the SUMPRODUCT function. In the example shown, the formula in J5 is:

=SUMPRODUCT(--($B5:$H5=J$4),$C5:$I5)

### How this formula works

At the core, this formula uses SUMPRODUCT to multiply then sum products of two arrays: **array1** and **array2**. The first array, **array1** is set up to act as a "filter" to allow only values that meet criteria.

**Array1** uses a range that begins on the first column that contains values that must pass criteria. These "criteria values" sit in a column to the left of, and immediately adjacent to, the "data values".

The criteria is applied as a simple test that creates an array of TRUE and FALSE values:

--($B5:$H5=J$4)

This bit of the formula "tests" each value in the first array using the criteria supplied, then uses a double-negative (--) to coerce the resulting TRUE and FALSE values to 1's and 0's. The result looks like this:

{1,0,0,0,1,0,1}

Note that 1s correspond to columns 1,5, and 7, which meet the criteria of "A".

For **array2** inside of SUMPRODUCT, we use a range that is "shifted" by one column to the right. This range starts with the first column contain values to sum and ends with the last column that contains values to sum.

So, in the example formula in J5, after the arrays have been populated, we have:

=SUMPRODUCT({1,0,0,0,1,0,1},{1,"B",1,"A",1,"A",1})

Since SUMPRODUCT is programmed specifically to ignore the errors that result from multiplying text values, the final array looks like this:

{1,0,0,0,1,0,1}

The only values that "survive" multiplication are those that correspond to 1s inside **array1**. You can think of the logic in **array1** "filtering" the values in **array2**.

## Excel Formula Training

Formulas are the key to getting things done in Excel. In this accelerated training, you'll learn how to use formulas to manipulate text, work with dates and times, lookup values with VLOOKUP and INDEX & MATCH, count and sum with criteria, dynamically rank values, and create dynamic ranges. You'll also learn how to troubleshoot, trace errors, and fix problems. Instant access. See details here.