• ベストアンサー

【Excelの不思議な日付処理の初期値の疑問】日付

【Excelの不思議な日付処理の初期値の疑問】日付データの基準日が1900/01/00 0:00なのは何故ですか? 1900/01/01 0:00が基準日だと思っていましたが、 =now()-now() にすると1900年1月0日0秒という存在日付の0日が基準日になっていることが分かりました。 日付データの基準日が存在しない日にちなのに計算は正しく表示されます。 どういう仕組みで整合性が取れるのか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • msMike
  • ベストアンサー率20% (363/1775)
回答No.3

いつも同じ質問を、間髪を入れずに、アッチとコッチで? 見苦しい!

posttruth2017
質問者

お礼

みなさん回答ありがとうございます 1箇所で正しい答えがわかると思っているなら間違いです インターネットの情報は23%しか正しい情報がない。 73%が間違った回答です。

その他の回答 (2)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.2

>1900/01/01 0:00が基準日だと思っていましたが、 基準日と言うより起算日と言った方が良いと思います。 Excelでは日付を1900/1/1=1として経過日数を計算する仕組みになっています。 > =now()-now() にすると1900年1月0日0秒という存在日付の0日が基準日になっていることが分かりました。 それはあなたの思い違いです。 >日付データの基準日が存在しない日にちなのに計算は正しく表示されます。 1900年1月0日と言う日付はありませんので =now()-now() → 0 が日数の正しい値になります。 終了日-開始日=経過日数なので日付ではありません。 しかし、表示形式を "yyyy/m/d" にすると数値の0が1900/1/0と表示されてしまいます。 エラーにならないのはバグかも知れません。 経過日数を表示するには表示形式を ""標準" にすべきでしょう。 >どういう仕組みで整合性が取れるのか教えてください。 1900/1/1の前日は1899/12/31です。 しかし、Excelでは1899/12/31以前の日付を扱うことができませんので経過日数が1に満たない値を日付の表示形式で表示させようとしたとき1900/1/0となるようにプログラムされたのでしょう。(1未満の値を日付で表示させないようにプログラムされていないのはバグと言えるのではないでしょうか?) 日付は1900/1/1=1を起点とした経過日数を表示形式で日付と判断できる形に表しているもので、開始日から終了日までの経過日数は表示形式を標準または数値で表さないと理解できないのではないでしょうか? 次のような状態良いのでしょうか? =[終了日]-[開始日] → 2017/3/14-2017/2/7 → 35 → 1900/2/4

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

1日(未満)経った日付が http://qiita.com/AQRiL_1132/items/4e1d8eb980b952275c09 にあるように1900年1月1日ではないですか。そういう基準で言えば、基準日は1900年1月0日というのかな。暦にないのですが基準ということを考える以上そうなる。 A1セル1900/1/1 B1セルに=A1-1で 1900/1/0 ここまでは計算してくれる。-2すると結果の値がでない。 1900年で年初1秒でも経ったら、日付的には1月1日といわれるわけだから。日本の数え年を思い出すが。 https://support.microsoft.com/ja-jp/help/214330/differences-between-the-1900-and-the-1904-date-system-in-excel 1900 年を基準とした日付方式では、サポートされる最初の日付は 1900 年 1 月 1 日です

