• 締切済み

勤務時間の計算方法

勤務時間の計算を、以下のようにやりたいのですが、可能でしょうか? A1=出社時間 B1=退社時間 C1=1日の勤務時間 ※昼休憩12:00~13:00と夜休憩18:00~18:30は休憩時間となります。 出社時間が日によって異なるため、どのように休憩時間を 引けばよいのか悩んでいます。 よろしくお願いします。

みんなの回答

  • Yosha
  • ベストアンサー率59% (172/287)
回答No.7

まだ締め切られていないので、解決できてないのではと思い、実例を書いてみます。考え方は他の回答者様とほぼ同じです。 色々やってみましたが、解決する式を1つセルに入れようとすると、たとえIF文のネスト数を制限値の15以下になるような場合分けにしても、演算子や関数の数が制限値より多くなりどうしてもうまくいきません。 EXCELでは、多数の空いたセルがありますので、それを使わない手はありません。そうすることに抵抗を感じるかもしれませんが、セルにはなるべく簡単な式を入れて処理するようにした方がミスなどを防ぐのに効果的です。EXCELはこういった使い方をするように設計されていると思っています。 そこで、質問の勤務時間計算を実行するにあたり、ANo.6のroot16さんの言われている通り、問題なのは出社時間、退社時間が休憩時間内の場合の処理を含めると場合の数が増加しますので、右のほうの空いた列を2列ほど使い、出社時間、退社時間の休憩時ないの分をカットした出社時間、退社時間の列を作り、その列を対象として計算するようにします。 A列に出社時間、B列に退社時間、C列に1日の勤務時間、D列に休憩時間を除いた実勤務時間 ちょっと離れた、G列に休憩時間を外した出社時間、H列に休憩時間を外した退社時間を入れることにします。 先ず、G1セルに =IF(A1<TIME(12,,),A1, IF(A1<=TIME(13,,),TIME(13,,), IF(A1<TIME(18,,),A1, IF(A1<TIME(18,30,),TIME(18,30,),A1)))) を、H1セルに =IF(B1<TIME(12,,),B1, IF(B1<=TIME(13,,),TIME(12,,), IF(B1<TIME(18,,),B1, IF(B1<TIME(18,30,),TIME(18,,),B1)))) をコピペし、必要ならばスペースを取り除いてください。その後、下方にドラッグします。 G列、H列はもっと右の見えないところでも構いません。そうしたいときは、G列の前(左の)列に空列を必要な数、追加してください。そうすると式はEXCELが自動的に再計算してくれます。 次に、D1セルに =IF(AND(G1<=TIME(12,,),TIME(13,,)<=H1,H1<=TIME(18,,)),TIME(12,,)-G1+H1-TIME(13,,), IF(AND(TIME(13,,)<=G1,G1<=TIME(18,,),TIME(18,30,)<=H1),TIME(18,,)-G1+H1-TIME(18,30,), IF(AND(G1<=TIME(12,,),TIME(18,30,)<=H1),TIME(12,,)-G1+TIME(18,,)-TIME(13,,)+H1-TIME(18,30,),H1-G1) または =IF(AND(G1<=0.5,13/24<=H1,H1<=0.75),0.5-G1+H1-13/24, IF(AND(13/24<=G1,G1<=0.75,18.5/24<=H1),0.75-G1+H1-18.5/24, IF(AND(G1<=0.5,18.5/24<=H1),0.5-G1+0.75-13/24+H1-18.5/24,H1-G1) をコピペし、必要ならばスペースを取り除いてください。その後、下方にドラッグします。 これでうまくいくと思います。ただし、質問の内容から推察して、夜中の勤務はないものとしています。 各式の内容は、難しくないので自分で勉強して理解してください。先々のためにも・・・。

  • root16
  • ベストアンサー率31% (43/138)
回答No.6

場合分けすると、15通りもあり簡単ではありません。 午前出社:5通り 昼休み出社:4通り 午後出社:6通り(含む夕方休み出社、夕方休み後出社) IFの条件式では残念ながらネストしきれないようです。 条件をややこしくしているにのは 出社時間、退社時間が休憩時間内の場合です。 この場合のために出社時間(修正)、退社時間(修正)の列 C1、D1を作り、E1セルにC1、D1を使った条件式を 入れたほうが良いと思います。

noname#176215
noname#176215
回答No.5

#3の者です。ひとつ抜けてました。 夜休憩時間から 退社時間までの時間 =MAX(退社時間*24-18.5,0)

  • Bronco7
  • ベストアンサー率29% (150/511)
回答No.4

C1のセルにくそ長いIf文の式を入れるか 自動ってのならオリジナル関数を作るしかないかと思いますよ。 A1が 13:00 以前なら 1時間引く B1が 18:30 以降なら 30分引く 出社時間が日によって異なるといっても 上記の条件は変わらないと思いますけどね?

noname#176215
noname#176215
回答No.3

条件が小出しになりそうな気がすごくするので 回答も小出しします。 計算を午前と午後に分ければいいのでは? あとひとつ。時間計算をする時は 演算誤差対策をする必要があります。 出社時間から 12:00までの時間 =MAX(12-出社時間*24,0)/24 13:00から 退社時間までの時間 =MAX(MIN(退社時間*24,18)-13,0))/24

  • takewan
  • ベストアンサー率30% (4/13)
回答No.2

簡潔明瞭に、以下の式をC1に入力してみてください。 その際、書式は標準ではなく時間表示にしておいてくださいね。 =IF(AND(A1<TIME(12,0,0),B1>TIME(18,30,0)),B1-A1-TIME(1,30,0),IF(AND(A1<TIME(18,0,0),B1>TIME(18,30,0)),B1-A1-TIME(0,30,0),IF(AND(A1<TIME(12,0,0),B1>TIME(13,0,0)),B1-A1-TIME(1,0,0),B1-A1)))

  • qqvx4qk9k
  • ベストアンサー率11% (39/335)
回答No.1

休憩分を普通に勤務時間から引けばいいですよ。 かんたんです。

shushury
質問者

補足

ご回答ありがとうございます。 そうなんです。 休憩時間を入れるセルを用意して、それを入力し、引けばよい話なのですが、 出社時間と退社時間だけ入れて、その中に12:00~13:00もしくは18:00~18:30が 含まれていた場合は、自動で引いてくれる、、、 なんていう式は、やはり難しいでしょうか。

関連するQ&A

  • 勤務時間の計算

    勤務時間 8:00~19:00 の間なら何時間でも働いてよくて 昼休み12:00~13:00の時間帯は必ず休みになります。 9:30出社 17:30退社 の場合、7時間となり 9:30出社 11:30退社 の場合 2時間となり、 14:00出社 18:00退社 の場合 4時間の勤務となります。 エクセルで     A      B      C 1  勤務時間    昼休み 2   8:00      12:00 3   19:00     13:00 4  出社       退社    勤務時間 5   9:30      17:30    7:00 6   9:30      11:30    2:30 ↓ドラッグ 7  14:00      18:00    5:00 C5に =IF(COUNT(A5:B5)<2,"",TEXT(MAX(0,(MIN($B5,A$3)-MAX($A5,A$2))-(MIN($B5,B$3)-MAX($A5,B$2))),"h:mm")*1) と入れてC7までドラッグすると、 C6が2時間のところが2:30になり、 C7が4時間が正しいのに5時間になってしまい、うまく計算されません。 うまく計算されるには、どのような式にすればいいのでしょう? もしくはもっと簡単な関数があるのでしょうか? ご教授、よろしくお願いいたします。

  • 勤務時間・時間外の計算方法を教えて下さい

      A      B     C    D     E    F 出社時間 退社時間 休憩 勤務時間 時間外 勤務日数 1 8:00    17:30    1    8:00   0:30   1 2 8:00    17:00    0.5    ☆   0:00   1 4 8:00    12:30    0     4:30    ★ 5 8:00    12:00    0    4:00   0:00   0.5 6 13:00   17:00    0    4:00   0:00   0.5 (1)勤務時間を計算する場合 B1-A1-C1かB1-A1-TIME(1,0,0) で計算できることは分かったのですが、休憩時間が30分のときの計算式☆が分かりません。 (2)時間外計算は=IF(D2>TIME(8,0,0),D2-TIME(8,0,0),0)だと勤務時間が8時間の場合にしか当てはまらないので半日勤務の場合の残業計算★はどういう式になるのかも教えて頂きたいです。 出来れば、8時間のときも半日のときも一度に計算したいです。 また、勤務日数を勤務時間 8時間の場合は 1 半日の場合は 0.5 というようにすぐ表示出来るようにならないでしょうか。0.5は赤字で表示出来たらうれしいです。 無理なことを言っているかもしれませんが、お願いします。

  • エクセルの勤務計算で一部の時間を省く計算式は?

    エクセルで勤務管理表を作りました。 1日何時間働いたか、タイムカードの時間を打ち込み 月間で管理する表です。 だいたいは出来たのですが、1点難問が・・・。 基本は9:00-17:00勤務なので (昼45分差し引き)計7:15分です。 残業が17:16~しかつかないんです。 (17:00~17:15は残業とみなさない) つまり・・・17:15までですと勤務計は7:15分。       17:16までですと勤務計は7:31分です。 これを考慮した計算ができる式を教えていただけないでしょうか?     A1       B1      C1       D1 (退社時間-出社時間)-昼時間=1日の勤務時間 上記のことがあるので 「D1」セルに正しい勤務計を出すことが出来ないんです。  17:01~17:15は省く・・・みたいな。計算式が必要なんでしょうか?

  • エクセルで労働時間の計算方法

    例えば、OLのM子さんの勤務について      出社   9:00     退社  17:00    休憩時間 12:00~13:00  17:00~17:30 ある日、9:00に出社して、その日は残業があり18:30までの 勤務となりました。その場合の計算式を教えてください。 残業なしの場合は 勤務時間=退社時間-出社時間-1時間という計算をしていました。  

  • エクセルで勤務時間を計算したい

    例えば、 セルAに出社時間) 9:00 セルBに退社時間) 16:00 と記入し、 2時間ごとに休憩15分あるので、 それを自動的にセルCに表示させたいです。 この場合ですと、 セルCに休憩時間) 0:45 そして、 拘束時間から、休憩時間を引いた勤務時間をセルDに表示させたいです。 セルDに勤務時間) 6:15 そして、 時給を仮に800円として、日給をセルEに表示させたいです。 *15分で200円の計算です セルEに日給) 5000円 マクロは使わないでお願いします。

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

    勤務管理をエクセルで作成しています。 19時前と、19時後の時間給を分けて支給することになり、 分けて集計をしたいのですが設定の仕方がわかりません。。。 出社12:00 退社22:00 とすると 12:00~19:00 の 「7:00」 19:00~22:00 の 「3:00」 を自動計算したいのですが、どうしたらよいでしょうか? ただ、出社時間と退社時間は、出勤していない日は0:00と表示するようになってしまってます。 そのため、 Aセル:出社時間 Bセル:退社時間 Cセル:19:00 Dセル:B-A-E Eセル:B-C にしみましたが、出社していない日の時間計算がうまくできません。。。 手計算は膨大な作業になってしまうので、自動計算させる方法を教えていただけると大変ありがたいです。 宜しくお願いします。 表示方法

  • エクセル 勤務時間から退社時間を求めたい

    教えてください。 エクセルで今勤務時間の計算をしています。 出社時間は定時8:30と決まっていますが、日によって勤務時間が8時間とか6時間とかばらばらです。 そこから退社時間をもとめたいのです。退社時間は一応お昼以降なので常に休憩時間の1時間は差し引いて表示をしたいとおもっています。つまり勤務時間8Hと入力したら、自動的に退社時間が17:30と表示される方法はありませんでしょうか。教えてください。

  • エクセルで深夜勤務の時間計算

    こんにちは。 今、会社でエクセルを使った勤務表を作成しています。 出社時間(D1)、退社時間(F1)、休憩時間(G1)をそれぞれセルに入力すると、実働時間(H1)が表示されるようにしていたのですが、 深夜勤務時間のセルに夜22:00から朝5:00の間に勤務した時間を抽出して表示したいと思っています。 例として、出社時間を「9:00」、退社時間を「24:00」、休憩時間を「1:00」と入力した場合、実働時間「14:00」深夜勤務時間に「2:00」という風に計算して表示させたいのです。 深夜勤務時間にはどういった計算式をいれればいいでしょうか? よろしくお願い致します。

  • エクセル 勤務時間の計算について

    以下の勤務時間とします。 開始  終了  休憩 実労働時間 09:00 17:30  1:00 7:30 この数値をエクセルにすると、 A1 B1 C1 D1 09:00 17:30 1:00 7:30 D1の時間算出 =(A1-B1-C1) となりますが、 このD1の7:30 を 7.5で算出したいのですが 簡単な計算式(セルD1内で計算)を教えてください。

  • Excelで勤務時間表を作るにあたり

    エクセルで月の勤務時間・残業時間などを出す勤務表を作成しています。 ●通常は12:00~13:00に休憩を取る ●13:00以降に出社した場合&12:00以前に退社した場合、休憩をとらない ●12:00~13:00に出社した場合、13:00まで休憩とする 以上の条件を満たそうとして、作ってみました。 =拘束時間-IF(OR(出社>13:00,退社<13:00),0,IF(出社<=12:00,1時間の休憩,13:00-出社)) 出社のパターンは対応できたのですが、これに加え、12:00~13:00に出社した場合も、自動的に13時まで休憩を取るという計算式を作りたいのです。 どうにかして計算できないでしょうか。

専門家に質問してみよう