#1   Report Post  
Sho
 
Posts: n/a
Default SUMPRODUCT

I have the following formula which adds column D based on criteria in column
C. I now want to amend this so that it performs this calculation if the
values in Sheet 2 cells G2:G11=Sheet1!A1.

=SUMPRODUCT((Sheet2!$B$3:$B$11=Sheet1!$A14)*(Sheet 2!$C$3:$C$11="INT")*Sheet2!$D$2:$D$11)+SUMPRODUCT( (Sheet2!$B$3:$B$11=Sheet1!$A14)*(Sheet2!$C$3:$C$11 ="ACC")*Sheet2!$D$2:$D$11)+SUMPRODUCT((Sheet2!$B$3 :$B$11=Sheet1!$A14)*(Sheet2!$C$3:$C$11="CCT")*Shee t2!$D$2:$D$11)

I have tried the following formula which works on the first cell but when I
autofill this down to apply the formula to look at cells A15, A16 etc I do
not get any values.

=IF(Sheet2!$G$2:$G$11=Sheet1!$A$1,SUMPRODUCT((Shee t2!$B$3:$B$11=Sheet1!$A14)*(Sheet2!$C$3:$C$11="INT ")*Sheet2!$D$2:$D$11)+SUMPRODUCT((Sheet2!$B$3:$B$1 1=Sheet1!$A14)*(Sheet2!$C$3:$C$11="ACC")*Sheet2!$D $2:$D$11)+SUMPRODUCT((Sheet2!$B$3:$B$11=Sheet1!$A1 4)*(Sheet2!$C$3:$C$11="CCT")*Sheet2!$D$2:$D$11),0)


Any ideas?

  #2   Report Post  
Domenic
 
Posts: n/a
Default SUMPRODUCT

Try...

=SUMPRODUCT((Sheet2!$B$3:$B$11=Sheet1!$A14)*(ISNUM BER(MATCH(Sheet2!$C$3:$
C$11,{"INT","ACC","CCT"},0)))*(Sheet2!$G$3:$G$11=S heet1!A1),Sheet2!$D$3:$
D$11)

Note that the ranges need to be the same size. Therefore, adjust them
accordingly.

Hope this helps!

In article ,
Sho wrote:

I have the following formula which adds column D based on criteria in column
C. I now want to amend this so that it performs this calculation if the
values in Sheet 2 cells G2:G11=Sheet1!A1.

=SUMPRODUCT((Sheet2!$B$3:$B$11=Sheet1!$A14)*(Sheet 2!$C$3:$C$11="INT")*Sheet2!$
D$2:$D$11)+SUMPRODUCT((Sheet2!$B$3:$B$11=Sheet1!$A 14)*(Sheet2!$C$3:$C$11="ACC"
)*Sheet2!$D$2:$D$11)+SUMPRODUCT((Sheet2!$B$3:$B$11 =Sheet1!$A14)*(Sheet2!$C$3:$
C$11="CCT")*Sheet2!$D$2:$D$11)

I have tried the following formula which works on the first cell but when I
autofill this down to apply the formula to look at cells A15, A16 etc I do
not get any values.

=IF(Sheet2!$G$2:$G$11=Sheet1!$A$1,SUMPRODUCT((Shee t2!$B$3:$B$11=Sheet1!$A14)*(
Sheet2!$C$3:$C$11="INT")*Sheet2!$D$2:$D$11)+SUMPRO DUCT((Sheet2!$B$3:$B$11=Shee
t1!$A14)*(Sheet2!$C$3:$C$11="ACC")*Sheet2!$D$2:$D$ 11)+SUMPRODUCT((Sheet2!$B$3:
$B$11=Sheet1!$A14)*(Sheet2!$C$3:$C$11="CCT")*Sheet 2!$D$2:$D$11),0)


Any ideas?

  #3   Report Post  
Harlan Grove
 
Posts: n/a
Default SUMPRODUCT

Domenic wrote...
Try...

