• 締切済み

エクセルで時間計算

エクセルで時間計算をしているのですが A1セルに開始時刻  B1セルに終了時刻  C1セルは作業時間   9:00         4:00           7:00 このような表を作っています 「C1」には(B1+12:00)マイナス「A1」と数式があるのですが 「B1」に入る時刻が午後でなく午前11:00だと 「C1」の数式のままでは (11:00+12:00)- 9:00 で 14:00 となってしまいます 「B1」には24時間形式で午後4:00を16:00と入力すればよいのですが 24時間形式を使わず9:00マイナス4:00を正しく計算するには どのような数式にすればよいのでしょうか IF文を使うのかなとも思うのですが 見当がつきません。宜しくお願いいたします。

みんなの回答

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

16時を4時と入力するが為に、非常に苦労とか時間計算の間違いの危険性が大きい道を採るのはむだだなあと思う。質問者の立場では例えば上司に結えないのでしょうか。SEなら改善事項に挙げるべきでしょう。 ーー 質問と関連して 下記表を作ってみました。参考に。 こういう表を作って、十分テストしないと(仕事、給与=お金がらみのことに使うには)ダメでしょう。  仕事で使う怖さ  式が正しいかテストの方法論。(★1) ==== 本質問の具体論 ルール(質問者の場合とあっているかな?) 0時ーーーーーー>夜中12時の意味でだけ使う。開始だけに使う。 12時ーーーーー>昼12時の意味で使う。終了だけに使う。 ー すなわち午前中に出勤し、午前中に帰る人は居ない。 また午後に出勤の人は居ない 0時を超えて翌朝に帰る人は居ない ものとする。 開始は夜0時00分から昼11時59分までしかないものとする。 終了は昼0時00分から夜中11時59分までとする。 ーー 開始は縦列にG2:G14に入れ、手入力かオートフィルで。 終了は横行の第1行F1:S1に入れ、F1:S1は手入力かオートフィルで。 == ==  12:00 1:00 2:00 3:00 4:00 5:00 6:00 7:00 8:00 9:00 10:00 11:00 夜 0:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 21:00 22:00 23:00 夜 1:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 21:00 22:00 夜 2:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 21:00 夜 3:00 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 夜 4:00 8:00 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 夜 5:00 7:00 8:00 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 朝 6:00 6:00 7:00 8:00 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 朝 7:00 5:00 6:00 7:00 8:00 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 朝 8:00 4:00 5:00 6:00 7:00 8:00 9:00 10:00 11:00 12:00 13:00 14:00 15:00 朝 9:00 3:00 4:00 5:00 6:00 7:00 8:00 9:00 10:00 11:00 12:00 13:00 14:00 朝 10:00 2:00 3:00 4:00 5:00 6:00 7:00 8:00 9:00 10:00 11:00 12:00 13:00 朝 11:00 1:00 2:00 3:00 4:00 5:00 6:00 7:00 8:00 9:00 10:00 11:00 12:00 朝 12:00 0:00 1:00 2:00 3:00 4:00 5:00 6:00 7:00 8:00 9:00 10:00 11:00 ーーーーーー 式はH2セルに =IF(H$1>="12:00"*1,H$1-$G2,H$1+"12:00"*1-$G2) と入れて縦横に式を複写 ーーー 30分ずらした表として F23:S36  に == == 12:30 1:30 2:30 3:30 4:30 5:30 6:30 7:30 8:30 9:30 10:30 11:30 12:30 夜 0:30 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 21:00 22:00 23:00 12:00 夜 1:30 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 21:00 22:00 11:00 夜 2:30 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 21:00 10:00 夜 3:30 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 9:00 夜 4:30 8:00 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 8:00 夜 5:30 7:00 8:00 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 7:00 朝 6:30 6:00 7:00 8:00 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 6:00 朝 7:30 5:00 6:00 7:00 8:00 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 5:00 朝 8:30 4:00 5:00 6:00 7:00 8:00 9:00 10:00 11:00 12:00 13:00 14:00 15:00 4:00 朝 9:30 3:00 4:00 5:00 6:00 7:00 8:00 9:00 10:00 11:00 12:00 13:00 14:00 3:00 朝 10:30 2:00 3:00 4:00 5:00 6:00 7:00 8:00 9:00 10:00 11:00 12:00 13:00 2:00 朝 11:30 1:00 2:00 3:00 4:00 5:00 6:00 7:00 8:00 9:00 10:00 11:00 12:00 1:00 朝 12:30 0:00 1:00 2:00 3:00 4:00 5:00 6:00 7:00 8:00 9:00 10:00 11:00 0:00 G列と第23行において開始時刻と終了時刻とを(端数(分)の付いた 時刻を入れてみて、表の縦横交点に正しい時間・分(フン)数が出るか、周りと比較して確認してみてください。 == もし上記の表が正しいと思ったら =IF(H$1>="12:00"*1,H$1-$G2,H$1+"12:00"*1-$G2) $とりたてよこの関係をはずし =IF(B1>="12:00"*1,B1-A1,B1+"12:00"*1-A1) (★2) でどうでしょう。 ーー ★1、★2が私の主張です。

JOX
質問者

お礼

>16時を4時と入力するが為に、非常に苦労とか時間計算の間違いの危険性が大きい道を採るのはむだだなあと思う。 なんだかそのように感じてきました。 >すなわち午前中に出勤し、午前中に帰る人は居ない。 >また午後に出勤の人は居ない 私のところでは居るのです。 色々なパターンがあるので悩んでいるのですが・・・・ 時間の表を作っていただきありがとうございます。 すごいです。こんな考え方があるのですね 色々テストしてみたいです。

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

>「B1」に入る時刻が午後でなく午前11:00だと 11:00 が午前の11:00 なのか 午後の11:00(23:00)なのかどうやって判断するのでしょうか。 A1の入力もおなじですが、 24時間形式で入力しないと正確には出来ないです。 出来れば 日付 時刻 を入れて 表示を時刻にしておくと 日付をまたがった場合の時間も計算できます。 今日の日付を入れるときは Ctrl + +キー 今の 時刻を入れるときは Ctrl + *キー で入力できます。

JOX
質問者

お礼

>11:00 が午前の11:00 なのか 午後の11:00(23:00)なのかどうや >って判断するのでしょうか。 そうなんですよね 結局、時刻を入力するのは人間でそれが午前なのか 午後なのかは判断不能なんですね シートの方で計算でるように体裁を整えるしかないんですよね

  • Masa2072
  • ベストアンサー率51% (94/182)
回答No.2

ANo.1さんの考え方に賛成なのですが B1+12:00やB1+12と言う計算はちょっとどうか? B1+1/2もしくは、B1+TIME(12,0,0)ではないでしょうか? 老婆心ながら気になったもので・・

JOX
質問者

お礼

補足説明ありがとうございます 私のシートでは別のセルに(12:00)と入力して参照するように しています

  • ozunu
  • ベストアンサー率14% (240/1644)
回答No.1

質問の条件だけなら、 =IF(B1>A1,B1-A1,B1+12-A1) なお、答えは一つだけではないと思います。

JOX
質問者

補足

なるほど こうやって数式をみると案外簡単ですね ここで疑問なんですが 朝9:00に出勤して夜9:50分まで勤務した場合は この数式だと 50分しか労働しなかったことになると思います。 どうしても24時間形式で表示せずに計算することは無理なのでしょうか