?
Solved

Help needed in Excel with SUMPRODUCT/COUNTIFS

Posted on 2013-06-12
4
Medium Priority
?
877 Views
Last Modified: 2013-06-22
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
Comment
Question by:Feisty472
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 34

Expert Comment

by:Norie
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

by:barry houdini
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

by:
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

by:Feisty472
ID: 39268568
Thanks Barry!
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article describes how you can use Custom Document Properties to store settings and other information in your workbook so that they will be available the next time you open the workbook.
After seeing numerous questions for Dynamic Data Validation I notice that most have used Visual Basic to solve the problem. This suggestion is purely formula based and can be used in multiple rows.
Graphs within dashboards are meant to be dynamic, representing data from a period of time that will change each time the dashboard is updated with new data. Rather than update each graph to point to a different set within a static set of data, t…
This Micro Tutorial will demonstrate in Microsoft Excel how to add style and sexy appeal to horizontal bar charts.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question