質問: エクセルif関数(「#div/0!」表示)について エクセルを使っていて、「#div/0! 」 と表示される部分があり解決方法を調べてみたところ、 「div」は「divisor:除数(割る数)」の略であり、数字は「ゼロ(0)」では割れないために出たエラーだと知りました。 (参考url:http://www.724685.com/weekly/qa090819.htm) 上のサイトには、「除数がゼロ、つまり計算結果が「#div/0!」のときは、別の表示に(たとえば空欄に)する条件式(if文)を使えばいい」とあったのでif関数式をあてはめたところ、一部分は「#div/0! 」表示でなく「0」表示にすることができました。 ただ、その if関数を入力したセル(セルc1と仮定)を参照して新たな関数式を作ったとき、値を出すセルがまた「#div/0! 」となってしまいます。 最初に入力した式→ =if(a1=0,"0",b1/a1) 次に入力した式→ =if(c1=0,"0",100/c1/100*1000/10000) c1のセルを手入力で「0」と入力すると「#div/0! 」 表示にはなりませんでした。 これは、式を入力したセルを新たな計算式には反映できないということなのでしょうか? 「0」と手入力すると最初の式も消えてしまい、なおかつ手間なので何か解決方法はありませんでしょうか。 つたない説明ですが、どなたかアドバイス頂ければ嬉しいです。
回答: 文字列と数値の違いによるものです。 c1セルに入れた式:=if(a1=0,"0",b1/a1) では、a1セルの値が0だったとき、文字列の"0"を表示しています。 別なセルに入れた式:=if(c1=0,"0",100/c1/100*1000/10000) では、c1セルの値が数値の0だったときは文字列の"0"を表示、それ以外は100/c1/100*1000/10000の計算をします。 この計算ではexelのおせっかいが働き、c1セルの値が数値として扱える文字列だった場合、数値として扱います。つまり、文字列の"0"を数値の0として扱い、その結果0割エラーが発生しています。 c1セルに0と手入力したときには数値の0を入力しているので、文字列の"0"が表示されています。 c1セルに入れる式を↓に変えてみてください =if(a1=0,0,b1/a1) ついでにもう一つの式も変えた方が統一が取れていいと思います。 =if(c1=0,0,100/c1/100*1000/10000)