みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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に表示するのが最終目的です。

どなたかお知恵を貸していただけませんでしょうか?
よろしくお願いします。

投稿日時 - 2009-07-11 17:39:55

QNo.5117139

困ってます

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

>表示させると「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 になります。
それに時間を加算すると、きちんと計算して、日付と時刻が計算されるわけです。
エクセルの親切な仕組みなので活用しましょう。

投稿日時 - 2009-07-11 19:39:10

お礼

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

投稿日時 - 2009-07-11 23:20:12

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

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

投稿日時 - 2009-07-11 21:18:57

お礼

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

投稿日時 - 2009-07-11 23:24:53

ANo.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")

投稿日時 - 2009-07-11 18:50:56

お礼

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

投稿日時 - 2009-07-11 23:21:37

ANo.1

こんにちは!
単純に
C1セル =A1+B1 (セルの書式設定の表示形式はユーザー定義から
yyyy/m/d h:mm(何もしなくても多分この表示形式になると思います)
ではダメですか?

そして、時間経過を表示させたいセルは
=D1-C1として表示形式を h:mm で希望に近い形になると思います。

以上、参考になれば幸いです。m(__)m

投稿日時 - 2009-07-11 17:54:34

お礼

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

投稿日時 - 2009-07-11 23:23:13

あなたにオススメの質問