プロが教える店舗&オフィスのセキュリティ対策術

エクセル2000です。
起床時間と就寝時間を入力して、睡眠時間を算出する方法がわかりません。
具体的に言うと、あるセルに就寝時間(23:30)、あるセルに起床時間(6:00)と入力した場合、6:30とかえしてくれる方法を考えています。
ただ、睡眠時間が午前0時をまわった場合とかを考慮すると、単に引くだけでもだめだなぁと。
で、詳しい方いらっしゃいましたら、ご回答お願いします。

A 回答 (4件)

 A1に就寝時刻、B1に起床時刻を入力し、C1に睡眠時間を計算する場合で、


考えてみます。

 基本的には、B1からA1を引けばよいのですが、日付が異なる場合は、
答えがマイナスになってしまいます。この場合は、日付の補正として、
24時間を足せばいいでしょう。
 ただし、Excelの時間は、24時間=1日を、「1」と勘定しますので、この点に注意します。
 したがって、C1に入る式は、

 =IF(A1<B1,B1-A1,B1-A1+1)

 となります。
 さらに、セルの書式設定で、C1セルを時刻形式に変えておいてください。
    • good
    • 0

就寝時間と起床時間を日付からちゃんと入力すれば、引き算で問題ありませんよ。


例えば、
   A        B        C
1 就寝時間     起床時間    睡眠時間
2 2004/9/20 23:30  2004/9/21 6:00 =B2-A2 
3 2004/9/22 0:30  2004/9/22 6:00 =B3-A3
の様に入力します。
表示形式は時刻にして日付を表示しないようにすれば良いのです。
[書式]→[セル]→[ユーザー設定]で
[h]:mm;@
にすると良いでしょう。

もし日付を入れるのが面倒であれば、
C2セルに
=IF(MOD(A2,1)<MOD(B2,1),MOD(B2,1)-MOD(A2,1),1+MOD(B2,1)-MOD(A2,1))
といった式を入れてみてください。
    • good
    • 0

起床時間が、質問例では日を超えるからおかしくなるわけです。


ところがデータの上では、日の情報は入っていないのです。
#2でご指摘のように日まで含めて入力すれば、引き算で何ら問題ないわけです。というのもエクセルは日+時刻を一体で捉えていて、
整数部=日 AND 小数部=時刻の数値で日+時刻を表しているからです。
例えば38250.5の38250は2004/9/20日を0.5は12時(=24*0.5)を表しているからです。
さて、日の入力がない場合は、人間が付加情報を補ってやらないといけません。
意味は6:00とかが、翌日を仮定していると言うことです。翌々日の6:00まで寝ているケースがないと言う前提になっています。しかし別のケースでは翌々日の6:00を言うこともあり得ます。
出発して帰着する時間などです。その場合は日数もデータとして持たねば正しく計算出来ないことは直ぐ判ります。
翌日までしか寝ないと暗黙の仮定がある場合では
=IF(B2<"24:00",B2+"24:00"-A2)
のように、翌日の1日24時間を足す(進める)ことを補ってやる必要があります。#1のご解答と内容は同じなんですが、この様に別表現も可能です。時刻を””で囲むのがミソです。やや1を使うより分かりやすいと思ういも入るかもしれません。
    • good
    • 0

24時間以上寝ることはないとするなら


=IF(就寝時間>起床時間,1,0)+起床時間-就寝時間
で計算できませんか?
省略して
=(就寝時間>起床時間)+起床時間-就寝時間
でも可
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!