関連するQ&A

  • エクセルの日付の処理について

    エクセルの日付の処理方法を教えて下さい。 VLOOKUPを使って、大量の日付の付いたデータを処理したいのですが、たとえば 一方は  2012/7/1 もう一方は 201207 (月単位のデータしかない、「日」の情報が無い文字列データ) だとします。 このふたつを同じものとして検索したい場合、どのように 201207 を加工したらよいのでしょうか? 201207 という文字列データをシリアル値に変更すればいいのかなと考えたのですが シリアル値に変更する方法がよくわかりませんでした。 よろしくお願いします。

  • excelで日付の関数・・・

    すごく初心者的な質問ですみません。 excelで日付関数を使いこなせなくて困っています。色々ネットで調べたり、本を見たりしましたが、出来なくて。。。 ある列に入力した日付(例えば2004/2/19とか・・)の 10日後の日にちを別のセルに出したいのです。 それはいとも簡単にできるんですが(当り前か??) その10日後ってゆうのが曲者で、10日後が、土日祝にあたる場合は月曜日若しくは祝日の翌日の日にちが入るように指定したいのです! ちなみにWORKDAY 関数だと、10日間カウントするにも土日祝を抜いて計算 してしまいますよね??? 皆さんならどうやって処理されますか???? 明日、処理したいのですみませんが早めにご回答お願いいたします!

  • Excelにおける日付

    仕事用に他部署からデータをExcelでいただいたのですが、1万件近くのデータが入っており、このデータの日付が全て7桁の数値として入力されているため、活用できず困っています。 Excelに詳しい方のお知恵を拝借したく、質問に参りました。 行いたい処理は、Excelのあるセルに「20050301」という7桁の数字が入力されている場合、これを別の1つのセル内に「2005年3月1日」という日付として認識させたいのです。 そういったことはできるのでしょうか? セルの書式で、表示形式をユーザー定義・####年##月##日とすれば、「2005年03月01日」と表示させることは簡単にできますが、そうではなく、7桁の数字を日付として認識させ、日付関数を使って日数の計算をしたいのです。 A1セルに「20040301」、B1セルに「20050301」と入力されているとしたら、これをそれぞれ「2004年3月1日」、「2005年3月1日」と認識させ、その間の日数が365日という結果を算出するのが目的です。 ダイレクトにできなければ、途中にいくつかの列を経由しても構いません。 よろしくお願いします。

  • エクセルの日付

    エクセルで入力した日付の90日後の日付を表示する 計算式はできるのですが 入力した日付の3ヵ月後の日付を表示する計算式が わかりません。 よろしくお願いします。

  • ※※エクセルの日付設定※※

    日付の設定に関しての質問です。未来のある日付の入力をたとえば引渡し日という項目に入れるとその日を基準に現在に遡り必要項目たとえば引き渡し10日前に検査があれば検査の日付にその日にちを基準日から遡って返すといったような関数をお知りの方お教えください。宜しくお願いします。

  • エクセルで日付から日にちを削除したい

    エクセルの操作で困っているのでどなたか教えてください! 日付表示なんですが、表示だけ変更するやり方は わかるのですが、データ上から日にちだけを削除する方法が どうしても分からないのです。 たとえば、「2007年10月」と表示されている場合 データ上は「2007/10/1」となっている為 この場合、「1日」の日にち部分だけを削除したいのです。

  • ワードの日付をエクセルの日付に変えたいのですが。

    どなたかエクセルに詳しい方にお尋ねします。 ワードでできたリストがあり、たとえば、10 Mar 2000のように英語の日付が入っています。これをエクセルに貼り付けることはすぐにできたのですが、エクセルのセルはこれを文字と認識してしまい、日付とは認識しないのです。この日付を元に年齢計算などをしたいので、どうしても日付として認識してもらいたいのです。どうすればよいのでしょうか。データは2000以上あるので、手作業で変更することは不可能なのです。お願いします。

  • Excel の日付の差

       すみません、エクセル・ユーザーには簡単な質問かもしれません。  ぜひ、教えてください。  ある「日付1」と、ある「日付2」との差分(日数)を知りたいです。  例えば、現在の日にちと比べて、生まれて何日かです。  よろしくご教授お願いします。  

  • エクセルの日付関数について

    エクセルの日付関数についてです 基準日から計算して、日付を求めていますが、その求めた「月」だけを使用し別なシートで VLOOKUPを使うときの検索値にしたいのです。 その月を数値化する方法はありませんでしょうか うまく説明できませんがよろしくお願いします  今日の日付 →条件による該当日付 →該当日付の「月」を利用し検索する  2010.11.12    2011.2.11          2月を数字の2と置き換える方法                            がありませんか?

  • Excelの日付をコピーし、貼り付けると1日ずれます

    Excelに入っている日付データをコピーし、別のファイル、又は別のシートのセルに貼り付けると、不思議なことに、日付が1日ずれた形でコピーされてしまいます。 例えば 2005.9.22 10:00:00 と入っているセルをコピーし、貼り付けると 2005.9.23 10:00:00 と貼り付けられてしまうのです。 但し、これが同じシート内の場合は同じ日付でペーストされます。 どうやっても1日ずれてしまうので、困っています。 どうすれば同じ日付が貼り付けられるでしょうか?

専門家に質問してみよう