average of non contigous data to also exclude zeros

M

markmcd

I'm having trouble with working out a formula to give the average of non zero
data where the data is not in contigous cells.

I have data for Feb, Mar, Apr per truck so Feb will appear in column B, E,
H. If B, E, H are zero (any one of them) then I don't want to include as part
of the average.
I have used the averageif as an array to not count zero values and this
gives an error. I have also used the sum/countif but countif doesn't seem to
like non contigous cells. I used AND to get around the non contiguous
situation but that didn't work either

I'm surprised by the Excel functionality when it comes to average, the most
common scenarios are those where formulas have to be more complex. Basically
all I want is to have 10,0,5,15,0,0 averaged excluding zeros so in this case
the average would be 10 and not 6. Markedly different.
 
J

Jacob Skaria

Try

=AVERAGEIF(B:B:E:E:H:H,">0")

OR

=SUM(B:B:E:E:H:H)/COUNTIF(B:B:E:E:H:H,">0")


If this post helps click Yes
 
J

Jacob Skaria

Try

=AVERAGEIF(B:B:E:E:H:H,">0")

OR

=SUM(B:B:E:E:H:H)/COUNTIF(B:B:E:E:H:H,">0")


If this post helps click Yes
 
J

Jacob Skaria

Oops.. please ignore the previous post...

=SUM(B:B,E:E,H:H)/(COUNTIF(B:B,">0")+COUNTIF(E:E,">0")+COUNTIF(H:H,">0"))

I am sure there must be an easy way...

If this post helps click Yes
 
J

Jacob Skaria

Oops.. please ignore the previous post...

=SUM(B:B,E:E,H:H)/(COUNTIF(B:B,">0")+COUNTIF(E:E,">0")+COUNTIF(H:H,">0"))

I am sure there must be an easy way...

If this post helps click Yes
 
J

Jacob Skaria

I have messed up again..

=SUM(B:B,E:E,H:H)/
SUMPRODUCT(COUNTIF(INDIRECT({"B:B","E:E","H:H"}),">0"))


If this post helps click Yes
 
J

Jacob Skaria

I have messed up again..

=SUM(B:B,E:E,H:H)/
SUMPRODUCT(COUNTIF(INDIRECT({"B:B","E:E","H:H"}),">0"))


If this post helps click Yes
 
J

Jacob Skaria

In this case since the columns are 2,5,8 etc; you can use MOD function to
check only only these columns. But this will be an array formula.Paste this
formula and press Ctrl+Shift+Enter to apply this formula. If successful in
'Formula Bar' you can notice the curly braces at both ends like "{=<formula>}"

=AVERAGE(IF(MOD(COLUMN(B2:H100),3)=2,IF(B2:H100>0,B2:H100)))

If this post helps click Yes
 
J

Jacob Skaria

In this case since the columns are 2,5,8 etc; you can use MOD function to
check only only these columns. But this will be an array formula.Paste this
formula and press Ctrl+Shift+Enter to apply this formula. If successful in
'Formula Bar' you can notice the curly braces at both ends like "{=<formula>}"

=AVERAGE(IF(MOD(COLUMN(B2:H100),3)=2,IF(B2:H100>0,B2:H100)))

If this post helps click Yes
 
J

Jacob Skaria

In this case since the columns are 2,5,8 you can use the MOD function to look
at only these columns. The below is an array formula copy this formula and
press Ctrl+Shift+Enter to apply this formula. If successful in 'Formula Bar'
you can notice the curly braces at both ends like "{=<formula>}"

With headers in Row 1 and the range upto 100 rows...

=AVERAGE(IF(MOD(COLUMN(B2:H100),3)=2,IF(B2:H100>0,B2:H100)))

If this post helps click Yes
 
J

Jacob Skaria

In this case since the columns are 2,5,8 you can use the MOD function to look
at only these columns. The below is an array formula copy this formula and
press Ctrl+Shift+Enter to apply this formula. If successful in 'Formula Bar'
you can notice the curly braces at both ends like "{=<formula>}"

With headers in Row 1 and the range upto 100 rows...

=AVERAGE(IF(MOD(COLUMN(B2:H100),3)=2,IF(B2:H100>0,B2:H100)))

If this post helps click Yes
 
R

Roger Govier

Hi Mark

Instead of using the AverageIf function, use AverageIfS

=AVERAGEIFS(B1:H1,B1:H1,">0")
 
R

Roger Govier

Hi Mark

Instead of using the AverageIf function, use AverageIfS

=AVERAGEIFS(B1:H1,B1:H1,">0")
 

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