過去の桐井戸端BBS (桐ver.9)
28548 「ゼロ除算が発生しました」というコメントを回避する方法を教えてください たかぎ 2004/12/21-13:26
基本的なことえを教えて下さい。

(ゼロ除算が発生しました)というコメントが表記され、
その表記された(セル)から抜け出せなくなり、先に進めません。
原因は、計算式の結果にそぐわなかったということは分かっていますが
このコメントを回避する方法を教えて下さい。

桐(バージョン9)を使用しています。
28550 Re:ゼロ除算の回避について 宮城 2004/12/21-13:58
記事番号28548へのコメント
たかぎさん、こんにちは。

表の話と仮定します。(ただし、なんであれこの手でいけます。)

[A][B][C]と3項目あったとして。[C]で[A]÷[B]を計算させたいとき、
ひとつひねって。

#条件選択([B]=0,"",1,[A]/[B])

とします。分母が0なら割算するな、と。

28554 Re:ゼロ除算の回避について アックン 2004/12/21-15:12
記事番号28548へのコメント
たかぎさん、こんにちは。
割り算の分母の値が 0 だと、答えが出なくてエラーになりますから、
こういうケースが想定される式には、あらかじめ回避する関数を用います。

 #未定義値変換( val1 , val2 )

val1は、これまで通りの計算式を書いておきます。
val2は、 0 としておけば、分母が 0 のときには 0 を返すので、エラーを回避できます。

 #未定義値変換( これまでの計算式 , 0 )
または
 #nvl( これまでの計算式 , 0 )

例: #nvl( [A]/[B] , 0 )/#nvl( [C]/[D] , 0 )

この例のように、各式ごとに関数を用いてください。

アックン(=^・^=)
28555 Re:ゼロ除算の回避について アックン 2004/12/21-15:15
記事番号28554へのコメント
>例: #nvl( [A]/[B] , 0 )/#nvl( [C]/[D] , 0 )

この例はゼロで割ってるから、間違いやね。(^^;

28558 Re:ゼロ除算の回避について たかぎ 2004/12/21-16:13
記事番号28550へのコメント
宮城さん

ご丁寧な回答有り難うございます。
関数の処理については分かりました。

ただ、現在の私はそれ以前の問題で困っています。
状況は以下の通りです。

月 科目   41期  42期  前期増減額  前期増減率
11 消耗品  61000 48550  -12450    -20.4
○ 厚生費    0   0     0
 
項目[月] の○印のところで11と入力し次の行に進もうと「Enter」
キーを押すと{ゼロ除算が発生しました[前期増減率]}というコメントが
出てきて次に進めません。表を閉じようにも同じコメントが出てきて閉じられません。
何もすることが出来ない状態なのですが、この状態を回避する方法を教えて下さい。

[前期増減率]には計算式が設定されています。
 
28559 [ESC]キーを押してみる ONnoji 2004/12/21-17:01
記事番号28558へのコメント

たかぎさん、こんにちは。

とりあえず、[ESC]キーを押してみると、入力をキャンセル出来ると思いますが、
いかがでしょうか。

続行や継続するのではなくて、[ESC]キーを押して何もしなかった事とにすれば、
表は閉じられると思いますけれど…

28572 ゼロ除算の原因究明が先です 佐田 守弘 2004/12/21-22:14
記事番号28558へのコメント
たかぎさん

ゼロ除算を回避するために、条件選択などの関数を使う方法については、
宮城さん、アックンさんから提示されていますから、御理解されてたと思います。さて、

 >月 科目   41期  42期  前期増減額  前期増減率
 >11 消耗品  61000 48550  -12450    -20.4
 >○ 厚生費    0   0     0
 >項目[月] の○印のところで11と入力し次の行に進もうと「Enter」
 >キーを押すと{ゼロ除算が発生しました[前期増減率]}というコメントが
 >出てきて次に進めません。
の部分でもう少し原因究明に近づくためのコメントをさせて頂きます。

上記で、「○印のところで11と入力し次の行に進もうとEnterキーを押す」
という事は、[科目]を含めて[41期]より右側の項目の値を入力せずに次の行に進もうとしているわけですね。
おそらく、画面右下のカーソル移動方向の矢印が下になっているのかと思います。

 >[前期増減率]には計算式が設定されています。
との事なので、この[月]以外の項目を未入力のまま次に進もうとしても
次の行に進む前に現在の行(上記例で○の行)の前期増減率などの項目計算式の計算が行われます。
そしてこの計算式でゼロ除算のエラーが発生しているわけです。

ゼロ除算の原因は、多分もうお分りかと思いますが、[41期][42期]の値が未入力のためです。

解決策としては、これらの値を入力してから次の行に進むか、[前期増減率]
の項目計算式に、#条件選択などを使って、未入力なら計算しない形の計算式を設定して下さい。

佐田守弘(KS-00119)

戻る