重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

いつも大変お世話になっております。
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月だけ)の平均値を「上期」セルに出したいのですが、毎回計算式を更新などせず、どのような方法をとればできますか?

よろしくお願い致します。

A 回答 (2件)

配列でもいいですか?



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

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

お礼日時:2007/10/25 11:20

データの範囲がA1:F1だとして、必ず左側から数値が埋まるのであれば


 =AVERAGE(OFFSET(A1,0,0,1,COUNTIF(A1:F1,">0")))
でどうでしょうか
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!