[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『vlookup関数の検索値に小数は使えない?』(F)
vlookup関数の検索値に小数を指定すると、思うように答えが返りません。どうしたらいいのでしょうか?
<例>
A列に 0 , 0.1 , 0.2 , 0.3 , 0.4 ・・・
B列に 0 , 1 , 2 , 3 , 4 ・・・
この2列を範囲指定で「aaa」とします。
C列に 0.1 , 0.2 , 0.3 , 0.4 ・・・
とあった場合、
D列に =vlookup(c1,aaa,2) の関数を指定すると、私としては 1 , 2 , 3 , 4 ・・・と返って欲しいのですが、なぜか 1 , 2 , 2 , 4 ・・・ と返ります。
0.3を認識していないというか・・・。
また同じような現象が、検索値=1.4 の時にも起こります。
データには中間の値(例えば 0.12 や 0.28 など)も存在するため、検索の型は TRUE(1) を指定しなければなりません。
ちなみに、検索値を10倍して、整数にすると思い通りの値が取れましたが、そんなことを考慮しなければならないのでしょうか?
教えてください。お願いします。
0.3は実際は0.29とかで表示形式で0.3に見えているだけではないですか?(ケン)
ケンさんの補足です。 A1は関数、数式で求めた数値ではないですか? ヒットしない小数のセルと手入力した同じ値のセルを小数点以下15桁くらいにして 比べてみてください。数値が違うことはありませんか?
小数は計算上微妙な誤差が出ている場合があります。 浮動小数点計算の場合、仕方がないので、有効桁数が整数になるように 数値を調整すれば誤差はなくなります。 ですから、 >検索値を10倍して、整数にすると思い通りの値が取れましたが、 >そんなことを考慮しなければならないのでしょうか?
この問いの答えは「YES」です。 (KAMIYA)
ケンさん、KAMIYAさん、早速の回答をありがとうございました。 KAMIYAさんの言う通り、A列は数式です。 でも、0 , =A1+0.1 , =A2+0.1 , =A3+0.1 , =A4+0.1 ・・・ となっているため、小数の誤差が出るとは思いませんでした。
>>検索値を10倍して、整数にすると思い通りの値が取れましたが、 >>そんなことを考慮しなければならないのでしょうか?
>この問いの答えは「YES」です。
小数以下のデータ取扱いは、難しいですね。 ありがとうございました。 (F)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.