ろしーの日記な気まぐれ

アクセスカウンタ

zoom RSS 1900/1/0

<<   作成日時 : 2012/12/26 23:04   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

いまさらながら・・・

今日、ひょんな事から、勤務時間の計算表を作成するはめに陥り、改めて、時間、日付けの計算のマイナスの取り扱いに悩んでしまった。

ご承知のようにマイクロソフトのエクセルは時間軸が1900年1月1日から始まる。ただし、1904年1月1日からも始められる。
(これは、マイナス値を正しく表示するためのテクニックとして知られている。MSにも解説がある。)
http://support.microsoft.com/kb/214330/ja
http://support.microsoft.com/kb/401637/ja

そこでだ、この2つのスタート時間の間には問題が生じる。

(1)WEEKDAY関数のシリアル値が標準だと、正しい曜日表示にならない。
  これは、TEXT関数での曜日の取り扱いがずれるせいなのだが、どうしてこんなへんてこりんな仕様なのだろう。
  1900年始まりの場合は、曜日に相当するシリアル値は、1(日曜)〜7(土曜)なのだが、1904年始まりでは1(土曜)〜7(金曜)になる。
  おかげで、計算式を手直しするはめに・・・WEEKEND関数の引数として16を指定する事で修正した。

(2)MSの説明では1900/1/1から始まる事になっているが1900/1/0が存在する。
  (1)の検証のために、1900/1/1以前がどう扱われるか、適当な年月日からの引き算をしてみた。
  ちなみに2012/12/31から41,273を引く。

すると、何と言う事だ。計算結果は1900/1/0になる。

  結局、数字の0の取り扱いが原因でこんな事に・・・

  OPENOFFICEのCALCではこのようなことは起こらない。しがらみがないからか?
  きちんと1899/12/31の結果が表示されるし、それより大きい数字を引いても計算される。(1900/1/1のシリアル値は2となっている。)
  また、1900年に2月29日は存在しない。

  

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
1900/1/0 ろしーの日記な気まぐれ/BIGLOBEウェブリブログ
文字サイズ:       閉じる