• ベストアンサー
  • すぐに回答を!

エクセル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」と手入力すると最初の式も消えてしまい、なおかつ手間なので何か解決方法はありませんでしょうか。 つたない説明ですが、どなたかアドバイス頂ければ嬉しいです。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数550
  • ありがとう数1

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

  • ベストアンサー
  • 回答No.1
  • mt2008
  • ベストアンサー率52% (885/1701)

文字列と数値の違いによるものです。 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)

共感・感謝の気持ちを伝えよう!

質問者からのお礼

とっても分かりやすい、かつ丁寧にご回答頂きありがとうございます。 式の記入法で、文字列と数値の扱いが異なるんですね。 さっそく =IF(A1=0,0,B1/A1) =IF(C1=0,0,100/C1/100*1000/10000) の式に変更した所、「#DIV/0! 」表示でなく「0」表示にすることができました! 早くにご回答頂き助かりました。 本当にありがとうございました!

関連するQ&A

  • エクセル関数について(IF関数)

    エクセルの関数について教えて下さい。 セルに1と入力した場合Aと出てきて、2と入力した場合B、3と入力した場合Cとなるような計算式を入れたいのですが、どのような式を入れればよろしいのでしょうか? 別のシートから呼び出す(?)というような方法でもいいのですが、どんな式を入れればよいのか、全く分かりません。 自分で調べてみた結果、IF関数を用いるということは解りました。 『IF(A1="1","A",IF(A1="2","B",IF(A1="3","C")))』 上記のような式を入れてみて、実際に実践してみたところ、結果としては入力した数字が表示されるだけで、計算式は消えてしまいました。 どうしたらいいのか解りません。 素人故に恥ずかしい質問ですが、お知恵を貸して下さい。 よろしくお願いします。

  • エクセル IF関数が入った条件付き書式について

    エクセルにおいて、セルA1、B1、C1があるとします。A1、B1には数値が何も入力されていない状態で、C1に計算式「=SUM(A1)/B1」が入っているとします。このままでは、C1は、「#DIV/0!」と表示されます。 この表示を消すために、C1にIF、ISERROR関数を使い、「=IF(ISERROR(SUM(A1)/B1),"",SUM(A1)/B1)」の計算式を入力します。 このままでもいいのですが、C1の値が「10以上」になった時に、C1のセルに色を付けたいのです。 書式→条件付き書式→セルの値が→次の値以上→10 にすると、セルに何も値が入っていない(空白)状態で色だけが付いてしまいます。 色々調べると、IF関数の""の空白が文字列のため、数値より大きいとみなされている事が原因っていうことは、分かりましたが、色々試してみても出来ません。何かいい方法はございますでしょうか? ご教授お願いします。

  • Excelの関数『IF』にて・・・

    EXCELにて、関数IFを使って一覧表から 自動入力をしたいと考えています。 例えば、以下のようにしてセル『C1』の数字に 応じて、自動を試みたい時 =IF($C$1>80,"=A1",IF($C$1>70,"=B1","=C1")) =A1,=B1,=C1 の場所を文字列としてしか読み取ってくれません =A1,=B1,=C1では無く=A1,=B1,=C1のセルに入力されてる 数式(他のセルの値)を、表示したいんですが どのようにすれば可能でしょうか? 何度やっても「=A1」と、そのまま文字列として出て来ちゃいます。

  • エクセルのif関数で

    エクセルのif関数でこれができるのかわかりませんが、 C1~C10の中の文字列の中にA1と同じ文字列があればB1に「1」を入れ、なければ「2」を入れるということをやりたくて B1のセルに IF(OR(C$1:C$10=A1),1,2) という計算式を入れました。 関数の引数の中の数式の結果では、正しい結果が表示されてるのですが、B1のセルには間違った結果が表示されます。 また、B2以下B20まで計算式をコピーするとB11以下は#VALUE!になってしまいます。 一つ一つを見てみると、どうやらセルに正しく表示されるのはAの行とCの行が=だった場合のみのようです。 #VALUE!が表示されているセルも含めて、数式の結果では正しい結果が出ているのにセルの表示が違っているのが納得できませんが、おそらく何かが間違っているのでしょう。 間違いを教えてください。 よろしくお願いします。

  • エクセルでIF関数について教えていただきたいです

    よろしくお願いします。 A1セルに「5/20」と入力してあり、これは日付を意味します。 A1セルには上記の形式で日付が入力されるとして C1セルに「A1が5月だったらB1を参照」というIF関数を設定したいのですが、わかりません 教えていTだきたいです。 なんとなく =IF(A1="5#",B1,"")かな、と思ったのですが違うようでした。

  • EXCELのIF関数の結果の表示

    IF関数で、セルに「=IF(A1>=0.8,"合格",IF(A1>=0.6,"A",IF(A1>=0.3,"B","C")))」と入力してあります。 Windows2000上のExcel2000ではきちんと結果が表示されるのですが、 Windows98上のExcel2000ではきちんと結果が表示されず、セルに「ll」と表示されてしまいます。これをきちんと表示させるには、どうしたらいいでしょうか?

  • IF関数

    教えて下さい。 エクセルのIF関数について まずC1にA1-B1を計算させます。 そのときに、C1の値がマイナスの場合は0表示するようにし、プラスの場合はその値が表示されるようにしたいのです。 具体例 A1=10、B1=12 の場合C1=0     A1=10、B1=8  の場合C1=2 となるように! C1に入力する計算式を教えて下さい。

  • Excel 長すぎるif関数

    こんにちは。Excelを使って、条件によって表す表示を変える場合、 例えばa1のセルには0~100までの任意の数字を入れるとして、b1のセルにa1の数字に応じていろいろな表示をしたい場合(具体的には100ならAを表示、90~99ならB、70~89ならC、55~69ならD・・・といったように)、if関数を使うと思いますが、 =if(a1=100,"A"1,if(a1>=90,"B",if(a1>=70,"C",if・・・・)))というように長々と続きますね。条件が少ないうちはいいのですが、条件が多くなると、大変複雑な式になり、入力もしづらいし、頭も使うし、閉じる括弧の数もわからなくなるし、作成に時間もかかりますよね。2つ以上の条件が重なる(例えばA1が90~99の範囲でかつa2がAならb1にB1と表示するなど)など複雑になってくるともうお手上げです。 これらを短時間で要領よく作成する方法はないでしょうか?次の観点で教えてください。 1 if以外の良い関数はあるか?または良い機能はあるか?それとも複雑であってもif関数が妥当なのか? 2 (if関数が妥当であるとして)複雑なif文の作成を簡単にできる方法があるか?あるいはそんなソフトがあるか? 3 やっぱりそういうのはVBAとかで作った方がいいのか?(できれば使いたくないのですが。)

  • Excel関数IFの循環参照について

    お世話になります。 IF関数で、c1のセルに =IF(a1>=90,b1-1,(IF(a1>=80,b1-2,b1-3))) という式を作りました。 b1の値によって、c1は -1 等になりますが、c1の最低値は 0 にしたいのです。 e1 に、この結果を表示し、c1 は e1 を参照すれば可能ですが、外の方法は無いでしょうか?

  • エクセル IF関数について

    エクセルのIF関数で困っています。 A1のセルは、他のセル(B1)から飛ぶような設定をしている(=B1) B1に入力しない事があるで、A1の「0」に表示しないようにユーザー設定で「#,##0;"△ "#,##0; 」としている。 A2のセルには、A1に文字が表示されたときのみ「日」と表示するようにIF関数を入れた。「=IF(A1="","","日")」 しかし、A1に何も表示されていないのに、「日」が表示されてしまう。 試しに「=IF(A1="0","","日")」としたが、これでも「日」が表示されてしまう。 このような場合、IF関数はどうすればいいのでしょうか。 説明が下手ですいません。 どうか教えてください。