勤務時間管理のための関数を使って日報の総勤務時間を計算する方法

このQ&Aのポイント
  • 勤務時間を管理するために日報を作成している方に、出勤時間と退社時間を記入するだけで総勤務時間を表示してくれる関数の使い方をご紹介します。
  • 出勤時間が9:00で定時退社が18:00の場合、1日の総勤務時間は15分単位で表示されます。また、休憩時間や残業時間も正しく計算されます。
  • 計算結果はセルに表示されるため、日報作成の効率化にも役立ちます。ぜひこの関数を活用して効率的な勤務時間の管理を始めてみてください。
回答を見る
  • ベストアンサー

日報の時間計算を行う関数について

勤務時間を管理の日報を作成しています。以下の条件をつけて出勤時間と退社時間を記入するだけで1日の総勤務時間を表示してくれる関数をご教示お願いします。 ・9:00出勤で18:00定時退社で15分単位で表示 ・セル(開始)は9:00、(終了)に18:00以降の時間を手入力 ・セル(工数)に関数で総勤務時間を計算 ・9:00から18:00までに1時間15分の休憩をとるため、自動的に差し引いて計算 ・残業は18:15からカウントされるため、18:30以降残業して退社した場合は15分差し引いて計算 ・残業最終時間0:00までとして計算 ・セル(開始)、(終了)に9:00~0:00の15分単位の時間以外を入力はない前提とします ・遅刻、早退による変則時間の入力はない前提とします 【例】 (開始)9:00、(終了)18:00の時は(工数)に7.75 (開始)9:00、(終了)18:15の時は(工数)に7.75 (開始)9:00、(終了)18:30の時は(工数)に8 (開始)9:00、(終了)0:00の時は(工数)に13.5 よろしくお願いします。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

A1が開始、B1が終了の場合、こんな感じでいかがでしょうか。 =INT((B1-A1)*24*4)/4+(A1>B1)*23.75-1.25-0.25*(B1>=TIMEVALUE("18:15")) 15分単位の切捨てには通常はFLOOR関数を使用しますが、日を跨いだ時の処理まで考えると式が長くなりそうだったと個人的好みで使用しませんでした。

DINO-PIE
質問者

お礼

ありがとうございます。活用させてもらいます。

その他の回答 (3)

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.4

開始は必ず9:00のようですので、終了がB1だとしたら、 =IF(B1=VALUE("0:00"),13.5,IF(B1=VALUE("18:00"),7.75,7.75+(B1-VALUE("18:15"))*24)) でも良いですね。 もしB1が0:00だったら13.5、 そうじゃなかったら   もしB1が18:00だったら7.75、   そうじゃなかったらB1から18:15を引いて、それを7.75に足す という式です。 24を掛けているのは、Excelでは1日を1として扱っています。 1時間は1/24です。 1時間を1として扱うために、24を掛けています。

DINO-PIE
質問者

お礼

ありがとうございます。うまく表示できました。

  • layy
  • ベストアンサー率23% (292/1222)
回答No.3

この手は、開始と終了で工数は確定しますから、計算しなくてもIF文列挙でも2次元配列でもできます。結果を急ぐならそれでも可能です。 四則演算するには、基本的には時分単位をやめると解決。1時間15分を75分にする。表現戻す時は60分で割る、余りを出す。 時間計算に困ったのか、パターンをスッキリしたいのか、どうなんでしょう。 事例多数の要件ですからサイト探したても早い気がします。 エクセルで用意された関数はないのでは?。自分でつくることになります。

DINO-PIE
質問者

お礼

ありがとうございます。回答いただいた関数を使用します。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

一例です。 仮にA1に開始時間、B1に0:00は24:00と入力する事としています。  =IF(COUNT(A1:B1)=2,IF(B1>"18:00"*1,(B1-A1-"1:30")*24,(B1-A1-"1:15")*24),"") 因みにここまで条件設定出来ているのだから丸投げせず、ご質問者の不明点を記載した方が良いと思います。

DINO-PIE
質問者

お礼

丸投げながらも回答ありがとうございます。うまくいきました。

