• ベストアンサー

Excelで計算結果が違う(VLOOKUP)

ある表があるのですが、 同じ数値になるはずの計算結果が同じ数値にならず、違うのです。 少しわかりづらいとは思いますが、 心当たりのある方はご教授お願いします。 ↓こんな表があります。↓    A     B      C 1  計算   量     単価 2  数値1   0     399 3  数値2   1     399 4  計算1   2     399 5  計算2   3     399 6         4     399 7         5     399 8         6     399 9         7     399 10        8     399 11        9     399 12       10     399 13       11     388 数値1に「11」と入れて、数値2に「0」と入れて下さい。 計算1には「=A1-A2」と入れて下さい。 計算2には「=VLOOKUP(A4,B2:C122,2,1)」と入れて下さい。 入れ終わると、計算1には「11」と、計算2には「388」と、出るはずです。 この表は、数値1から数値2を引いて出た数値を VLOOKUPで「量」と照合して「単価」を持ってくる。という表です。 次に、計算1と計算2は変えずに、 数値1に「72.6」と入れて、数値2に「61.6」と入れて下さい。 これは先ほどやった数値1(11)-数値2(0)と同じ計算結果になるはずです。 しかし、数値を入力してみると、計算2には「399」と出てしまうのです。 ここで悩んでおります。 VLOOKUPの検索の型は、小数点以下での照合があるため、「TRUE」にしてあります。 「FALSE」にすると、#N/Aエラーになります。(11-0は11と出ます) これはExcel(VLOOKUP)のバグなのでしょうか? 私には原因不明です。この表は仕事で使う表で、私が作ったものです。 普段の仕事で使うため、なるべく早く回答を頂きたいと思っております。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 いわゆる、浮動小数点誤差というものです。 Excelでは、小数の計算には注意する必要があります。 以下のページに、浮動小数点誤差についてと対処方法があります。 http://pc21.nikkeibp.co.jp/special/gosa/ 今回の場合だと、使用しないだろう桁数(小数点以下4桁とか5桁とか)で四捨五入をしてから、検索するという方法になると思います。

参考URL:
http://pc21.nikkeibp.co.jp/special/gosa/
lenpou
質問者

お礼

回答ありがとうございました。 今回は浮動小数点誤差というものが原因だったようで・・・ 無事解決できました。 今回はどうもありがとうございました。 また何かありましたらどうぞよろしくお願い致します。m(_ _)m

その他の回答 (5)

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.6

十進数を二進数で計算するために出るバグです。 これは仕様。 有名なところでは下の式を試してください。0にはなりません。 =(1.1-1-0.1) 今回の結果は見た目は11でも実際は10.99999.....になっているため、Vlookupでは10を検索しています。

参考URL:
http://www.asahi-net.or.jp/~FV6N-TNSK/gates/excel.txt
lenpou
質問者

お礼

回答ありがとうございました。 今回は浮動小数点誤差というものが原因だったようで・・・ 無事解決できました。 今回はどうもありがとうございました。 また何かありましたらどうぞよろしくお願い致します。m(_ _)m

  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.5

EXCELのバグというよりも、有効桁数の問題です。 11-0も72.6-61.6も、計算上は確かに11です。 ですが、コンピュータ上では小さい桁のところで誤差を持っています。 (そういうもんだと納得してください。) ですから、今回のような場合は、 「=VLOOKUP(INT(A4),B2:C122,2,1)」 のように、意識して丸めてください。 頑張ってくださいヽ(^。^)ノ

lenpou
質問者

お礼

回答ありがとうございました。 今回は浮動小数点誤差というものが原因だったようで・・・ 無事解決できました。 今回はどうもありがとうございました。 また何かありましたらどうぞよろしくお願い致します。m(_ _)m

  • samtyan
  • ベストアンサー率20% (59/292)
回答No.4

計算1は、「=A2-A3」 ですよね。 どう違うか検証していませんが。。。

lenpou
質問者

お礼

回答ありがとうございました。 今回は浮動小数点誤差というものが原因だったようで・・・ 無事解決できました。 今回はどうもありがとうございました。 また何かありましたらどうぞよろしくお願い致します。m(_ _)m

回答No.2

小数点以下の演算で丸め誤差が発生し、そういう結果になります。 適当なところでround()するか、「表示桁数で計算」オプションを使 いましょう。

lenpou
質問者

お礼

回答ありがとうございました。 今回は浮動小数点誤差というものが原因だったようで・・・ 無事解決できました。 今回はどうもありがとうございました。 また何かありましたらどうぞよろしくお願い致します。m(_ _)m

  • chupark
  • ベストアンサー率41% (90/218)
回答No.1

VLOOKUPの対象とする表はキーとなる列が 昇順に並んでいる必要があったのではないでしょうか。 ヘルプファイルか何かに書いてあったような気がします。 記憶違いだったらごめんなさい。

lenpou
質問者

お礼

回答ありがとうございました。 今回は浮動小数点誤差というものが原因だったようで・・・ 無事解決できました。 今回はどうもありがとうございました。 また何かありましたらどうぞよろしくお願い致します。m(_ _)m

関連するQ&A