FC2ブログ

Excelでうるう年(1900年問題?) 

昨日は会社のNさんとなぜかうるう年の話になった。
なんでだったかなぁ?思い出せない。

で、2000年という年が特殊な年であることを教えてあげた。これはうるう年のルールについて。

1)西暦が4で割り切れる年はうるう年とする。
2)100年単位のキリ番の時はうるう年にしない。
3)但し400で割り切れる場合はうるう年とする。

以上のルールだと、2007年は4で割り切れないので平年。2008年は4で割り切れるのでうるう年。
では1900年というと4で割り切れるが、キリ番の年なのでうるう年にしない。2000年は3のルールでうるう年にする。
つまり3のルールは400年に1度しかないのだ。

「へぇ~、そうなんだ」とやや納得しないNさん。
「そうなんだよ。疑うならエクセルで確認してみな」
確認中…
「あれ?1900年でも“1900年2月29日”が表示されるよ」
「えー?じゃ2007年は?」
「“2007/2/29”と表示されるね」
「?」
そこで匝も自分のパソコンで確認すると、年月日表示の時は平年で2月29日を入れると/(スラッシュ)のある表示になるようだ。だけれど1900年のうるう年は年月日表示でも表示できる。
「OSの起算日のせいかなぁ?」

OSの起算日とは、Windowsでは1900年1月1日から時間をカウントしている。Macintoshは1904年1月1日から時間をカウントしている。なぜMacが中途半端な年からカウントしているかというと、1900年の平年のためにOS上でわざわざうるう年を修正するプログラムがいらないから。
1904年からはじめれば(別に1901年でもいいなだろうが)、3のルールのプログラムが296年は必要なく、それまでにOSもハードもガンガン進歩しているだろうという読みだったと思われる。当時はメモリなども高価でしたからね。

さて進歩したはずの21世紀の今日、エクセルで1900年がうるう年になってしまうのはなぜか。

マイクロソフトのサポートオンラインにありました。
“[XL2002] WEEKDAY 関数で 1900 年 3 月 1 日より前の正しい曜日が返らない”

結論から言うとエクセルで1900年日付システムを使用していると1900年の平年をうるう年にしてしまうとのこと。1904年日付システムにすればOK…というか、年月日表示でなく“/”での表示になりますが。

設定は「ツール」→「オプション」の「計算方法」タグにある「1904年から計算する」にチェック。
ただし既に作成済みのファイルでやると入力日付が4年加算されてしまうので注意が必要です。ちなみにこれはエクセルのみの問題でOSや他のソフトなんかはちゃんと動作しているんじゃないかな、未確認だけれど。


スポンサーサイト



コメント

コメントの投稿















管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
http://eniguma.blog85.fc2.com/tb.php/524-ba1e6136