Determine the sum of values based on other values in a different range in Excel


Can you help me with an Excel (2007) formula to determine the sum of several values in a particular range when the basis for which values to include is defined by values in a different range?

For example, suppose each cell in the range B3:B11 contains some random value as shown in the first screenshot below.  Furthermore, suppose some of the cells in the adjacent range C3:C11 contain an "x":
 1    1)  What formula would be best to use in cell C2 to display the sum of the column B values for which, in column C, an "x" is present in the corresponding row (i.e. 3 + 4+ 1 +1 = 9)?

    2)  and, so that the formula could be pasted at the top of additional columns to display a similar total for each:
    3)  and finally, so that any other letter or symbols could be used in place of "x" and still give the totals:
I'm pretty sure the answers to 2 & 3 are to: make the column B reference absolute and use ...,<>"",... respectively but I just wanted to include them to be sure.

Thanks EE-20101223.xlsx
Who is Participating?
I wear a lot of hats...


Here you go:

for example:
in cell C2 add the following formula and press Ctrl+Shift+Enter:
You can drag to cover the header of the other columns.

You could use SUMPRODUCT for the purpose. It is not an array formula and hence much faster (easy visible with sizable sets of data).
paste the formula in C2 and drag it into the rest of the row headers
Rory ArchibaldCommented:
A simple SUMIF will do it:

in C2: =SUMIF(C3:C11,"<>",$B$3:$B$11)
and copy across.

Experts Exchange Solution brought to you by

Your issues matter to us.


Start your 7-day free trial
Introduction to R


barry houdiniCommented:
Hello Steve,

The optimal function for a single condition is SUMIF, non-array and more efficeint than SUMPRODUCT. For "x"s this formula in C2 copied across


for just "not empty" you can use the criteria "<>", i.e.


regards, barry
barry houdiniCommented:
......ah, too slow, Merry Christmas Rory......:)
Rory ArchibaldCommented:
Merry Christmas, Barry - I assume the extra ellipses were my present? :)
Yes @Steve_Brady, SUMIF is more efficient then SUMPRODUCT :) (But I guess SUMIF is not available in 2003 though... use SUMIF if you are using 2007 or higher). SUMPRODUCT actually works as an array formula internally though and hence slower.
Merry Christmas to you both - Barry and Rory :)
Rory ArchibaldCommented:
SUMIF is available in all Excel versions, as far back as I remember. (it's SUMIFS that is only available from 2007 on)

Merry Christmas!
Steve_BradyAuthor Commented:
Thanks for the responses.

You could use SUMPRODUCT for the purpose.

Can you explain the multiplication indicator (*) in this formula?  I looked up =SUMPRODUCT() which has this syntax:

    SUMPRODUCT(array1,array2,array3, ...)

and from the documentation it seems that the multiplication is supposed to be done automatically with the resulting products then being summed.  So why is the * needed in this case?

A simple SUMIF will do it:

The SUMIF formula certainly is the shortest and it works. However, although I understand that <> is "not equal to," I have no clue how the "<>" works as the 2nd argument in this formula.  Please explain.

Nevermind.  Barry gave the explanation:


Thanks for explaining it Barry.  One question it raises though.  For "not empty," I always use <>"" as in "not equal to nothing."  However, does the simple <> work just as well.  In other words, does <> actually mean "not empty" all the time or just in this case?

Rory ArchibaldCommented:
The <> only works without the "" comparison for SUMIF/COUNTIF formulas.
Steve_BradyAuthor Commented:

Thanks rorya.
Steve_BradyAuthor Commented:
barry houdiniCommented:
Hello Steve

Rather than


some people prefer to use a syntax like this


The results will be the same but I believe the second one is very marginally more efficient. In the first one the arrays are multiplied to form one array (of 1/0 values, created by multiplying arrays of TRUE/FALSE values) and SUMPRODUCT operates on that single array (although I think the help on SUMPRODUCT says there must be at least 2 arrays - that's wrong), thereby only summing not productting

With the second syntax there are two arrays of TRUE/FALSE values, explicitly converted by using -- to 1/0 values. SUMPRODUCT then works on the 2 arrays, so the result is the same but the methods are different.

You can use other operators for the explicit conversion from TRUE/FALSE to 1/0. Typically any mathematical operation that doesn't change the value like adding 0 or multiplying by zero. I favour +0, partly because there have been instances in Excel 2007 where using -- in SUMPRODUCT leads to it not updating when values were changed, i.e.


Note that given the fact that in the first formula above the single array only needs to be summed, that version can use SUM rather than SUMPRODUCT, i.e.


The downside is that you need to "array enter" that version which you don't with the SUMPRODUCT

If you haven't see Bob Phillips write up on SUMPRODUCT its worth reading here

regards, barry

Microsoft Excel

From novice to tech pro — start learning today.