1904年から計算する?

Categories: トリビア  2008/6/20 金曜日

エクセルは日付をシリアル値で管理しています。

具体的には、開始日を「1」、翌日を「2」・・・という具合に、1日ごとに1つずつ増えた数値を割り当てています。これにより計算が容易になるという仕組みです。

例えばエクセルを開いて、本日の日付2008年6月20日を入力した後に表示形式を変更すると、「39619」というシリアル値を見ることができます。39619日さかのぼると開始日の1900年1月1日となります。

ところがmac版の開始日は1904年1月1日です。(mac版は開始日が0から始まるという違いもあります)

Windows版エクセルのオプションにある「1904年から計算する」のチェックボックスは、開始日が異なるmac版エクセルとの互換性を保つために準備されているというわけです。

しかしなぜこのような違いが生じたのでしょうか?

エクセルはmac版が先に開発されました。つまりエクセルの開始日は1904年が標準だったわけです。1904という一見半端な開始日には閏年にまつわる問題が関係していました。

ここで閏年のルールを再確認。

1. 西暦年が4で割り切れる年は閏年
2. ただし西暦年が100で割り切れる年は平年
3. ただし西暦年が400で割り切れる年は閏年

1900年から2100年までの期間に当てはめますと、条件2により1900年と2100年は閏年ではありません。しかし2000年は条件3にも当てはまるため閏年となります。

シリアル値で管理する上でこの閏年のルールは厄介なものでした。そこで考え出された案が、1904年を開始日とする方法でした。1904年 -2096年の期間を扱うと仮定すれば、閏年は4年に1度という単純な計算で済むからです。以上の理由で、mac版の初代エクセルは1904年を開始日としました。

しかしWindows版のエクセルには厄介な他の問題がありました。それは当時MS-DOS版の表計算ソフト業界で圧倒的なシェアを誇っていた「ロータス1-2-3」の存在です。

この牙城を崩すためにはロータスとの互換性が必須だったのです。(ロータスは開始日が1900年1月1日)

ロータス自体も閏年の問題を抱えたままでしたが、”忠実な互換”を追求するために、Windows版エクセルは開始日を1900年とすることになりました。


Author: Jun
アイティーアシスト代表 ワクワクするようなIT活用をご提案します。

コメントは受け付けていません。