[Excel] 時刻を含んだVLOOKUPがおかしい

投稿


Excelは時刻を小数で覚えています。
0:00:00を0.0、12:00:00を0.5、24:00:00を1.0としています。
20141009a

17:00はキリの良い時間ですが、0.708333…と無限小数になり、
さらに無限に小数を計算するワケにはいかないので、
途中で打ち切ってExcel的には0.708333333333333と覚えているようです。

ですので、時刻を使って計算を繰り返す誤差が出てきます。
できるだけ正確に計算したい場合は、
時刻を使わずに時・分・秒に(HOUR, MINUTE, SECOND関数で)なおしてから整数で計算後、
時刻に(TIME関数で)戻すと良いです。
 




 
時刻計算には上記のような問題がありますが、
誤差がない場合でもVLOOKUP関数を使うとエラーになる場合があります。

VLOOKUP関数の引数は…

=VLOOKUP(検索したい値(検索元), 検索する一覧表(検索先), 
         一覧表のどの列を取り出すか, あいまい検索するかどうか)

ですが、第4引数をFALSE(または0)にして、あいまい検索しない(つまり完全一致のものだけを取り出す)ようにし、
時刻を扱うとエラーになる場合があります。
 


 
20141009b
上の例はVLOOKUP関数で、「時刻を手入力した列(A列)」から、「時刻をTIME関数で生成した列(I列)」を使って値を取り出していますが、エラーになる時刻があります。
(時刻をTIMEVALUE関数で生成した場合も同じ問題が起こります)

単純にイコール(=)で比較した場合はTRUEとなっており、数値的には同じものですが、
VLOOKUP関数の仕様なのかうまくいきません。
(詳細をご存じの方がありましたら教えて下さい)
 
ですので、こういう場合は、VLOOKUP関数第4引数TRUE(または1、または省略)し、あいまい検索にするか、
時刻を使わずに時・分・秒に(HOUR, MINUTE, SECOND関数で)なおしてから計算すると良いです。





コメントを残す

メールアドレスが公開されることはありません。