• ベストアンサー

睡眠時間の計算

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

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

  • ベストアンサー
回答No.1

 A1に就寝時刻、B1に起床時刻を入力し、C1に睡眠時間を計算する場合で、 考えてみます。  基本的には、B1からA1を引けばよいのですが、日付が異なる場合は、 答えがマイナスになってしまいます。この場合は、日付の補正として、 24時間を足せばいいでしょう。  ただし、Excelの時間は、24時間=1日を、「1」と勘定しますので、この点に注意します。  したがって、C1に入る式は、  =IF(A1<B1,B1-A1,B1-A1+1)  となります。  さらに、セルの書式設定で、C1セルを時刻形式に変えておいてください。

その他の回答 (3)

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

24時間以上寝ることはないとするなら =IF(就寝時間>起床時間,1,0)+起床時間-就寝時間 で計算できませんか? 省略して =(就寝時間>起床時間)+起床時間-就寝時間 でも可

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

起床時間が、質問例では日を超えるからおかしくなるわけです。 ところがデータの上では、日の情報は入っていないのです。 #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を使うより分かりやすいと思ういも入るかもしれません。

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.2

就寝時間と起床時間を日付からちゃんと入力すれば、引き算で問題ありませんよ。 例えば、    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)) といった式を入れてみてください。

関連するQ&A

専門家に質問してみよう