x
Solved

Help needed in Excel with SUMPRODUCT/COUNTIFS

Posted on 2013-06-12
Medium Priority
1,107 Views
I have a question on the ability (or syntax) to combine SUMPRODUCT with COUNTIFS.

This formula returns the correct value

=SUMPRODUCT(COUNTIFS('Selected VDOTs'!\$D\$2:\$D\$541,M\$1,'Selected VDOTs'!\$C\$2:\$C\$541,"9=High",'Selected VDOTs'!\$G\$2:\$G\$541,"Clean-Up",'Selected VDOTs'!\$J\$2:\$J\$541,{"Changes Required","Validated"}))

…well sort of.  The actual count is 16.  But, it’s returning 15.75. Does anyone know why?  (I changed the format of the number to 0 digits to force it to round up.  But, that’s causing a problem with Excel calculated 15.25.)

However, when I add the unique flag (1), the formula does not work at all.  (Is it because I’m trying to use it with COUNTIFS?)

=SUMPRODUCT(1/COUNTIFS('Selected VDOTs'!\$D\$2:\$D\$541,M\$1,'Selected VDOTs'!\$C\$2:\$C\$541,"9=High",'Selected VDOTs'!\$G\$2:\$G\$541,"Clean-Up",'Selected VDOTs'!\$J\$2:\$J\$541,{"Changes Required","Validated"}))

Also,

How can I use an “Or” condition similar to the above with one of my criteria statements in COUNTIFS?  When I only have 1 value as my criteria for any given column, the formula works great:
=SUMPRODUCT(1/COUNTIF('Selected VDOTs'!\$E\$2:\$E\$541,'Selected VDOTs'!\$E\$2:\$E\$541)*('Selected VDOTs'!\$D\$2:\$D\$541=S\$1)*('Selected VDOTs'!\$C\$2:\$C\$541="9=High")*('Selected VDOTs'!\$G\$2:\$G\$541="Clean-Up"))

Please see the attached Word doc with snippets of the data.
excel-question.docx
0
Question by:Feisty472
• 2

LVL 37

Expert Comment

ID: 39243394
Could you attach an Excel document with the data?

Otherwise we'll be kind of guessing where it should go if we try to replicate your setup.
0

LVL 50

Expert Comment

ID: 39244053
You say that this formula returns 15.75

=SUMPRODUCT(COUNTIFS('Selected VDOTs'!\$D\$2:\$D\$541,M\$1,'Selected VDOTs'!\$C\$2:\$C\$541,"9=High",'Selected VDOTs'!\$G\$2:\$G\$541,"Clean-Up",'Selected VDOTs'!\$J\$2:\$J\$541,{"Changes Required","Validated"}))

I'd be very surprised, I think one of the other formulas might but in the above COUNTIFS can only return whole numbers and SUMPRODUCT is simply summing those.

Where you have divided 1 by COUNTIFS that might give you a non-integer result.....

I'm not really sure what you are trying to do with this formula, can you explain in words what you are trying to do, why the reference to column E, is that where you want the unique count?

=ROUNDUP(SUMPRODUCT(1/COUNTIF('Selected VDOTs'!\$E\$2:\$E\$543,'Selected VDOTs'!\$E\$2:\$E\$543)*('Selected VDOTs'!\$D\$2:\$D\$543=B\$1)*('Selected VDOTs'!\$C\$2:\$C\$543="9=High")),0)

As it stands I don't think that formula will work to do what you want, you can't simply combine a 1/COUNTIFS with other criteria to get a unique count

regards, barry
0

LVL 50

Accepted Solution

barry houdini earned 2000 total points
ID: 39244064
generically to return a unique count of items in col1 where col2, col3 and col4 meet conditions you can use a formula like this

=SUM(IF(FREQUENCY(IF((Col2=Cond2)*(Col3=Cond3)*(Col4=Cond4),IF(Col1<>"",MATCH(Col1,Col1,0))),ROW(Col1)-MIN(ROW(Col1))+1),1))

confirmed with CTRL+SHIFT+ENTER

you can add or subtract conditions from this part as required

(Col2=Cond2)*(Col3=Cond3)*(Col4=Cond4)

....and if any of the conditions are for multiple matches you can use ISNUMBER(MATCH, so if col3 can be "x", "y" or "z" change to

(Col2=Cond2)*(ISNUMBER(MATCH(Col3,{"x","y","z"},0)))*(Col4=Cond4)

so with your data if the intention is to get a count of different col E values with the following criteria in other columns:

where col D = B1
where col C = "9=High"

then the formula can be as follows

=SUM(IF(FREQUENCY(IF(('Selected VDOTs'!\$D\$2:\$D\$543=B\$1)*('Selected VDOTs'!\$C\$2:\$C\$543="9=High"),IF('Selected VDOTs'!\$E\$2:\$E\$543<>"",MATCH('Selected VDOTs'!\$E\$2:\$E\$543,'Selected VDOTs'!\$E\$2:\$E\$543,0))),ROW('Selected VDOTs'!\$E\$2:\$E\$543)-ROW('Selected VDOTs'!\$E\$2)+1),1))

confirmed with CTRL+SHIFT+ENTER

regards, barry
0

Author Closing Comment

ID: 39268568
Thanks Barry!
0

Featured Post

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.