エクセル関数[Excel関数]を1から解説しています。

エクセル関数の日付の互換性

エクセル関数では、実在しない日付でも、実際の日付として認識してしまう仕様になっています。

「1900年2月29日」を実在する日付として認識します。

これは何故かというと、グレゴリオ暦の日付の理論として、

「4で割り切れる年を閏年とするが、100で割り切れる場合は閏年としない、でも400で割り切れる年は閏年とする」

という理論になっていますが、この理論でいくと、1900年は閏年にはなりません。

従って、「1900年2月29日」という日は存在しないことになります。

しかし、Excel上では、「1900年2月29日」という日付はシリアル値「60」の値として認識してしまうのです。

ここで問題が発生します。「1900年3月1日」以前とそれ以降の日では、1日ずれが生じることになるからです。



まぁ1900年なんて古い日付を計算することなんてめったに無いとは思いますが、もし計算する場合には注意するようにしてください。

WEEKDAY関数をExcelで使用すると「1900年3月1日」以前の曜日についても正しく認識されない結果になってしまうと思われます。

ですが、Excelの日付に関する関数や機能は他の表計算ソフトと互換性が取れているらしいのです。

1900年に関してだけ、閏年として解釈するような機能になっているようです。

おそらく、エクセルが発売された当時の事情があるのかもしれません。Lotus 1-2-3からシェアを奪い取りたかったExcelが急いで互換性を満たしたところ、変なところでミスをしてしまったのかもしれませんね。

理由は定かではありませんが、このようなこともあるということを念頭に入れておくと良いかもしれません。

時々こうしたことで困ってしまうのは非常に時間のもったいないことですから、インターネット上の掲示板など、広く質問できる場所を知っておくと、何か困った時に問題を共有することが出来るかもしれません。

ご参考まで。