Excelの[1]秒は 0.00001157407 ? の怪
ご承知の通り、Excelの日付や時刻は、1900/1/1を[1]としたシリアル値で管理されています。
シリアル値は小数で表されますが、
☆日付はシリアル値の整数部分に割り当てられ、
☆時刻はシリアル値の小数部分に割り当てられています。
①シリアル値が負(マイナス)であったり[2,958,466]以上の場合は、エラーとなります。
②シリアル値がゼロ[0]の場合、何故かエラーにはならず[1900/1/0]とあり得ない日付になってしまいます。
時刻のシリアル値は、[0~0.99…]の範囲で、
それに対応する時刻は[00:00:00(AM12:00:00)~23:59:59(PM11:59:59))となります。
1日は、60秒/分×60分/時間×24時間/日=86400秒/日なので、[1]秒に相当するシリアル値は、
逆数をとると[1/86400=0.00001157407…] となります。
(=TIME()関数で[00:00:01]をシリアル値に変換しても[0.00001157407…]となります)
しかし、よく調べてみるとExcelの[1]秒に相当するシリアル値は[0.00001157407…]ピッタリではなく、
どうやら、
0.00001157407±0.00001157407/2 の範囲のシリアル値は全て[1]秒と判定されるようです。
下図を見ていただくとお分かりの通り、シリアル値が0.00000579でも0.00001735でも[1]秒と見なされるということです。
従って、
0.00000579を[1]秒のつもりで使って2倍しても2秒にはならず1秒のままです。
0.00001735を[1]秒のつもりで使って2倍すると2秒にはならず3秒となります。
これがExcel 0.00001157407 の怪 です。
時刻をエクセルで扱う場合には、誤差には細心の注意が必要です。
・西暦年 例 2016/1/18,2016-1-18 何れでもOK
・和暦年 例 H28.1.18,H28/1/18,H28-1-18 何れでもOK(H:平成,S:昭和,T:大正,M:明治)
・今日の日付 [Ctrl]キー+[;](セミコロン)
・現在の時刻 [Ctrl]キー+[:](コロン)
・24時間以上の時間表示 ユーザー定義で [h]:mm と設定する