• 締切済み

タイムカードの計算をしたい

こんにちは. 一通り質問を見たのですが,よくわから買ったので質問します. EXCELでタイムカードを作る事をまかされましたが,計算式の組み立て方などがまったくわかりません. 入力項目  出勤時間,退勤時間  退勤時間は最大32時(翌日の8時まで) 計算したい項目  1日の作業時間   通常時間[09:00~12:00,13:00~17:30]  残業時間[05:00~08:00,18:00~22:00] 深夜残業時間帯[00:00~03:00,03:03~05:00,23:00~24:00] ようは各項目ごとに時間を算出して足し込めばいいのだと思うのですが,24時を超えた場合計算で混乱しています. できれば,計算式と考え方を教えていただきたいのですが. よろしくお願いします.

みんなの回答

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.2

自分は親切か不親切かの両極端です。 今回は不親切な回答をしてみます。 A1セルに開始日付、B1セルに開始時間 A2セルに終了日付、B2セルに終了時間 であれば、 朝残業時間 =(A1+"8:00")-MIN(A1+"8:00",A1+B1) 定時終業時間 =MIN(A1+"12:00",MAX(A1+"9:00",A2+B2))-MAX(A1+"9:00",A1+B1) + MIN((A1+"17:30",MAX(A1+"13:00",A2+B2))-MAX(A1+"13:00",A1+B1) 夜残業時間 =MIN(A1+"22:00",MAX(A1+"18:00",A2+B2))-MAX(A1+"18:00",A1,B1) 深夜業時間 =MIN(A1+1+"3:00",MAX(A1+23:00",A2+B2))-MAX(A1+"23:00",A1+B1) + MIN(A1+1+"5:00",MAX(A1+1+"3:03",A2+B2))-MAX(A1+1+"3:03",A1+B1) 翌早朝残業時間 =MIN(A1+1+"8:00",MAX(A1+1+"5:00",A2+B2))-MAX(A1+1+"5:00",A1+B1) 以上、不親切モードですので解説はありません。 (親切モードでやると解説書の1章くらいの文章が書けるくらいです) 当初の日付を跨いだ場合の計算方法の解説は#1で行っていますので、自身で検証してみてください。 この計算式の中でもふんだんに使用しています。読み取ってください。 (ありゃ…親切モードも混じった)

ikenshi
質問者

お礼

説明だけで面倒だったのですね. お手数をかけました. 開始時間と終了時間を足して,そこから引くあたりがきもなんでしょうね. ありがとうございました.

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

日付を跨ぐ場合は日付を含めて計算すると良いです  ="09/11/29 1:10:30" - "09/11/28 23:00:00" または  = 1 + "1:10:30" - "23:00:00" これでOK 時間や日付はシリアル値という数値なんですよ このシリアル値は一日で1ずつカウントされるんです ですので12時間なら0.5になります 二つ目の数式で時間に1を足すのはこのシリアル値の考え方に基づいています あとはいろいろな方法がありますので、いろいろと調べてみてください IF関数や MAX関数、MIN関数を併用したりして関数を組み立ててみましょう

ikenshi
質問者

補足

回答ありがとうございます. 今考えているのは,各作業時間帯別にセルをもうけて,そこに計算式を入れようと思っています. ど素人なので関数の組み合わせのイメージがわかないのですが, 例えば5:00-32:00(朝8時)まで仕事した場合の,5:00-8:00までの所の計算式はどのようになるのでしょうか? この場合は,朝残業と夜残業で6時間と表示したいのです. すみませんがもう少し噛み砕いておしえていただけないでしょうか? よろしくお願いします.