Non-contiguous range and Sumproduct to average

M

Mifty

Hi,

I'm using the following to average data in K if value in F = value in E5.

=SUMPRODUCT(($F$52:$F$107=$E$5)*$K$52:$K$107)/SUMPRODUCT(--($F$52:$F$107=$E$5))

I'm intending to use the same formula to calculate averages in columns I to
N in about 45 sheets all with the same layout and different data.

Column F is gender and I to N contain a series of datapoints (some of which
are missing).
I've tried as far as possible to sort the data so that the missing points
are at the bottom of rows and then I alter the range in the formula to suit.

I'm on sheet 5 now and I'm stumped, L109 to N111 and K108 have no data but
there is data in K109 to K111.

I've tried adding a second range to the formula but not having much luck
(although I'm guessing I'm lucky to have got to sheet 5 without this problem).

Hoping some kind soul can help :)

Cheers
Mifty
 
C

Charabeuh

TRY THIS :

=SUMPRODUCT( ($F$52:$F$111=$E$5) * ($K$52:$K$111) ) / SUMPRODUCT(
($F$52:$F$111=$E$5) * (ISNUMBER($K$52:$K$111) ) )
 
C

Charabeuh

Try this :

=SUMPRODUCT( ($F$52:$F$111=$E$5) * ($K$52:$K$111) ) / SUMPRODUCT(
($F$52:$F$111=$E$5) * (ISNUMBER($K$52:$K$111) ) )
 
T

T. Valko

By missing data points I assume you numbers to average.

Try this array formula** :


=AVERAGE(IF(F52:F107=E5,IF(ISNUMBER(K52:K107),K52:K107)))

** array formulas need to be entered using the key combination of
CTRL,SHIFT,ENTER (not just ENTER). Hold down both the CTRL key and the SHIFT
key then hit ENTER.
 
H

Harlan Grove

T. Valko said:
By missing data points I assume you numbers to average. ....
=AVERAGE(IF(F52:F107=E5,IF(ISNUMBER(K52:K107),K52:K107)))
....

Why the IF call? With the following data in A1:B8,

F 1
F <blank>
M 3
M 4
F 5
F 6
F 7
M 8

and F in A10, the array formula

=AVERAGE(IF(A1:A8=A10,B1:B8))

returns 4.75 (as per specs) rather than 3.8. The AVERAGE function
ignores cells which don't contain numbers.
 
T

T. Valko

Why the IF call?
F <blank>

Define blank.

If blank is an EMPTY cell then ISNUMBER prevents the empty cell from being
included in the average as numeric 0. If the logical test is TRUE the
corresponding cell in the value_if_true argument is included in the average
and if that cell is empty it's evaluated as numeric 0.

If BLANK is a formula blank then it would be ignored as a text entry in an
array reference.

Are you sure you just didn't have a "senior moment"? It's ok, I have them
sometimes and I'm not technically a senior just yet!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top