• ベストアンサー

EXCEL 計算空白セル/0(ゼロ) 無視する方法

以下のように、 =B7/((D7/E7)+(F7/G7)+(H7/I7)) の中で[D7・E7・F7・G7・H7・I7]のどれかが、空欄か0(ゼロ)の場合、#DIV/0!と返ってしまいます。 そのときにゼロや空欄を無視して計算する方法があったら教えてください。 この計算式にあたる関数も良く分からないので、困っています。 ※昨年比を出すため、逆算式を入れています。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

空白のセルや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)))

gclef19
質問者

お礼

ご回答ありがとうございます。 できました! しかし、実はもっと長くて =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)) なもので、かなり長くなりそうです。が、がんばります。 誠にありがとございました。

その他の回答 (3)

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

多分あなたが一番使いやすいのは =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)

gclef19
質問者

お礼

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

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

>そのときにゼロや空欄を無視して計算する方法があったら教えてください。 どのような種類の計算をするのかによってエラーの取り扱いが異なります。 たとえば、加算するのであれば0にすることもできますが、平均などを求めるときは空白文字列扱いにしたほうが良いと思います。 #DIV/0!エラーを避ける数式は、たとえば以下のような数式になります(エラーセルを空白表示)。 =IF(COUNT(E7,G7,I7)=3,B7/((D7/E7)+(F7/G7)+(H7/I7)),"")

gclef19
質問者

お礼

ご回答ありがとうございます。 説明不足ですみません。#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)) という計算を自動でやってほしいのです。。

  • takas223
  • ベストアンサー率22% (299/1308)
回答No.1

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

gclef19
質問者

お礼

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

関連するQ&A

専門家に質問してみよう