• ベストアンサー

Excelの時間計算について

日付と時間が入力されたセルがあるのですが、 そのセル内容を合体させて別のセルに表示しようと思っています。 例)A1に日付「2009/07/11」、B1に時間「15:00」と入力されていた   場合に C1に「2009/07/11 15:00」を表示させ、実時間として   認識させたい。D1に表示された現在の時刻「=NOW()」からの   経過時間をE1に表示させるのが目的。 表示だけでしたらC1に 「=TEXT(A1,"yyyy/mm/dd")&" "&TEXT(B1,"hh:mm")」 と入力すれば解決するのですが、 時間として認識させるにはどのようにすればよいでしょうか? 因みにB1のセルの時刻は書式設定を「yyyy/mm/dd hh:mm」として 表示させると「1900/01/00 15:00」となります。 D1に表示された現在の時間「=NOW()」からどれだけ時間が 経過しているかを計算させ、E1に表示するのが最終目的です。 どなたかお知恵を貸していただけませんでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

>表示させると「1900/01/00 15:00」となります。 そのセルの表示形式を数値にしてみてください。 0.625と表示されます。これは15/24の値です。 エクセルで日付の表示は 数値の 1 を1日(24時間)で計算されています。 ちなみに空いているセルに 数値100 と入れます。 表示形式を日付、時刻で表示させると 1900/4/9/ 0:00 となりました。 これは、1900年1月1日を 1と数えてちょうど100日目の日にちです。 数値で100.5といれて同様にしてみます。 1900/4/9/ 12:00 と表示されるはずです。 0.5と小数点以下の数値は時間と分になります。1日が24時間ですので 0.5は 12:00 ちょうどになるわけです。 ですので、逆に 2007/7/11 と今日の日付を入れて 表示形式を数値にすると 40005 になります。 それに時間を加算すると、きちんと計算して、日付と時刻が計算されるわけです。 エクセルの親切な仕組みなので活用しましょう。

s-ringo
質問者

お礼

無事解決しました! ご丁寧にありがとうございました。

その他の回答 (3)

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

#3でも説明されてますが、こんな質問が出るのは、エクセル特有の 日付シリアル値とそれにつながる時刻シリアル値の仕組み(理屈)を知らないからです。理論的に言えば、今までそれらを知らずにエクセルの日付や時刻を良く使ってきたなともいえます。経過日数などの加算減算が単純なる加算等で出来ることが、MSがこの方式を採用した最大理由ではないでしょうか。 日付ー現実の1日(24時間)が1 時刻ー1日24時間が1 とあらわすことにしたわけです。 それで両者がつながるのです。だから両者を足せば仕舞いです。 我々は表面では関係ないが その代わり日付シリアル値が例えば39321の日は暦では西暦では何日、和暦では何日で何曜日などは、エクセルで大変な計算をしていると思います。 ーー それらは日付シリアル値を前提にしています。 エクセルの日・時刻付関係の利用は日付シリアル値を前提にしています。 日付の表示形式の多様さも日付シリアル値の上に作られています。

s-ringo
質問者

お礼

シリアル値の仕組みがわかりました。 ご回答ありがとうございました。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

C1=SUM(A1:B1) セルの書式設定で日付の 2001:3:14 13:30 を選択 E1=NOW() D1=MAX(E1-C1,0) セルの書式設定をユーザー定義で [h]:mm と入力 ※[h]:mm は24時間を超える時間を表示になります。 もし現在時刻より後の日付の時、マイナス表示させる場合は D1=IF(E1>C1,"+","-")&TEXT(ABS(E1-C1),"[h]:mm") ※日付・時刻はマイナス表示できないため書式付文字列に負号を付けてます。 追加:もし差を時間でなく日数表示の場合の方法 31日までならセルの書式設定をユーザー定義で d h:mm で可能です。 それを過ぎても表示とマイナス表示なら数式で D1=TEXT(E1-C1,"+0 ;-0 ")&TEXT(ABS(E1-C1),"h:mm")

s-ringo
質問者

お礼

参考にさせていただきました。 ご丁寧にありがとうございました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! 単純に C1セル =A1+B1 (セルの書式設定の表示形式はユーザー定義から yyyy/m/d h:mm(何もしなくても多分この表示形式になると思います) ではダメですか? そして、時間経過を表示させたいセルは =D1-C1として表示形式を h:mm で希望に近い形になると思います。 以上、参考になれば幸いです。m(__)m

s-ringo
質問者

お礼

ご回答ありがとうございます。 参考とさせていただきました。

関連するQ&A