Excelで設定した単純なIF構文の関数で発生している事象です。
あるExcel上の表で、数値を入力後その値の有効性を検算するセルがあります。
2つの方法で入力した値がイコールであれば「OK」、イコールで無ければ「NG」と表示される様に、
IF構文で「=IF(セルA-セルB=0,"OK","NG")」と設定してあるのですが、0であるはずのセルの一部がOKになりません。
単純にこれだけであれば、見かけ0だけど実際は0でないからじゃない?とか思うのですが、以下の様に
(1)セルA-セルBの計算を別のセルで行い、そのセルの値が0かどうか判断するIF構文を組むとOKになる
(2)元の数式を「セルA-セルB=0」から「セルA=セルB」とするとOKになる
など、計算結果としては確実に0になっていると判断しています。
数式自体直してしまえば特に問題は発生しないので重要な要素では無いのですが、何故このような事象が発生するか不思議だったので質問してみました。
条件付き書式などの設定はありません。
使用しているExcelは2010ですが2003でも同様な結果になりました。
もし何か情報をお持ちの方いらっしゃいましたらご教授頂ければ幸いです。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
No.1さん、No.3さんのおっしゃるような、コンピュータが勝手に近似値を使うことによって生じる計算誤差を回避する方法はいくつか考えられると思いますが、ROUND関数で処理することも一つです。
例えばB1セルに誤差を生む可能性のある式が入力されているなら、「=round(b1,5)」といった具合に、「最終的な計算結果に影響を与えないほど小さな端数を除くことのできる適当な桁数で丸める」ということです。これにより、0.1が入力されているセルと0.1の近似値となるセルの差がゼロになるようにできます。ベストアンサーは辞退します。No.3
- 回答日時:
ご質問の状況は、2進数で表せない小数点以下の数字の演算(特に引き算)を行う場合に発生します。
例えばA1セルに「0.1」と手入力し、B1セルに「=1-0.9」のような演算結果での「0.1」を表示しておくと、=A1-B1は「0」と表示されていますが、実際は「0」ではありません。
例えば、数式を「=(A1-B1)*1」として、そのセルの表示形式を「数値」にして小数点以下の桁数を30桁にしてみると、「0.000000000000000027755575615629 」のように0ではないことがわかります。
一方、=A1=B1とした場合は、「TRUE」を返しますが、これはエクセルで数値を扱う場合、10のマイナス16乗以下の数値はエクセルが自動的に数字を丸めて同じ数字として判断するためと思われます。
このように、2つのセルが等しいと判断される場合でも、引き算すると表示は「0」でも実際の数字は0にならないケースが小数点以下の数字を取り扱う場合(例えば時間を計算する場合など)には頻繁に発生しますので、大小関係を判定する数式などを作成する場合には注意が必要です。
No.1
- 回答日時:
実際の値のデータが判らないので推測ですが
良くあるケースとして
浮動小数点の丸め誤差の問題があります。
Excel で浮動小数点演算の結果が正しくない場合がある
http://support.microsoft.com/kb/78113/ja
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
【お題】・忍者がやってるYouTubeが炎上してしまった理由
-
【お題】逆襲の桃太郎
【大喜利】桃太郎が1回鬼退治に失敗したところから始まる新作昔話「リベンジオブ桃太郎」にはこんなシーンがある
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
excel 関数にて文字を0として認識させる方法
その他(Microsoft Office)
-
【エクセル】関数で「A1が0でないならB1を表示」の式
その他(コンピューター・テクノロジー)
-
あるセルの値を認識しないのですが、何が悪いのでしょうか?
Excel(エクセル)
-
-
4
【エクセル】0以外が入力されていれば1を立てる計算式について
Excel(エクセル)
-
5
IF関数で0より大きい数値が入力されたら「あ」と表示、文字列の場合は空白としたい
Excel(エクセル)
-
6
Eエクセルの計算方法で空欄を0とみなすやり方をお教え願います。
Excel(エクセル)
-
7
空白セル内の数式を残したままで空白セル扱いとしたいのですが
Excel(エクセル)
-
8
エクセルで数式の答えを数値として参照したい
その他(Microsoft Office)
-
9
初歩的なExcelの質問となります
Excel(エクセル)
-
10
前期がマイナスの前年同期比の計算方法について
財務・会計・経理
-
11
&関数で、数字の先頭の「0」を認識させる
Excel(エクセル)
-
12
ある条件を満たすセルに対応する行のセル内容をコピーして・・
Visual Basic(VBA)
-
13
エクセル<引き算がおかしいです
Excel(エクセル)
-
14
計算結果が「0」のセルだけを「0」と表示したい。
Excel(エクセル)
-
15
エクセルのセル表示。整数は整数、小数点は小数点で。
Excel(エクセル)
-
16
Wordの入力中と確定後の文字の大きさが違う
Word(ワード)
-
17
多数の計算セルに一括で同一の関数を追加したい
Excel(エクセル)
-
18
空白を0とみなす関数
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セルをクリック⇒そのセルに入力...
-
Excel 例A(1+9) のように番地の...
-
枠に収まらない文字を非表示に...
-
貼り付けで複数セルに貼り付けたい
-
Excelでのコメント表示位置
-
エクセルの一つのセルに複数の...
-
excelの特定のセルの隣のセル指...
-
エクセルで住所と建物名を分け...
-
(Excel)数字記入セルの数値の後...
-
エクセルで指定したセルのどれ...
-
アニメの原画について
-
数式を残したまま、別のセルに...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
Excelで、「特定のセル」に入力...
-
LARGE関数 飛び飛びの範囲を指定
-
エクセルの書式設定の表示形式...
-
【エクセル】IF関数 Aまたは...
-
エクセル オートフィルタで絞...
-
エクセル 足して割る
-
エクセルのセルの枠を超えて文...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
貼り付けで複数セルに貼り付けたい
-
エクセルで指定したセルのどれ...
-
excelの特定のセルの隣のセル指...
-
Excelで数式内の文字色を一部だ...
-
枠に収まらない文字を非表示に...
-
【エクセル】IF関数 Aまたは...
-
セルをクリック⇒そのセルに入力...
-
【Excel】 セルの色での判断は...
-
エクセルの書式設定の表示形式...
-
Excelでのコメント表示位置
-
EXCEL VBA セルに既に入...
-
エクセルの一つのセルに複数の...
-
(Excel)数字記入セルの数値の後...
-
Excel 例A(1+9) のように番地の...
-
対象セル内(複数)が埋まった...
-
エクセルのセルの枠を超えて文...
-
エクセル 足して割る
-
エクセル オートフィルタで絞...
-
数式を残したまま、別のセルに...
-
エクセル セルの中に縦線が入っ...
おすすめ情報