Excel - How to combine SUMPRODUCT with COUNTIF?

Asked By mckzac on 21-Mar-08 12:34 PM
Greetings,

I need to count up the number of occurrences of the letter "Q" in Column A,
only if the string in Column B = "Claims."

That is, how do I combine . . .

=SUMPRODUCT(LEN(A1:A100)-LEN(SUBSTITUTE(A1:A100,"Q","")))
AND
=COUNTIF(B1:B100,"Claims")

I have tried various approaches and different formulas, but nothing seems to
work.  Any help at all would be appreciated.  Thanks in advance.




Don Guillett replied on 21-Mar-08 12:47 PM
this will count where the cell in a is Q and the cell in b is claims

=SUMPRODUCT((A1:A100,"q")*(b1:b100="claims"))

--
Don Guillett
Microsoft MVP Excel
SalesAid Software
dguillett1@austin.rr.com
mckzac replied on 21-Mar-08 01:06 PM
Thanks, but that doesn't work either.
Incidentally, Column A cells may contain from 1 to 15 different letters.  My
dilemma is that I'm only looking for those including "Q" (and "Claims" in
Column B).
Dave Peterson replied on 21-Mar-08 01:19 PM
Don had a small typo.

Try this:

=SUMPRODUCT((A1:A100="q")*(b1:b100="claims"))


--

Dave Peterson
Sandy Mann replied on 21-Mar-08 01:38 PM
If by:


Your mean that there could be other letters in the cell then use your own
formula:

=SUMPRODUCT((LEN(A1:A100)-LEN(SUBSTITUTE(A1:A100,"Q",""))),--(B1:B100="Claims"))

Note however that it is case ensitive and it will return wrong results if
there are more than one *Q* in the cell.  To avaid there errors try:

=SUMPRODUCT(--(LEN(SUBSTITUTE(UPPER(A1:A100),"Q",""))<>LEN(A1:A100)),--(B1:B100="Claims"))

This assumes that *Claims* is the only entry in the matching cells in Column
B

--
HTH

Sandy
In Perth, the ancient capital of Scotland
and the crowning place of kings

sandymann2@mailinator.com
Replace @mailinator.com with @tiscali.co.uk
mckzac replied on 21-Mar-08 02:01 PM
Sandy, that worked!  Thanks very much for the response.
Don Guillett replied on 21-Mar-08 02:50 PM
Array formula that must be entered using ctrl+shift+enter
=SUM(IF(ISERROR(SEARCH("q",$C$1:$C$22)),0,1)*($D$1:$D$22="claims"))

A macro using ucase and lcase
Sub countpartials()
For Each c In Range("c2:c12")
If InStr(UCase(c), "Q") > 0 And LCase(c.Offset(, 1)) _
= "claims" Then ctr = ctr + 1
Next c
MsgBox ctr
End Sub

--
Don Guillett
Microsoft MVP Excel
SalesAid Software
dguillett1@austin.rr.com
Sandy Mann replied on 21-Mar-08 02:57 PM
Glad that it worked for you.  Thanks for the feedback.

--

Sandy
In Perth, the ancient capital of Scotland
and the crowning place of kings

sandymann2@mailinator.com
Replace @mailinator.com with @tiscali.co.uk