関連するQ&A

  • 日報の時間計算

    お世話になっております。 Windows 7 Access 2007 Private Sub 完了時間_AfterUpdate() Dim StartTime, EndTime, Kugiri, tuujou, Soukinmu, shinyakugiri, SinyaTime As Long tuujou = 8: '通常勤務時間 8時間 Kugiri = 5: '区切り時間 午前5時 shinyakugiri = 22: '深夜区切り 22時 '処理がわかりやすくするために時刻(m日)を数値(n時間)に変換 StartTime = Me.開始時間 * 24 EndTime = Me.完了時間 * 24 '完了時間が 0時以上 5時以下 の場合、24時間足す。 If EndTime >= 0 And EndTime <= Kugiri Then EndTime = EndTime + 24 End If '深夜計算 SinyaTime = EndTime - shinyakugiri - Me.休憩 If SinyaTime > 0 Then Me.深夜 = SinyaTime Else Me.深夜 = 0 End If '総勤務時間算出 Soukinmu = EndTime - StartTime - Me.休憩 '(Me.sinyaは前の処理で、深夜にかかっていない場合0なので、適切に計算される) Soukinmu = Soukinmu - Me.深夜 '総勤務時間が通常勤務時間以下の場合、 '残業時間は0、勤務時間は総勤務時間。 '総勤務時間が通常勤務時間より大きい場合、 '残業時間=総勤務時間-通常勤務時間 勤務時間=通常勤務時間 If Soukinmu <= tuujou Then Me.残業 = 0 Me.勤務時間 = Soukinmu Else Me.残業 = Soukinmu - tuujou Me.勤務時間 = tuujou End If '工数算出 'If EndTime <= 17 Then If Soukinmu <= tuujou Then 工数 = 勤務時間 / tuujou Me.勤務時間 = Soukinmu Else 工数 = tuujou / 8 End If End Sub このコーナーで教えていただいた日報の時間計算ですが、とてもうまく計算できました。ですが、問題発生したため、修正が必要ですけどどいう風に変更すればいいか分からなくてまた質問させていただきます。 言葉でうまく説明出来ないので、例を挙げます。 2011/12/09 Aさんの場合 工事番号 日付 名前 開始   終了   勤務時間 残業 0001   12/9 A   8:00 17:00   8 0002   12/9 A   17:00  20:00         3 そんな感じで日報に表示させたいですが現在の日報はこんな感じです。 工事番号 日付 社員ID 名前 開始   終了   勤務時間 残業 0001   12/9  1    A   8:00 17:00   8 0002   12/9  1    A   17:00  20:00  3 今のコードなら修正できるでしょうか? 素人の考えですが、社員IDと日付が同じなら勤務時間の集計で残業時間になるということですがどこに何を書けば全然わかなかったです。 どなたか教えていただけませんか? よろしくお願い致します。       

  • エクセルで時間外を求める関数

    エクセルで勤務管理表を作成しています。 早出・遅刻・残業の合計時間を関数を使って求めるには どうしたら良いでしょうか? A行には出勤時間 C行には退社時間入力 出勤時間8:00、退社時間17:00が定時です。 8時前に出社した場合15分単位で早出割り増しがつきます(7:28出社なら0.5/7:47出社の早出はゼロ) 8時1分を過ぎると8:30出社とみなされます(0.5の遅刻) 17時15分を超えると15分単位で残業がつきます(0.25の残業) 最終的にE行に早出と残業の合計時間を0.25の単位で入力したいのですが、関数を教えて下さい。

  • 勤務時間の計算

    エクセルファイルにて勤務時間(分単位)の計算をしたいと思いますが上手く出来ません。 条件としては 1.勤務時間は交替での24時間勤務 2.分単位 3.0時を境にして土日祝日は祝日加算あり。 4.22時から5時が深夜勤務加算あり。 となります。 よって、分単位で開始時間と終了時間を入力したら、その間の時間を上記「3」「4」に照らし合わせて別々に時間を計算させたい。 以上、よろしくお願いします。

  • EXCELで関数を使って残業時間の計算がしたいのですが・・

    EXCELを使って残業時間の計算したいと思っているのですが、関数にあまり詳しくないのでアドバイスお願い致します。 (A1)出社、(B1)退社時間は30分単位で自分で入力します。 D1に10時間以降残業にし、残業に満たない場合は未表示で30分単位は0.5と表示させようと思っています。 今現在 A1=出勤時間 8:00 B1=退社時間 20:00 C1=労働時間 12:00   関数  =IF(A1="","",B1-A1) D1=残業時間 =IF(C1="","",IF(C1>"10:00",(C1-"10:00")*24,"")) と、いう感じにやってみましたが、D1の計算がうまくいきません。よくわからないのですが、シリアル値というのが関係してるのでしょうか?宜しくお願い致します。

  • Access で作業日報

    いつもお世話になります。 OS:Windows 7 Access 2007 このコーナーで作業日報の時間計算について質問させていただきました。 教えていただいたのは、クエリで関数に入れて、フォームを作成すれば、うまく時間が表示されましたが新規入力ができませんでした。 今回はVBAでした方がいけるのではないでしょうかと思いましたがコードの書き方が分からなくて助けてもらいたいです。 フォームに名前・開始時間・完了時間・休憩時間・勤務時間・残業時間・工数とそれぞれテキストボックスがあります。 勤務時間=開始時間-完了時間        8:00  -  17:00 =8時間 休憩時間 = 12時~13時 残業時間=17:00以降 工数は8時間=1工=勤務時間 開始時間と完了時間を入力したら、勤務時間は8時間で残りは残業時間を自動的計算できようにしたいです。 よろしくお願い致します。

  • 自動で休憩時間と時間外の時間を計算される

    おはようございます 以前に出勤簿の残業時間や深夜残業、勤務時間を自動で計算される計算を見たのですが、 今回は、「自動で休憩時間と時間外の時間を計算される」というものを探しています 以下はhishishis様の同じ文章をコピペで貼り付けします(ただし、内容は一部変更あります) 各項目の定義は以下のとおりです。なお、時間単位は30分です。計算単位は10分刻み、15分刻み、それぞれの分刻みに対応できるようお願い致します。 ・出社時間 ・・・ 定時は9:00。ただし、深夜作業などもあり、24時間のパターンが考えられます。 ・退社時間 ・・・ 定時は18:00。こちらも、24時間のパターンが考えられます。 ・勤務時間 ・・・ 休憩時間を除いた、残業・深夜残業を含んだトータルの時間 ・残業時間 ・・・ 18:00~22:00 ・深夜残業時間 ・・・ 22:00~5:00 休憩時間が、一般的な12:00~13:00だけであれば問題ないのですが、 実は他にも、以下の時間を休憩時間として考える必要があり、ここがネックになっています。 ★休憩時間 12:00~13:00 休憩時間は個々で随時入力されます(別シートにて) 例)実際の出勤時間が9:00以前でも出勤時間セルには9:00と表示 退社時間が21:00の場合 ・勤務時間 21-9=12 12-1.5(休憩時間(上記でも表記しましたが、休憩時間は10分であったり、5分、15分、20分、30分の可能性あり))=10.5 ※12:00~13:00、19:30~20:00が休憩時間となるため ・残業時間 21-18=3 3-0.5=2.5 ※19:30~20:00が休憩時間のため、残業とはならない なお、基本就業時間、休憩時間、計算単位(分)は別シートに記載するものとします。 このような条件で、良い方法はないでしょうか。 複雑な案件で申し訳ありませんが、ヒントでも結構です。教えて下さい。

  • タイムカードの残業時間計算で、こんな残業時間計算に対応したものはありますか?

    タイムカードの計算について、 私の会社では、勤務時間内に出勤・退社した場合、残業時間からマイナスする、という形態をとっています。 従業員全員の勤務時間を一律全く同じにすることができない仕事のためです。 弥生給与を試用版で試してみましたが、 タイムカードを入力するとき、勤務時間外の残業時間の計算はしてくれますが、勤務時間内の出勤・退社した場合は残業時間のマイナスとしては計算はしてくれません。 勤務時間内に出勤・退社した場合、残業時間のマイナスとして計算してくれる給与計算ソフト、ないしエクセルのフォームを知っている方がおりましたら、是非お教えください。 よろしくお願い申し上げます。

  • エクセル関数で時間の計算方法を教えて下さい。

    エクセルの関数に詳しい方、是非助けて下さい。 労働時間計算をエクセル関数を使って簡単に出来ないものかと考えてます。 一般就業時間は9:30から18:00までとして 1つ目 出勤9:30から退社18:00うちお昼休み1時間=?時間 2つ目 18:00以降の残業がある場合、18:30を過ぎた場合は、=全て30分       18:30を過ぎない18:20等の場合は=0:20を表示する。 3つ目 出勤9:30からで退社20:00の場合は、=一つ目の?時間-二つ目の30分-9:30から20:00までの時間 以上の内容を セルA1に出勤時間 セルB1に退社時間 セルC1に1つめの値 セルD1に2つ目の値 セルE1に3つ目の値を出したいと思っています。 色々試したのですがうまくいかず大変困っています。 宜しくお願い致します。

  • エクセルを使った残業時間の計算方法を教えてください

    エクセルを使って、就業開始時間と就業終了時間と休憩時間を入力すれば、自動的に残業時間(契約外時間)と契約内時間が表示されるようにしたいのですが、どういう計算式を使えばいいのかがわかりません。 添付した図の黄色セルの部分です。 定時が9時~17時半、休憩が12~13時の1時間です。 休憩を除いた勤務時間が7時間半を超えた分は残業としてカウントされます。 計算は15分単位です。 開始時刻が9時前になったり、休憩時間が増えたり、15分以下で繰り上げ/繰り下げ計算をしたりというような複雑になることはありません。 F3に7:30、F4に0:30、G6に7:30、G4に0:00と自動で表示させたいのですが、どうすればいいでしょうか。

  • 勤怠時間の計算について

    勤怠時間の計算についてお願いします。 C2セルに出勤時間、D2セルに昼休み時間、E2セルに退勤時間を入力します。 退勤時間を 30分単位で丸めたいのですが、17:20が退勤時間の基準で それ以降 30分単位で残業がつきます。 退勤時間隣のセルF2セルにE2セルに入れた退勤時間を17:25が17:20と出るようにするには どのようにしたらいいのでしょうか? 17:20を過ぎて17:49までは17:20 17:50になると18:19までは17:50 18:20になると18:49までは18:20 その後は30分単位で続きます どのような関数を、E列に入れたらいいでしょうか? どうぞ宜しくお願いいたします。

専門家に質問してみよう