【Excel】数式の途中で0除算が入る場合の対処

Anonymous
2024-05-17T02:41:30+00:00

以下の数式でエラーが出ている場合にどのような対処をしたらいいかがわからず、おしえていただきたいです。

=((W12-T12)/T12)-((Z12-(T12+AB12))/(T12+AB12))

W12=0.0

T12=0.0

Z12=1460.9

AB12=1470.6

この場合、返される数値としては0.66が正になると思うのですが#DIV/0!エラーになってしまいます。

**((W12-T12)/T12)**の部分で結果が0になっているのが問題な点まではわかったのですが、

それをどう対応したらいいかがわかりません。

エラーにならずに数値を返すようにするにはどうしたらいいでしょうか?

Microsoft 365 と Office | Excel | ビジネス向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2024-05-17T05:18:13+00:00

> 返される数値としては0.66が正になると思うのですが

そうはならないでしょう。

> エラーにならずに数値を返す

0 除算によるエラーそのものを回避することは不可能です。

IF 関数を用いて除数に当たるセルの値が 0 である場合の分岐を加える

(絶対に 0 除算が行われないようにする)か、IFERROR 関数によって

エラー値を返された場合の値を設定するぐらいしかないでしょう。

具体的にどのように数式を書き換えるべきかについては、
それぞれのセルに格納されている数値が何を意味するのか、
どのような目的からその数式を設定されたのかが不明である限り
お答えのしようがありません。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

3 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2024-05-17T05:59:53+00:00

    > 電卓での算出の結果から0.66が正ではあるのですが

    計算方法が誤っているか、電卓上のエラー表示( E など)を
    見落としているだけではないでしょうか。

    算術計算のルール上、n / 0 の結果は 0 でもなく 1 でもなく、
    そもそもそんな計算を行なうことはできない」と解釈されます。

    > W12=0.0> T12=0.0> Z12=1460.9> AB12=1470.6
    仮に W12セルの値とT12セルの値を用いた計算そのものを行なわないものとした場合、

    > =((W12-T12)/T12)-((Z12-(~~T12+~~AB12))/(~~T12+~~AB12))

    =-((Z12-(AB12))/(AB12))

    =-((1460.9-1470.6)/1470.6)

    =-(-9.7/1470.6)

    =-(-0.006595947)

    =0.006595947

    という結果となるはず。

    0.66 という答えを出すには、更に 100 倍して小数点第 2 位で丸める
    (四捨五入する、または切り上げる)ような処理を加える必要があります。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. ((((((((( 24,280 評価のポイント ボランティア モデレーター
    2024-05-17T05:38:48+00:00

    ((W12-T12)/T12) と ((Z12-(T12+AB12))/(T12+AB12))

    それぞれの解は、

    ① 0以外の数値÷0で  この部分の解は「存在しない」

    ② 0÷0     で  この部分の解は「不定」   

    ③ ①と②以外のときで、この部分の解は「数値」   

    従って、全体として3×3=9通りですが、

    3種類の「存在しない」「不定」「数値」 の場合がありますね。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2024-05-17T05:31:45+00:00

    電卓での算出の結果から0.66が正ではあるのですが、

    数値や式の根拠になる背景がなければ難しい話でしたね。

    いろいろ検索して記載いただいたif関数などの対処は出てきましたがそれ以外に方法はないかと思っての投稿でした。

    上記の対策以外難しいことがわかっただけでもよかったです。

    ありがとうございます。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません