【エクセル】休息時間の計算方法

このQ&Aのポイント
  • エクセルで休息時間の計算方法について困っています。前日の終業時刻と当日の始業時刻がどちらも入力されていない場合は「休」と表示し、前日の終業時刻が空欄で当日の始業時刻に値が入力されている場合は24時間+当日始業時刻までの時間を計算し、当日の始業時刻が空欄で前日の終業時刻に値が入力されている場合は24時間+前日終業時刻からの時間を計算します。前日の終業時刻と当日の始業時刻の両方が入力されている場合は当日の始業時刻から前日の終業時刻を引いた時間を計算します。
  • 現在は暫定的に2)か3)に該当する場合は「24時間以上」と表示していますが、正しい計算方法がわからず困っています。
  • Excelのセルに以下の計算式を入れています。 =IF(AND($D2="",$C3=""),"休",IF(OR($D2="",$C3=""),"24時間以上",$C3-$D2))
回答を見る
  • ベストアンサー

【エクセル】休息時間の計算

休息時間の計算をしていて以下のようなものを計算したいのですが、 その最終目標の計算式に到達することができません。 参考に画像を添付いたします。ご教授ください。 -------------------------------------------- 表示したいのは「休息時間」の部分です。 1)前日の終業時刻、当日の始業時刻の両方が空欄の場合 →「休」と表示 2)前日の終業時刻が空欄で当日の始業時刻に値が入力されてる場合 →24時間+(当日0:00から当日始業時刻までの時間) の時間 3)当日の始業時刻が空欄で前日の終業時刻に値が入力されてる場合 →24時間+(前日終業時刻から当日0:00までの時間) の時間 4)前日の終業時刻、当日の始業時刻の両方とも値が入力されている場合 →(当日の始業時刻)-(前日の終業時刻)の時間 2)と3)をどうしたら良いかわからないので、 現在暫定的に2)か3)に該当する場合は「24時間以上」と表示するようにしており、 例えばセルE3には以下のような計算式を入れております。 =IF(AND($D2="",$C3=""),"休",IF(OR($D2="",$C3=""),"24時間以上",$C3-$D2)) 以上 宜しく御願い申し上げます。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.4

>前日出勤が無いので3月3日はまるまる休み扱いとなり、 >23:59迄前日の休息時間とカウントされている為、 >ここは3月4日0:00から17:00迄の時間を表示させたい。 だとすると,また辻褄が合わなくなっています。 3/8についてですが,3/7が空白-空白で本来の意味で「休」になっており,同じように「(3/7の)23:59まで全日の休息時間とカウントされている」ため,3/8は同様に0時~始業時までのカウントで良くなります。 つまり元のご相談の状況提示で 「2)前日の終業時刻が空欄で当日の始業時刻に値が入力されてる場合  →24時間+(当日0:00から当日始業時刻までの時間) の時間」 の部分は全て,24時間を足さずに「0時~始業時刻まで」だけの計算で良いハズです。 その前提で添付図は E3: =IF(C3="",IF(D2<=A3-"8:0","休",A3-D2+1),C3-IF(D2="",A3,D2))

galaxy_173
質問者

お礼

またまたご回答くださり、本当に感謝いたします。 そして、再度のご指摘ありがとうございます。 いただいたこの回答とご指摘いただいた内容を読み、もう一度考え直してみました。 そしてご指摘を踏まえたうえでkeithinさんのご回答を参考にしながら 以下のような式を当てはめたところ、恐らく正しく表示したかったはずの形になったように思います。 E3: =IF(C3="",IF(D2<=A3-"8:0","休",A3-D2+1),C3-IF(D2="",A3,D2)+IF(C4="",IF(D3<A4,A4-D3))) これで辻褄も合うようになったと思うのですが、どうでしょうか? 何度も続いて申し訳ないので、お時間がある時にご覧いただければ幸いです。

galaxy_173
質問者

補足

お礼で補足内容をつけてしまいました。すみません。 補足入力ですべきでした。 ちなみに私がお礼部分に記載した式(keithinさんの式につけたした部分)は 終業時刻が翌日0:00を超えない場合、終業時刻から翌日0:00迄の時刻を加えたものにしたつもりです。

その他の回答 (3)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

3/4の終業のように翌日にまたいでいる場合,3/5の「当日ゼロ時との差」は「-1時間」なので少なくとも「24時間以上」ではなくなります。 それに伴い「当日」を確定するため(特にC列にデータが無い場合),A列にきちんと年/月/日形式で日付が記入してあるものとします。 そういう前提でご質問に書かれているとおりに計算すると E3: =CHOOSE(COUNT(D2,C3)+1,"休",MOD(C3-D2,1)+(A3>D2),C3-D2) のようになります。 E列はセルの書式設定の表示形式のユーザー定義で [h]:mm と設定します。 #1日休みを挟むと24時間がダブルカウントされるような気がしてなりませんが。

galaxy_173
質問者

補足

回答ありがとうございます。 >1日休みを挟むと24時間がダブルカウントされるような気がしてなりませんが。 本当ですね!大変すみません。 そうなるとそもそも質問がおかしな状態だということに気づきました。 添付画像のエクセルに実際式を当て込むと実際大きなミスが自分にあったことがわかりました。 質問を補足・修正させてください・・・; 休息時間は24時間+8時間以上で「休」と見なされるのでそのように表示させたいのです。 ですが、そういう計算ができるかも、という事すら頭に閃かなかったので最初の質問では 時間をそのまま表示させたい、と申し上げておりました。 画像が添付できないので、見苦しいですがテキスト表示いたします。 A C           D          E 1    日付      始業時刻         終業時刻      休息時間 2    3月1日    2011/3/1 8:00    2011/3/1 17:00   15時間00分 3    3月2日    2011/3/2 6:00    2011/3/2 13:00   13時間00分 4    3月3日                             35時間00分 5    3月4日    2011/3/4 17:00    2011/3/5 1:00   41時間00分 6    3月5日                             23時間00分 7    3月6日                               休 8    3月7日                               休 9    3月8日    2011/3/8 8:00    2011/3/8 16:00   32時間00分 先ほどご回答くださった計算式を当てはめましたら 確かに、この場合ですとE5の時間がかぶってしまっておりおかしかったです。 ■本来はE4のセルは24時間+8時間=34時間以上なのでE7、E8同様「休」と表示させたいです。 ■E5は、私が申し上げてた質問では時間が被ってしまっておりますが、 前日出勤が無いので3月3日はまるまる休み扱いとなり、23:59迄前日の休息時間とカウントされている為、 ここは3月4日0:00から17:00迄の時間を表示させたい。 これが正しく表示させたい内容です。 せっかくお時間を割いてご回答くださったのに失礼いたしました。

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.2

3)の計算式ですが =2-$D2-INT($D2)⇒=2-($D2-INT($D2)) $D2-INT($D2)を先に計算する形にしないと負の日時となり表示出来ませんでした 校正いたします

galaxy_173
質問者

お礼

早速の回答ありがとうございます。 keithin さんがご指摘くださったことで自分の質問にそもそも大きな欠陥があったことに気づきました。 web2525さんの回答も後学のために後からじっくり復習しようと思います。

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

24時間以上の表示の場合セルの書式設定で[h]のように括弧で囲います (この括弧の名称は何だっけ?) 計算式は 2)前日の終業時刻が空欄で当日の始業時刻に値が入力されてる場合 →24時間+(当日0:00から当日始業時刻までの時間) の時間 の場合は =$C3-INT($C3)+1 3)当日の始業時刻が空欄で前日の終業時刻に値が入力されてる場合 →24時間+(前日終業時刻から当日0:00までの時間) の時間 の場合は =2-$D2-INT($D2) ※共にE3セルに計算式が有る場合 セルの表示形式を [h]"時間"mm"分" に設定

