- ベストアンサー
31:30:00が1900/1/1 7:30:0
エクセルで時間を入力してるのですが 「21:30:00」と入力すると「21:30:00」のままなのですが 他のセルに「31:30:00」を入力すると表示は「31:30:00」になるのですが、 数式バーは「1900/1/1 7:30:00」になってしまいます。 どちらも書式は「[h]:mm」にしています。 なぜ30時間を超えるとおかしくなるのでしょうか?
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
エクセルの日付は、1900年1月1日が起点です。 数値の1を表示形式「[h]:mm:ss」で表示すると、24:00:00(24時00分00秒) 「hh:mm:ss」で表示すると、00:00:00((00時00分00秒) yyyy/mm/dd で表示すると、1900/01/01(1900年1月1日) yyyy/mm/dd hh:mm:ss で表示すると 1900/01/01 00:00:00 となります。 時刻表示の 21:30:00 は、数値では、0.8958 時刻表示の 31:30:00 は、数値では、1.3125 です。 数値の1が1日(24時間)に相当します。正確に言うと、数値1の違いが1日(24時間)の違いに相当します。 数値で1以下は1900年1月1日以前なので、数式バーに1900/01/00 21:30:00 と表示しても良いのですが、日付に0日というのはありませんので変ですよね?そこで仕方なしに時刻の部分だけを表示するようにしたのでしょう。(エクセルを作った人は困ったと思います。)エクセルの仕様だ、と言えばそれまでですが、 30時間を超えるとおかしくなるのでではなく、24時間以上だと表示が変わるのです。
その他の回答 (6)
数式バーはセルの書式設定では表示の形式を変更できません。 (強いて、変更するなら、コントロールパネルで地域と言語のオプションで日付と時刻の表示形式を変更する。しかし、「[h]:mm」のような形式は無いはず。また、ほかにExplorerで表示するファイルの日付時刻の表示などが変わってしまうので注意(未確認、私の推測)) なぜ30時間を超えるとおかしくなるのでしょうか? 24時間を越えると、数式バーではそういう表示になります。強いて理由を言えばExcelの仕様です。 これは、シリアル値(Excelが日付時刻を表す数値)が日付は1日を1にし、1900/1/1から通算日となり、時刻は1時間は1/24つまり0.041666…となっているからです。
お礼
ありがとうございました。
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
>なぜ30時間を超えるとおかしくなるのでしょうか? 一言で言うと、それが Excel の仕様だからです。 セルに「23:59:59」と記入し、数式バーを見てみましょう。あれっ、おかしいな?「11:59:59 PM」と表示されている。私が書いたのと違うじゃないか。続いて別のセルに、「24:00:00」と記入。今度は数式バーに「1900/1/1 12:00:00 AM」となっている。 次に、今記入した 2 つのセルの書式を「標準」などに設定してみましょう。すると「0.999988426」と「1」になりますね?この状態で数式バーを見ると、「0.999988426」と「1」のまま。 さらに別のセルに、「0.5」と「1.5」を記入し、書式を「[h]:mm:ss」にしてみてください。そして数式バーを見ると…「12:00:00 PM」と「1900/1/1 12:00:00 PM」になりましたね? 最後に、さっき記入した「1」と表示されている箇所が A1 セルだとすれば、A2 に「7:30:00」、A3 に「=a1+a2」と記入しましょう。そして A3 をコピーして、別のセルに値複写してください。「1.3125」になりますね。そのセルの書式を「[h]:mm:ss」にすれば、セルの表示は「31:30:00」に、数式バーは「1900/1/1 7:30:00 AM」になります。 要するに「1900/1/1 7:30:00 AM」のうち「1900/1/1」が「1」に相当し、「7:30:00 AM」が「0.3125」に相当しているわけですね。 質問者さんは多分、日時のシリアル値というのをご存じだと思います。それは、日時を記入したセルの書式を「標準」などに設定したときにセルと数式バーに表示される数のことですね。セルに表示される数字は、シリアル値とは異なっているというだけではなくて、数式バーに表示される数字とも異なってくるんですね。 つまり、そういうもんだということです。つまり、仕様ということです。
お礼
ありがとうございました。
- ko_futaba
- ベストアンサー率0% (0/3)
NO.1さんの通り全く正常です。 時刻と時間の違いを考えて下さい。 時刻は24時迄しか有りません。 例えれば腕時計と同じ様なものです。 24時を過ぎて25時と言うのは翌日の1時です。 「31:30」は腕時計で考えてみれば翌日の7時30分です。 つまり「1日と7:30」となります。 これを標準表示にすればシリアル値「1.3125」が得られます。 シリアル値は整数部が「日」、小数部が「時刻」になっています。 シリアル値「1.3125」を 時刻表示にすれば「7:30」 ( h:mm 形式) 時間表示にすれば「31:30」( [h]:mm 形式) 日付表示にすれば「1900/1/ 7:30」 (数式バーは日付表示) 表示(見た目)は色々ですがパソコン内のデータは全て同じ数値です。
お礼
ありがとうございました。
- bunjii
- ベストアンサー率43% (3589/8249)
>数式バーは「1900/1/1 7:30:00」になってしまいます。 入力した値を自動的に日付の書式へ変更されています。 日付の起点は西暦1900年1月1日 0時0分0秒です。 時間として31時間30分を入力しても1日+7時間30分に換算した結果で日付で起点から7時間30分経過した日時として扱われています。 >なぜ30時間を超えるとおかしくなるのでしょうか? 30時間を超えたからではありません。 24時間以上で同じ結果になります。 日付の起点は何年何月を見ても1日であって0日はありません。 従って、1日未満の値は時間だけの値として日付が入りませんが24時は1日 0時0分0秒に等しいため日付に置き換わるものと思います。 >どちらも書式は「[h]:mm」にしています。 再確認してください。 h:mmになっていませんか? [h]:mmのようにhをカギ括弧で括られていれば時間として24時間以上でも日付に置き換わらないはずです。 数式バーには1900/1/1 7:30になっていてもセルの表示は31:30になるはずです。
お礼
ありがとうございました。
- lunarabi
- ベストアンサー率62% (10/16)
エクセルでの時間の表示ですが、 まず、「0:00:00」は、西暦では「1900/1/0 0:00:00」となります。 これが、起点となりますので、 >「21:30:00」と入力すると「21:30:00」のままなのですが・・・ これを、西暦になおすと数式バーは「1900/1/0 21:30:00」となっていると思います。 尚、書式が、「[h]:mm」なので「21:30:00」しか表示されません。 >「31:30:00」を入力すると表示は「31:30:00」になるのですが、 数式バーは「1900/1/1 7:30:00」になってしまいます。 これは、1日が24時間なので「31:30:00」と入力すると、 1日(24:00:00)と(7:30:00)なので 日付が1日進み「1900/1/1」となり、+「7:30:00」で 「1900/1/1 7:30:00」となります。
お礼
ありがとうございました。
- hatena1989
- ベストアンサー率87% (378/433)
それで正常です。 データとしては、日付/時刻型としてセルに格納されます。 それを書式で、無理やり時間表示に変換しているだけですので。 数式バーには格納されている生のデータが表示されているのです。
お礼
ありがとうございました。
お礼
ありがとうございました。