プロが教えるわが家の防犯対策術!

以下のように、

=B7/((D7/E7)+(F7/G7)+(H7/I7))
の中で[D7・E7・F7・G7・H7・I7]のどれかが、空欄か0(ゼロ)の場合、#DIV/0!と返ってしまいます。

そのときにゼロや空欄を無視して計算する方法があったら教えてください。

この計算式にあたる関数も良く分からないので、困っています。


※昨年比を出すため、逆算式を入れています。

A 回答 (4件)

 #DIV/0の時は0と表示するでいいのでは?

    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2010/04/20 10:53

>そのときにゼロや空欄を無視して計算する方法があったら教えてください。



どのような種類の計算をするのかによってエラーの取り扱いが異なります。

たとえば、加算するのであれば0にすることもできますが、平均などを求めるときは空白文字列扱いにしたほうが良いと思います。

#DIV/0!エラーを避ける数式は、たとえば以下のような数式になります(エラーセルを空白表示)。

=IF(COUNT(E7,G7,I7)=3,B7/((D7/E7)+(F7/G7)+(H7/I7)),"")
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

説明不足ですみません。#DIV/0!エラーを避けて、エラーセルを空白表示にしたいのではなく、

計算の対象となるセルに0や空白があった場合、そのセルを無視してそのセルは計算しないという状況にしたいのですが、不可能なのでしょうか?

・・良く考えると不可能のような気がしてきました。。。

ちなみに、実はもっと長く
=B7/((D7/E7)+(F7/G7)+(H7/I7)+(J7/K7)+(L7/M7)+(N7/O7)+(P7/Q7)+(R7/S7)+(V7/W7)+(X7/Y7)+(Z7/AA7))

例えば、D7も0、E7も0の場合(D7/E7)を無視して、B7/((F7/G7)+(H7/I7)+(J7/K7)+(L7/M7)+(N7/O7)+(P7/Q7)+(R7/S7)+(V7/W7)+(X7/Y7)+(Z7/AA7))
という計算を自動でやってほしいのです。。

お礼日時:2010/04/20 10:47

空白のセルや0のあるセルが分母になる場合にはエラーとなりますね。

エラーの部分は計算しないのでしたら次のような式にすればよいでしょう。

=IF(ISERROR(B7/(IF(ISERROR(D7/E7),0,D7/E7)+IF(ISERROR(F7/G7),0,F7/G7)+IF(ISERROR(H7/I7),0,H7/I7))),"",B7/(IF(ISERROR(D7/E7),0,D7/E7)+IF(ISERROR(F7/G7),0,F7/G7)+IF(ISERROR(H7/I7),0,H7/I7)))
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
できました!
しかし、実はもっと長くて
=B7/((D7/E7)+(F7/G7)+(H7/I7)+(J7/K7)+(L7/M7)+(N7/O7)+(P7/Q7)+(R7/S7)+(T7/U7)+(V7/W7)+(X7/Y7)+(Z7/AA7))

なもので、かなり長くなりそうです。が、がんばります。
誠にありがとございました。

お礼日時:2010/04/20 10:52

多分あなたが一番使いやすいのは



=IF(ISERROR( B7/((D7/E7)+(F7/G7)+(H7/I7)) ),0, B7/((D7/E7)+(F7/G7)+(H7/I7)))

のような格好じゃないかと思います。



もうちょっともうちょっとで,少なくとも一つの計算をするのに「一回やって」エラーにならなかったらもう一回とかあまりに無駄でしょうと思えるようなら。
その式がエラーになるのは
1.EまたはFまたはIの,どれか1つ以上(最大全部)がゼロの時
または
2.もしもたとえば全部の数字がゼロかゼロより大きいなどの限定があれば
 DもFもIも全部がゼロの時
  そういう限定もできないなら仕方がないので
 分母の足し算が±でゼロになるとき
です。

なので,それらの条件の時は計算しない,と事前に仕分けをします。
=IF(E7*G7*I7*(D7+F7+I7), B7/((D7/E7)+(F7/G7)+(H7/I7)), 0)
    • good
    • 1
この回答へのお礼

ご回答ありがとうございました。

解決しました!

お礼日時:2010/04/20 10:53

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