=SUMPRODUCT((Sheet2!$B$3:$B$11=Sheet1!$A14)
*(ISNUMBER(MATCH(Sheet2!$C$3:$C$11,{"INT","ACC"," CCT"},0)))
*(Sheet2!$G$3:$G$11=Sheet1!A1),Sheet2!$D$3:$D$1 1)

....

ISNUMBER(MATCH(..)) would only be needed when Sheet2!D3:D11 could
contain text. If that range would always contain numbers or blank
cells, the formula could be simplified to

=SUMPRODUCT((Sheet2!$B$3:$B$11=Sheet1!$A14)
*(Sheet2!$C$3:$C$11={"INT","ACC","CCT"})
*(Sheet2!$G$3:$G$11=Sheet1!A1)*Sheet2!$D$3:$D$11)

If the codes "INT", "ACC", and "CCT" were entered in a range named
CODES, the formula could be rewritten as

=SUMPRODUCT((Sheet2!$B$3:$B$11=Sheet1!$A14)
*COUNTIF(Codes,Sheet2!$C$3:$C$11)
*(Sheet2!$G$3:$G$11=Sheet1!A1),Sheet2!$D$3:$D$11)

  #4   Report Post  
Domenic
 
Posts: n/a
Default SUMPRODUCT

In article .com,
"Harlan Grove" wrote:

Domenic wrote...
Try...

=SUMPRODUCT((Sheet2!$B$3:$B$11=Sheet1!$A14)
*(ISNUMBER(MATCH(Sheet2!$C$3:$C$11,{"INT","ACC"," CCT"},0)))
*(Sheet2!$G$3:$G$11=Sheet1!A1),Sheet2!$D$3:$D$1 1)

...

ISNUMBER(MATCH(..)) would only be needed when Sheet2!D3:D11 could
contain text. If that range would always contain numbers or blank
cells, the formula could be simplified to

=SUMPRODUCT((Sheet2!$B$3:$B$11=Sheet1!$A14)
*(Sheet2!$C$3:$C$11={"INT","ACC","CCT"})
*(Sheet2!$G$3:$G$11=Sheet1!A1)*Sheet2!$D$3:$D$11)


Thanks Harlan! But isn't ISNUMBER/MATCH more efficient than
={"INT","ACC","CCT"} ?

If the codes "INT", "ACC", and "CCT" were entered in a range named
CODES, the formula could be rewritten as

=SUMPRODUCT((Sheet2!$B$3:$B$11=Sheet1!$A14)
*COUNTIF(Codes,Sheet2!$C$3:$C$11)
*(Sheet2!$G$3:$G$11=Sheet1!A1),Sheet2!$D$3:$D$11)


Nice, Harlan! But which one is more efficient, ISNUMBER/MATCH or
COUNTIF?
  #5   Report Post  
Harlan Grove
 
Posts: n/a
Default SUMPRODUCT

Domenic wrote...
"Harlan Grove" wrote:
Domenic wrote...

....
=SUMPRODUCT((Sheet2!$B$3:$B$11=Sheet1!$A14)
*(ISNUMBER(MATCH(Sheet2!$C$3:$C$11,{"INT","ACC" ,"CCT"},0)))
*(Sheet2!$G$3:$G$11=Sheet1!A1),Sheet2!$D$3:$D$1 1)

....
=SUMPRODUCT((Sheet2!$B$3:$B$11=Sheet1!$A14)
*(Sheet2!$C$3:$C$11={"INT","ACC","CCT"})
*(Sheet2!$G$3:$G$11=Sheet1!A1)*Sheet2!$D$3:$D$11 )


Thanks Harlan! But isn't ISNUMBER/MATCH more efficient than
={"INT","ACC","CCT"} ?


Depends. Two function calls aren't free, and there's also the boolean
to numeric conversion.

If the codes "INT", "ACC", and "CCT" were entered in a range named
CODES, the formula could be rewritten as

