- ベストアンサー
空白行があると #DIV/0なる?エクセル
エクセル2010です 空白行があると #DIV/0 となることを解消したい G36 に G4からG34 までの 平均をもとめたいのですが・・ =IF(G4:G34=0,"",AVERAGE(G4*G34)) では #VALUE と 表示されてしまいます。 空白もしくは 0 が あっても平均値を G36に 表示したいのですが アドバイス お願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>空白行があると #DIV/0 となることを解消したい ⇒対象範囲セルが全て未入力の場合、このエラーになります、 1つでも数値があればエラーになりません。 >空白もしくは 0 が あっても平均値を G36に 表示したいのですが ⇒0の場合、除数に加味され無い方が良いのではないでしょうか。 因みに関数はエクセル2007以上で新規追加されたものを使用しています。 =IFERROR(AVERAGEIF(G4:G34,">0"),"")
その他の回答 (4)
- hallo-2007
- ベストアンサー率41% (888/2115)
入力の間違いかと思いますが AVERAGE(G4*G34)では G4の数値とG34の数値の掛け算の結果です もしどちらかに文字が入っていれば #VALUE ですね。 エクセルのAVERAGE関数では途中に空白や文字が入っていても数値の部分だけの 平均値を返してくれます。 特に IF文を使用しなくても =AVERAGE(G4:G34) だけで十分です。 何らかの抽出条件があるのであれば AVERAGEIFやAVERAGEIFS関数で検討してみてください。
補足
hallo-2007さん 他の方々 大変しつれいしました。 AVERAGE(G4*G34)ではなく、 AVERAGE(G4:G34)でした。 すみません
- keithin
- ベストアンサー率66% (5278/7941)
Excel2010なら =IFERROR(AVERAGE(G4:G34),0) のように使います。 #参考 ちなみに範囲にゼロがあれば =AVERAGE(G4:G34) だけでも問題ないので,元データの方を見直すのでもOKです。 もう一度落ち着いて確認してみてください。
お礼
keithinさん 回答ありがとうございます。いろいろと勉強になります
- SWM5903
- ベストアンサー率68% (4965/7212)
=IF(ISERROR(AVERAGE(G4:G34)),0,AVERAGE(G4:G34)) じゃだめかい? 因みに、空白や0が有ってもAVERAGE関数はちゃんとそれを 見越した計算をします。 「#DIV/0」と言うのは、分母が0の場合に表示されるものです。 ですから#DIV/0が表示されているという事は、G4~G34が 全て空白(割る数が0)の状態です。 例え、1か所でも数字が入っていればAVERAGE(G4:G34)だけで 済むはずですが…^^;
お礼
SWM5903さん 回答ありがとうございます。 >例え、1か所でも数字が入っていればAVERAGE(G4:G34)だけで 済むはずですが…^^; そうみたいですが 月が替わると入力するセルを未入力状態にするので なんか 気持ちわるいので 質問しました。
- mshr1962
- ベストアンサー率39% (7417/18945)
=IF(G4:G34=0,"",AVERAGE(G4*G34)) ↓ =IF(COUNT(G4:G34)=0,"",AVERAGE(G4:G34))
お礼
mshr1962さん ありがとうございます。 そちらのほうで ネットを参考にできました。
お礼
mu2011さん 大変勉強になります。 ありがとうございました