ここから本文です

エクセルのセルに入力されたものが 表示と実際の値が違う A列に 37.0から0まで...

ja2********さん

2017/12/212:50:52

エクセルのセルに入力されたものが 表示と実際の値が違う

A列に 37.0から0までを0.1ステップで入力しています

これをVlookupで拾おうとしたところ、ある範囲の数値だけエラーになります
よく見てみると 例えば 21.5とセルには表示されているものを数式バーで見ると
21.49999999998 となっています
21.5と打ち直すと その時はいいのですが オートフィルなどで再度入力しなおすと
同じようになってしまいます
別のセルではそうはなっていません
セルの書式をA列すべて直してみましたが そうなるところとならないところがあります

考えられる原因を教えて下さい

閲覧数:
84
回答数:
4

違反報告

ベストアンサーに選ばれた回答

all********さん

2017/12/216:55:26

=A1-0.1
では
33.4で
演算誤差が起き
33.3999999999999

=A$1-0.1*ROW(A1)
では演算誤差が起きない・・・
http://mmasashi.hatenablog.com/entry/20091102/1257174851

質問した人からのコメント

2017/12/3 09:18:17

なるほど
仕様として受け入れるしかないのですね

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

mike22ymdさん

2017/12/217:14:38

どうなっているものをオートフィルすると、「21.5」となってほしいところが「21.49999999998 となって」しまうのか教えてください。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

va3********さん

2017/12/213:38:52

下記サイトの他者のコメントより引用です。

>理由はコンピュータはすべて二進数で処理するわけですが、小数点以下の数字は
>2^-n の和で表現されるため、ほとんどの数値が循環小数になり正確には表現できません。
>例えば、0.1なんかもだめです。

https://answers.microsoft.com/ja-jp/office/forum/office_2013_releas...

はっきり言ってしまえば、これそのものは、仕様です。
セルを右クリックして「書式設定」→セルの表示形式を「数値」にして
小数点以下の桁数を増やしていくと値の実態が伺い知れます。

下記も参考に。

http://hataraku-ikiru.com/excel-decimal-error.html

プロフィール画像

カテゴリマスター

2017/12/213:36:55

小数ステップだから、二進換算誤差が時々出るんです。

オートフィルでは対策方法はありませんが、数式のドラッグコピーなら
・上の値を10倍して1引いてから10で割る
・上の値から0.1引いたら小数点以下1桁か2桁あたりで四捨五入する
などの方法で対策可能ですね。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる