すべてのカテゴリ » インターネット・パソコン » 技術・プログラミング

質問

終了

エクセルの質問です。

=AVERAGE(D19,E20,F21,G22,H23)
で平均値を出したいのですが、

例えば、参照するセルの
F21,G22,H23が「#DIV/0!」の時は、
D19,E20の平均値を算出。

H23だけが「#DIV/0!」の時は、
D19,E20,F21,G22の平均値を算出。

という風にしたイ場合、
どの様な式にすれば良いのでしょうか?

※D19,E20,F21,G22,H23の各セルにも数式が入っています

  • 質問者:ゴン
  • 質問日時:2008-10-03 11:09:34
  • 0

回答してくれたみんなへのお礼

早速お返事いただきありがとうございます!
大変参考になりました。
エクセルって奥が深いですね。

「#DIV/0!」を画面に表示する/表示しないで対処が変わります。

・「#DIV/0!」を画面に表示する場合
 D19、E20、F21、G22、H23に対するダミーセルを使います。
 1.D19、E20、F21、G22、H23のそれぞれのダミーセルを用意する。
  ここでは、D20、E21、F22、G23、H24とします。
 2.各ダミーセルにIF()とISERROR()を使った関数を入れる。
  D20=IF(ISERROR(D19),"",D19)
  E21=IF(ISERROR(E20),"",E20)
  これをH24まで行います。
  これで、元のセルが「#DIV/0!」の場合にはダミーセルに空白が入り、
  何らかの数値がある場合にはその値が入るようになります。
 3.D20、E21、F22、G23、H24の平均値をAVERAGEAで算出する。
  =AVERAGEA(D20,E21,F22,G23,H24)
  AVERAGEAを使う事で、数値セルのみが平均値算出の対象となります。

・「#DIV/0!」を画面に表示しない場合
 1.IF()とISERROR()を使って、D19、E20、F21、G22、H23で「#DIV/0!」が表示されないようにする。
  D19=IF(ISERROR(D19の元の式),"",D19の元の式)
  E20=IF(ISERROR(E20の元の式),"",E20の元の式)
  これをH23まで行います。
  これで「#DIV/0!」と表示されていた所は全て空白になります。
 2.D19、E20、F21、G22、H23の平均値をAVERAGEAで算出する。
  =AVERAGEA(D19,E20,F21,G22,H23)

個人的には「#DIV/0!」と出ない方が好きなので、2個目の方法をオススメします。

  • 回答者:匿名希望 (質問から32分後)
  • 1
この回答の満足度
  
参考になりました。回答ありがとうございました。

並び替え:

D19~H23にISERRORやIFで式を追加してエラーの場合はゼロにするなどの工夫をしてからAVERAGEIF関数でゼロ以外なら平均値を取るようにするのが良いかと思います。 D19~H23を
IF(元の数式中の除数=0,0,元の数式)
と変えて
=AVERAGEIF(D19~H23,"<>0)
で出せば、ゼロ以外のセルの平均値を取る事が可能です。 ゼロでは都合が悪い悪いのでしたら、マイナスの数値にするとか、現実に出現する可能性の無い極端に大きな数値にして条件で弾けば良いと思います。

もし、先の方法で見栄えが悪いとか、D19~H23の数式を変えたくなかったのならば他のセルにISERROR関数でフラグのセルを作っておいて
『=AFERAGEIFS(D19~H23,フラグのセル,false)
で、エラーで無い場合(true)ならばD19~H23の平均を取ればOKかと思います。

# なんか、書き込んで編集したのに編集結果が反映されなかったりしたので何度も書き直してしまいました。メールが沢山飛んだかも知れません、ごめんなさい。

# 関数の引数の順番を間違えて覚えていましたので修正しました。

===補足===
以前、質問形式で問題点を投稿したのですがご覧になられたのかどうか心配でした。今回補足が書き込めるようになったので補足しますネ。

実は先のBest回答の方法だと正しい平均値になりません。理由は

『H23だけが「#DIV/0!」の時は、 D19,E20,F21,G22の平均値を算出。 』

とならずに

『H23だけが「#DIV/0!」の時は、 H23をゼロとみなしてD19,E20,F21,G22,H22の平均値を算出。 』

となってしまうからです。

私の回答にも誤字があり『AVERAGEIFS』とすべき所を『AFERAGEIFS』と書いてしまったため、エラーになってしまったので判らなかったのかも知れませんね、御免なさい。ExcelやPC等の質問の時は回答を締め切る前に実験をすると良いと思います。

ご質問の日から随分と経過してしまいましたが、問題点が修正されて正しく動作している事を願っています。

この回答の満足度
  
参考になりました。回答ありがとうございました。

関連する質問・相談

Sooda!からのお知らせ

一覧を見る