「みんな教えて! 選手権!!」開催のお知らせ

【Excelの不思議な日付処理の初期値の疑問】日付データの基準日が1900/01/00 0:00なのは何故ですか?

1900/01/01 0:00が基準日だと思っていましたが、

=now()-now()

にすると1900年1月0日0秒という存在日付の0日が基準日になっていることが分かりました。

日付データの基準日が存在しない日にちなのに計算は正しく表示されます。

どういう仕組みで整合性が取れるのか教えてください。

A 回答 (6件)

http://detail.chiebukuro.yahoo.co.jp/qa/question …
こっちに有効な回答が最初の最初に入っているのに何故マルチポストをするのやら……
    • good
    • 0
この回答へのお礼

みなさん回答ありがとうございます

ね?正しい答えがわかるでしょ

もしここだけなら間違った知識を正しいものと認識する

インターネットの情報で正しい情報は23%

本当に正しい情報を得るには5箇所に聞く必要がある

こういうことです

お礼日時:2017/03/14 20:28

ご存じなかったようだけど、Excel の日付基準日は2通りが用意されています。


1.Windows版標準→ 1900/01/01 0:00 が基準日の1
2.Mac版標準___→ 1904/01/01 0:00 が基準日の0
「【Excelの不思議な日付処理の初期値の」の回答画像5
    • good
    • 0

こんにちは!



>1900/01/01 0:00が基準日だと思っていましたが・・・

基準日というより、1900/1/1をシリアル値の「1」とするいうコトになっていると思います。

=now()-now()
の結果は「0」となり、その1日前という考え方になると思います。
すなわち表示形式の「日付」だと 「0」 → 1900/1/0 と表示されます。

試しにA1セルに「0」を入力し別セルに
=WEEKDAY(A1)
としてみてください。
「7」と表示され「土曜日」という結果が返ります。
1900/1/1 が日曜日なのでその1日前と判断しているものと思われます。

Excelはマイナスの日付は判断できませんが、0以上の場合は日付(時刻)と見なされていると思います。

的外れの投稿かもしれませんが、
この程度で・・・m(_ _)m
    • good
    • 0

日付の基準日は「1900/01/01 0:00」で間違いないと思いますよ。


ただし、計算上や24時間以内の場合に、[シリアル値]として小数点のある
数値を扱う場合、存在しない「1900年1月0日0秒」を用意しているのだと
思います。

計算で使用できる最も古い日付−1900年1月0日
http://www.relief.jp/itnote/archives/001330.php
存在しないはずの1900年2月29日が存在する
http://www.relief.jp/itnote/archives/001333.php
    • good
    • 0

No.1 の補足



マクロ(VBA)では正しく使えたりします(VBAとセルのシリアル値がずれます)
頭の片隅に入れておいたほうが良いと思います
    • good
    • 0

実はエクセルは「1900/02/29」という存在しない日付を含んでしまっているので「1900/03/01」より前の日付は違っているので使わないほうが良いです。


本当かどうかは判りませんがロータスという表計算に合わせたという話があります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報