=SUMPRODUCT((Sheet2!$B$3:$B$11=Sheet1!$A14)
*COUNTIF(Codes,Sheet2!$C$3:$C$11)
*(Sheet2!$G$3:$G$11=Sheet1!A1),Sheet2!$D$3:$D$11 )


Nice, Harlan! But which one is more efficient, ISNUMBER/MATCH or
COUNTIF?


One function call returning numbers vs two function calls returning
booleans that need to be converted to numbers.

I benchmarked the recalc speeds. Your formula does recalculate faster
than either of mine when there are relatively many matches in the range.



  #6   Report Post  
Domenic
 
Posts: n/a
Default SUMPRODUCT

Thanks Harlan! It confirms what I understood to be true -- that
ISNUMBER/MATCH is more efficient. It's also my understanding that using
the double negative to coerce TRUE/FALSE is more efficient.

For these reasons, I prefer to use both the comma syntax and
ISNUMBER/MATCH...

=SUMPRODUCT(--(Sheet2!$B$3:$B$11=Sheet1!$A14),--(ISNUMBER(MATCH(Sheet2!$C
$3:$C$11,{"INT","ACC","CCT"},0))),--(Sheet2!$G$3:$G$11=Sheet1!A1),Sheet2!
$D$3:$D$11)

There's also another reason -- and don't laugh! :) It's because of
aesthetics. I don't particularly like the look of the end bit when
using the star syntax...

)*Sheet2!$D$3:$D$11)

Okay, you can laugh. :) But, yes, I do realize that unless there's a
large number of matches in the range, the difference in speed won't be
apparent, or any difference in speed will be negligible.

In article .com,
"Harlan Grove" wrote:

Domenic wrote...
"Harlan Grove" wrote:
Domenic wrote...

...
=SUMPRODUCT((Sheet2!$B$3:$B$11=Sheet1!$A14)
*(ISNUMBER(MATCH(Sheet2!$C$3:$C$11,{"INT","ACC" ,"CCT"},0)))
*(Sheet2!$G$3:$G$11=Sheet1!A1),Sheet2!$D$3:$D$1 1)

...
=SUMPRODUCT((Sheet2!$B$3:$B$11=Sheet1!$A14)
*(Sheet2!$C$3:$C$11={"INT","ACC","CCT"})
*(Sheet2!$G$3:$G$11=Sheet1!A1)*Sheet2!$D$3:$D$11 )


Thanks Harlan! But isn't ISNUMBER/MATCH more efficient than
={"INT","ACC","CCT"} ?


Depends. Two function calls aren't free, and there's also the boolean
to numeric conversion.

If the codes "INT", "ACC", and "CCT" were entered in a range named
CODES, the formula could be rewritten as

=SUMPRODUCT((Sheet2!$B$3:$B$11=Sheet1!$A14)
*COUNTIF(Codes,Sheet2!$C$3:$C$11)
*(Sheet2!$G$3:$G$11=Sheet1!A1),Sheet2!$D$3:$D$11 )


Nice, Harlan! But which one is more efficient, ISNUMBER/MATCH or
COUNTIF?


One function call returning numbers vs two function calls returning
booleans that need to be converted to numbers.

I benchmarked the recalc speeds. Your formula does recalculate faster
than either of mine when there are relatively many matches in the range.

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Sumproduct Peter B Excel Worksheet Functions 1 March 7th 05 01:59 PM
sumproduct causing memory errors? dave Excel Worksheet Functions 1 March 3rd 05 09:31 AM
Can I reference =, <, or > sign in SUMPRODUCT BobT Excel Discussion (Misc queries) 7 February 16th 05 01:58 PM
Sumproduct function not working Scott Summerlin Excel Worksheet Functions 12 December 4th 04 05:15 AM
adding two sumproduct formulas together ski2004_2005 Excel Worksheet Functions 1 November 12th 04 09:08 PM


All times are GMT +1. The time now is 06:27 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"