Home » Excel(エクセル)の関数・数式の使い方 » 日付の処理・計算 » 存在しないはずの1900年2月29日が存在する

存在しないはずの1900年2月29日が存在する

対象:Excel97, Excel2000, Excel2002, Excel2003

計算で使用できる最も古い日付」という記事をご紹介しましたが、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)という文書には、以下のような記述があります。

Excel の日付システムは、他の表計算ソフトとの互換性を完全に満たすように定義されています。

しかしながら、この日付システムにおいて、1900 年は事実に反して閏 (うるう) 年として解釈されています。

他の表計算ソフトとの互換性を満たすために、Excelの日付関連の仕様を設計したんだけど、これによってないはずの1900年2月29日が存在することになってしまった、ということです。

他の表計算ソフトとなどと表現されていますが、まあ、Lotus 1-2-3でしょう。

当時の表計算ソフトの覇者・Lotus 1-2-3からシェアを奪い取るために、仕様として変な部分も取り込んでいったということなのでしょう。

[スポンサードリンク]

Home » Excel(エクセル)の関数・数式の使い方 » 日付の処理・計算 » 存在しないはずの1900年2月29日が存在する

「日付の処理・計算」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.
.