• ベストアンサー

空白行があると #DIV/0なる?エクセル

エクセル2010です 空白行があると #DIV/0 となることを解消したい G36 に G4からG34 までの 平均をもとめたいのですが・・ =IF(G4:G34=0,"",AVERAGE(G4*G34)) では #VALUE と 表示されてしまいます。 空白もしくは 0 が あっても平均値を G36に 表示したいのですが アドバイス お願いします。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.5

>空白行があると #DIV/0 となることを解消したい  ⇒対象範囲セルが全て未入力の場合、このエラーになります、   1つでも数値があればエラーになりません。 >空白もしくは 0 が あっても平均値を G36に 表示したいのですが  ⇒0の場合、除数に加味され無い方が良いのではないでしょうか。  因みに関数はエクセル2007以上で新規追加されたものを使用しています。 =IFERROR(AVERAGEIF(G4:G34,">0"),"")

reo9546
質問者

お礼

mu2011さん 大変勉強になります。 ありがとうございました

その他の回答 (4)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

入力の間違いかと思いますが AVERAGE(G4*G34)では G4の数値とG34の数値の掛け算の結果です もしどちらかに文字が入っていれば #VALUE ですね。 エクセルのAVERAGE関数では途中に空白や文字が入っていても数値の部分だけの 平均値を返してくれます。 特に IF文を使用しなくても =AVERAGE(G4:G34) だけで十分です。 何らかの抽出条件があるのであれば AVERAGEIFやAVERAGEIFS関数で検討してみてください。

reo9546
質問者

補足

hallo-2007さん 他の方々 大変しつれいしました。 AVERAGE(G4*G34)ではなく、 AVERAGE(G4:G34)でした。 すみません

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

Excel2010なら =IFERROR(AVERAGE(G4:G34),0) のように使います。 #参考 ちなみに範囲にゼロがあれば =AVERAGE(G4:G34) だけでも問題ないので,元データの方を見直すのでもOKです。 もう一度落ち着いて確認してみてください。

reo9546
質問者

お礼

keithinさん 回答ありがとうございます。いろいろと勉強になります

  • SWM5903
  • ベストアンサー率68% (4965/7212)
回答No.2

=IF(ISERROR(AVERAGE(G4:G34)),0,AVERAGE(G4:G34)) じゃだめかい? 因みに、空白や0が有ってもAVERAGE関数はちゃんとそれを 見越した計算をします。 「#DIV/0」と言うのは、分母が0の場合に表示されるものです。 ですから#DIV/0が表示されているという事は、G4~G34が 全て空白(割る数が0)の状態です。 例え、1か所でも数字が入っていればAVERAGE(G4:G34)だけで 済むはずですが…^^;

reo9546
質問者

お礼

SWM5903さん 回答ありがとうございます。 >例え、1か所でも数字が入っていればAVERAGE(G4:G34)だけで 済むはずですが…^^; そうみたいですが 月が替わると入力するセルを未入力状態にするので なんか 気持ちわるいので 質問しました。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

=IF(G4:G34=0,"",AVERAGE(G4*G34)) ↓ =IF(COUNT(G4:G34)=0,"",AVERAGE(G4:G34))

reo9546
質問者

お礼

mshr1962さん ありがとうございます。 そちらのほうで ネットを参考にできました。

関連するQ&A