• ベストアンサー

ExcelのAVERAGE関数で、ゼロを含めない平均値の出し方

いつも大変お世話になっております。 ExcelにAVERAGE関数がありますが、セル内に予め数式を入れておいて、その結果から平均値を出したい場合、数式の結果が出ているものだけ(つまりゼロでないものだけ)の数で平均値を出したいのですが、何か良い方法はありますか? 具体的には 4月 5月 6月 7月 8月 9月 上期 4  3  2  0  0  0  平均値を算出 上記のような表があり、数字はそれぞれ数式より算出しています。その数値をもとに、「上期」のセルにはAVERAGE関数より平均値を算出したいのですが、6月の時点では、まだ6月までの数値しかなく、7月・8月・9月は計算式だけ入っている状態なので「ゼロ」となります。 6月の時点で、4月~9月の平均値を算出すると(4+3+2+0+0+0)/6をしてしまい、平均値が実際の数値より低くなってしまいます。 そこで、実績のある月だけ(今回は4~6月だけ)の平均値を「上期」セルに出したいのですが、毎回計算式を更新などせず、どのような方法をとればできますか? よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • suekun
  • ベストアンサー率25% (369/1454)
回答No.1

配列でもいいですか? データーがA20:D20の範囲であるとして =AVERAGE(IF(A20:D20<>0,A20:D20)) と記入して、CTRLとSHIFTを押しながら、ENTERで確定すると {=AVERAGE(IF(A20:D20<>0,A20:D20))} というカッコつきの数式に変わります。 これは範囲の中で0にノットイコールな物だけ計算します。 って式です。

xchoxcho
質問者

お礼

非常に簡潔で、しかもうまくいきました。 どうもありがとうございました。

その他の回答 (1)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

データの範囲がA1:F1だとして、必ず左側から数値が埋まるのであれば  =AVERAGE(OFFSET(A1,0,0,1,COUNTIF(A1:F1,">0"))) でどうでしょうか