Excel関数の日付の互換性
スポンサードリンク
今回は、日付の互換性の問題について、書きたいと思います。
Excel関数では、実在しない日付の「1900年2月29日」を日付として認識してしまうという仕様になっています。
これは何故かというとグレゴリオ暦の日付の理論として「4で割り切れる年を閏年とするが、100で割り切れるときは閏年としない、しかし、400で割り切れる年は閏年とする」という考え方の理論になっています。
この理論上では、1900年は閏年ではありません。そのため「1900年2月29日」という日は存在しないことになります。
しかし、エクセル上では「1900年2月29日」という日付はシリアル値「60」の値として認識されてしまいます。つまり、「1900年3月1日」以前とそれ以降の日で1日のズレが生じてくるということになってきます。
恐らく、1900年という古い日付を計算することはほとんどないとは思いますが、万一、計算するときには注意して下さい。
なぜ、こうなるかというと、WEEKDAY関数をエクセルで使うと「1900年3月1日」以前の曜日が正しく認識されないという結果になってしまうということで、エクセルの日付に関係した関数や機能は、他の表計算ソフトと互換性が取れているということなのらしいのですが、1900年に関してだけは閏年として解釈するような機能になっているようです。
恐らく、エクセルが出始めた当初、Lotus 1-2-3からシェアを奪い取りたかったエクセルが急いで互換性を満たしたところ変なところでバグが残ってしまったといったところでしょうか?
詳細は不明ですが、注意して使ってください。
スポンサードリンク