「計算で使用できる最も古い日付」という記事をご紹介しましたが、Excelで古い日付を計算に使う可能性がある場合に、知っておくべきことがあります。
Excelでは、本当は存在しないはずの、1900年2月29日が存在する、ということです。
グレゴリオ暦では、
4で割り切れる年は閏年
でも、100で割り切れる年は閏年にはしない
でも、でも、400で割り切れる年はやっぱり閏年にする
というルールになっています。
このルールに従えば、1900は、4でも100でも割り切れるけれど、400では割り切れないので、1900年2月29日は現実には存在しません。
けれどもExcelでは1900年2月29日は存在しています。
Excelで「1900/2/29」と入力すれば、シリアル値「60」の日付と認識してくれます。
ですから、、Excelでは、1900年3月1日より前の日と、それ以降の日とで計算をすると1日ずれが生じてしまいます。頻繁にあることではないとは思いますが、1900年3月1日より前の日を計算に使う場合、注意が必要です。
ちなみに、何故こんなことになっているかについてですが、Microsoftの[XL2002] WEEKDAY関数で1900年3月1日より前の正しい曜日が返らない(KB106339)という文書には、以下のような記述があります。
しかしながら、この日付システムにおいて、1900 年は事実に反して閏 (うるう) 年として解釈されています。
他の表計算ソフトとの互換性を満たすために、Excelの日付関連の仕様を設計したんだけど、これによってないはずの1900年2月29日が存在することになってしまった、ということです。
他の表計算ソフトとなどと表現されていますが、まあ、Lotus 1-2-3でしょう。
当時の表計算ソフトの覇者・Lotus 1-2-3からシェアを奪い取るために、仕様として変な部分も取り込んでいったということなのでしょう。
- Newer:文字のロールオーバー−文字色の変更
- Older:Google Maps
Home » Excel(エクセル)の関数・数式の使い方 » 日付の処理・計算 » 存在しないはずの1900年2月29日が存在する