関連するQ&A

  • 時間の合計計算ができません。

    給料計算の表なんですが、  A1  B1      C1     D1     E1      F1 日付 始業時刻 終業時刻 勤務時間 休憩時間 実働時間 と項目をつくりました。 終業時刻ー始業時刻=勤務時間とし、休憩時間は1時間と決まっているので、日付を入れた時点で自動入力されるように=IF(A1<>"","1:00","")といれました。すべてうまくいったと思ったんですが、E1のタテの合計が空白になってしまいます。 どう解消したらいいでしょうか? いい方法をご教授ください。お願いします。

  • エクセルで時間入力10:30の:コロン省略したい。

    始業と終業の時間を入力し勤務時間を計算しております。 始業時間はA1に8:30 終業時間はB1に17:00と入れております。 コロン(:)を省略できるととても楽になります。8:30は830と入力、17:00は1700と入力して 表示にはコロンが入り、セルの書式としては時刻と認識し時間計算が出来ればありがたいです。 よろしくお願い致します。

  • エクセルで時間外計算の仕方

    始業から終業時間がまちまちで、下記のような表を作成したいのですが上手くいきません。 何かいい方法はありましたら教えてくださいm(__)m 作りたい表↓ 超過時間は10時間以上、15分未満切捨てとし、残業代は1時間当り500円とした場合 始業時間  終業時間 稼動時間  超過時間   残業代  7:00    18:15    11:12     1:00       500  5:00    13:13     8:13      0:00         0 23:00     12:16    13:16       3:15        1625 作ってみて失敗した表↓ A1に10:00 B1に500と入力し A2に始業時間 B2に終業時間 C2に稼動時間 D2に残業時間 E2に残業代 として A2   B2      C3              D4                 E2 7:00   8:15  =FLOOR(B2+1-A2,"1:0")  =FLOOR(C3+1-A1,"0:15")  =D4*B1 ※稼動時間が10時間未満で残業がつかない場合の計算ができない ※残業時間に残業代を掛けた計算の計が違う 以上、IF関数を使えばいいのかとも思ったのですが、どう使えば有効なのかも判らずにおりました。 よろしくお願いします。   

  • エクセル計算

    エクセル計算の質問です。 添付画像の表で・・ A列で始業時間、B列で終業時間を入力すると、C列に差し引きの 就業時間を計算します。 そしてD列には、C列の時間によって基本給を変えて表示するように したいと考えています。 具体的には・・ C列の時間が4時間1分以上の場合は、D列の基本給は7,000 C列の時間が4時間以下の場合は、D列の基本給は3,500 A列B列が無記入の場合は、C列とD列は表示ナシとする。 以上を満たす計算式を教えて頂けますでしょうか? 宜しくお願いします。

  • エクセルで○○分を0.○○時間変換したい

    例えば・・ 表示形式を時刻にしたA1に始業時間”8:15”を入力、 同じくB1に終業時間”16:45”を入力、 C1に”=B1-A1”で ”8:30”と表示されますよね。 それを”8.5”と表示し・・・ここからが大事、、、 1時間当たりの生産数(たとえばD1に”100”ヶ)を入力して、 E1に”D1*C1”で”850”という『一日の生産予定数』を得たいのですが・・。 回りクドイ説明しか出来なくて申し訳ないです・・ 意外と会社の人達に聞いても分からないと言われるばかりで・・・ 今さらな質問かも知れませんが よろしくお願いします。

  • エクセルで時間の計算式を教えてください

    勤務時間の集計をしたいのですが A1に始業時間、B1に終業時間を入力し、C1に=A1-B1としました。 が、半休を取った場合の決まりがあります。 始業・終業時間に関わりなく「午前半休」は5時間、「午後半休」3時間の勤務時間となっています。 そこで、D1に「午前半休」または「午後半休」と記入して、表を作りVLOOKUPで3:00,5:00を抽出する事にしましたが、通常に勤務したときの時間を入れるのにどうしたら良いか分からないです。 午前半休、午後半休、通常勤務(残業の日もあります)どれがD1に入ってもC1に勤務時間が入る式はどうなるのでしょうか?

  • 時間関数について

    時間計算の関数についての質問です。拘束時間の計算ですが、当日の始業時間が次の日の始業時間が異なる場合の時間計算の関数を教えてください。 例えば、当日の始業時間が6時00分(セルA1)、終業時間が18時00分(セルB1)で拘束時間は12時間00分(セルC1)です。次の日の始業時間が6時00分より遅ければよいのですが、5時00分(セルA2)の始業時間、終業時間18時00分(セルB2)の場合、前日より1時間早い始業時間なので拘束時間が13時間00分(セルC2)とする場合の関数です。 恐れ入りますが、詳しい関数計算方法を教えてください。

  • エクセルでの時間外労働の時間の算出

    (各セルには hh:mm形式で時刻を入力) 例えば a1セルに始業時刻9:00、b1セルに休憩時間1:00、c1セルに終業時刻23:30とした場合、 d1に 9:30~午後10時(22:00)までの時間のうち 休憩時間(b1に任意入力、この場合では1:00)を除いた実動時間から8時間(法定労働時間)を引いた通常の時間外労働時間を、e1には 深夜労働となる22:00を超えて23:30(c1セル)までの時間を表示する方法を教えてください。

  • エクセルで勤怠時間(一部分の)計算方法

    エクセルで社員の勤怠時間の計算を行いたいのですが 始業から終業までの、全ての時間ではなく 始業から終業までの間で行っている、一部の時間(開始時間~終了時間)だけを取り出し計算し さらにそれを、日中時間・残業時間・深夜残業時間に振り分けを行いたいです。 始業時間は、バラバラで午前の人もいれば午後の人もいます。 また、始業=開始でない場合もあります。 色々と類似質問を参照し、式を入れているのですが振り分けがうまくいきません 以下に振り分けの際の条件と例を記載します。 C1:始業時間(手入力) D1:終業時間(C1+TIME(9,0,0)) E1:開始時間(手入力) F1:終了時間(手入力) G1,H1,I1:各時間帯から控除する休憩時間(手入力) J1:日中時間(始業時間~終業時間内の、8時間までの開始時間~終了時間) ※ここの式 K1:残業時間(22時までの終業時間を超過した、開始時間~終了時間) ※ここの式 L1:深夜残業時間(22時以降の終業時間を超過した、開始時間~終了時間) ※ここの式 例) (1)始業/9:00 終業/18:00 開始/13:00 終了/23:00 休憩1/0:30 休憩2/0:15 休憩3/0:00 結果→日中/4:30 残業/3:45 深夜残業/1:00 (2)始業/13:00 終業/22:00 開始/13:00 終了/24:00 休憩1/1:00 休憩2/0:00 休憩3/0:15 結果→日中/8:00 残業/0:00 深夜残業/1:45 お知恵をお貸し下さい

  • エクセルを使った就業時間の計算について

    エクセルを使った就業時間の計算で質問です。 始業時間と終業時間の差し引きで拘束時間を計算して、 そこから休息時間を差し引き実働時間を計算する所までは 出来たのですが、実働時間から残業と深夜と深夜残業を自動で求めることが出来ません。 割り振りの条件は・・・ [深夜]当日0時から当日5時迄 [残業]当日5時から当日22時の間で、当日の実働が8時間を越えた部分。 [深夜残業]当日22時から29時の間で、当日の実働が8時間を越えた部分。 上記の条件で、自動計算をする為の式を教えて頂けませんでしょうか? ※画像の様な形で自動計算できれば理想です。 よろしくお願いします。

専門家に質問してみよう