• ベストアンサー

エクセルに入力した数字について

エクセルの2002を使用しています。 A1セルに「13:00」と入力すると「13:00」と表示されます。 数式バーには「13:00:00」と出ています。つまり13時00分00秒ということだと思います。 ところが「30:20」と入力するとセルには「31:20:00」と出ますが数式バーには、「1900/1/1 7:20:00」となっています。 これはどういうことでしょうか? なぜ1900年1月1日で、時刻は7時20分00秒になるのでしょうか? どういう計算なのですか?

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

  • ベストアンサー
  • kaisendon
  • ベストアンサー率44% (114/257)
回答No.2

こんばんは エクセルはシリアル値というもので日時を判断しています。 シリアル値の 1 は一日を表します。 12時間は 0.5  1時間は 0.041666… 13時間は 0.541666…  7時間20分は 0.30555…となります。 ちなみに 31:20 は 1日と7時間20分 つまり 1.30555…です では、なぜ1900/1/1になるのか? ちなみに2005/8/8はシリアル値で 38572 2005/8/9は 38573 です。 1900/1/1のシリアル値は 1 です。 1900/1/1が 1 で始まって、今日(2005/8/9)が38573な訳です。 31時間20分=1.30555…(シリアル値) この整数部分の 1 が1900/1/1 の日付のシリアル値に等しいので ご質問のような状態になります。 解せないかも知れませんがそういうことです。 理解を深めるためには下記の例を試される事をお勧めします。 例)任意のセル(仮にA1)に 8/9 と入力   別のセルに(仮にA2)に 1:00 と入力   別のどこかのセルに =A1+A2  として下さい。   2005/8/1 1:00 といった結果になると思います。 この時点でそれぞれのセルの表示形式を「文字列」にしてみて下さい。 A1は 38573 A2は 0.041666… =A1+A2 としたセルは 38573.0416…となっているはずです。 では、A2に31:20と入力したらどうなるでしょうか? 8/9 + 31:20 =8/9 + 24:00 + 7:20 =8/10 + 7:20 =8/10の7:20となりますね? シリアル値では  38573 + 1.30555… =38573 + 1 + 0.30555… =38574 + 0.30555… =38574.30555… つまり 8/10の7:20ということです。 ご理解頂けましたでしょうか?

suitaeki
質問者

お礼

非常に詳しい説明をして頂きまして、誠にありがとうございました。理解できました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 >これはどういうことでしょうか? >なぜ1900年1月1日で、時刻は7時20分00秒になるのでしょうか? >どういう計算なのですか? ご指摘になっていることは、私も同様に疑問に感じます。私は、掲示板の回答をして時に、人に言われて初めて、その計算自体の見えていない部分に気が付きました。見方を新しくすれば、疑問に思っても当然のような気がします。 今となっては、一般の人には試すことはできませんが、1980年代のMS-Excelの原型には、そんな考え方はなかったと思います。 私は、主にVBAを扱っていますから、VBAは時間は時間で、日付は日付ですし、原型も同様ではなかったか、と考えてしまいます。しかし、現在のExcelでは、時間と日付は、ひとつながりで扱われます。 #計算で使用できる最も古い日付 #1900年1月1日 (1904年日付システムの場合は 1904年1月1日) もちろん、オプションで、1904年~の仕様も選択できますが、一応、Excelの通常の仕様は、1900/1/1 が起点と書かれていますから、まず、そちらで調べてみます。 31:30:00 =A1-"31:30" とすれば、    1900/1/0 0:00    と出てくるから、スタートは、1900/1/0 0:00 かなって分ります。 1900/1/0 0:00というのは、もしかしたら、1989年12月31日の午前0時のことかもしれません。ということは、仕様の記述が間違いではないかと思います。 その証拠に、今度は、それに、24時間を足しますと、=A1-"31:30"+"24:00"  1900/1/1 0:00 となります。また、 A3: 1989/12/31 =A3+1 とすると、戻り値は、1900/1/1 となります。1989/12/31は日付として認識しています。 なお、オプションで、1904/1/1を起点とする場合は、 =A1-"31:30" その戻り値は  1904/1/1 0:00 となります。 ということは、1900年1月1日は、1904年日付システムの1904年1月1日ではなく、1900年1月0日が、1904年1月1日に対応しています。 1900/1/0という日付は、通常は、表示は出さないのかもしれませんが、考え方としては、1989/12/31 0:00 を起点として計算しているはずです。なぜ、そんな風になっているのか、私にはよく分りません。 今の私は、こういうことを考えてもきりがないので、仕様として受け入れるだけです。

suitaeki
質問者

お礼

非常に詳しい説明をして頂きまして、誠にありがとうございました。理解できました。

すると、全ての回答が全文表示されます。
noname#128820
noname#128820
回答No.3

日付、時間を表すシリアル値が理解できてないようですので下記URLを参考にして下さい。 (31:20:00から24を引くと1日と7時20分00秒で時刻の部分は理解できると思いますが1日が何故1900/1/1?は、読むと解ります。) http://www.relief.jp/itnote/archives/000213.php

参考URL:
http://www.relief.jp/itnote/archives/000213.php
suitaeki
質問者

お礼

ありがとうございます。

すると、全ての回答が全文表示されます。
回答No.1

セルの表示形式の違いです。 そのセルを右クリックして、セルの書式設定をクリックしてください。 解るかと、思います。。入門書をお勉強してみてください。

suitaeki
質問者

お礼

ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A