エクセルで勤務表の自動計算方法とは?

このQ&Aのポイント
  • エクセルで勤務表を作成する際、残業や深夜勤務などを自動計算する方法を知りたいです。
  • 総労働時間や残業時間を手入力するのではなく、エクセルの関数を使って自動計算させたいです。
  • さらに、遅刻や早退があった場合にはその時間も自動で計算させたいです。どうやれば実現できるでしょうか?
回答を見る
  • ベストアンサー

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

 作業の効率化と計算ミスを防ぐため、エクセルで勤務表を作成したいと思っております。 イメージとして     A    B     C     D     E     F     G     H 1列 日   出勤   退勤   残業   深夜  総労働  遅・早   休息 2列 1  4:20   17:42    4:22   0:40   12:22 3列 2  7:51    24:00          2:00    7:57    0:03    7:12 4列 3  0:00    10:50    1:00    5:00    9:00    0:50 5列 4  16:30    6:30    5:00    7:00   13:00 6列 5  8:30   17:30               8:00 A(日)・B(出勤)・C(退勤)・H列(休息)は、手入力しますが、 D(残業)・E(深夜)・F(総労働)・G(遅刻・早退)は、自動計算させたいと考えております。 F(総労働)は 退勤-出勤-休憩=X (Xが8時間以上なら-1時間 8時間に満たない時はそのまま表示) D(残業)は、X-8時間 (Xが8時間に満たない時は、空白のまま) E(深夜)は、22:00から5:00とする。 G(遅刻・早退)は、Xが8時間に満たない時のみ (8時間-X=Y)を表示させる。 ★出勤時間・退勤時間は、人や仕事の内容によりバラバラです。    H(休息)は、2日運行等になった時のみです。   休日など空白になっている時は、空白のまま。   説明が下手で申し訳ありませんが、お知恵を貸してください!! 宜しくお願いします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

D2セルには次の式を入力して下方にドラッグコピーします。 =IF(COUNT(B2:C2)<>2,"",IF(F2<="8:00"*1,"",F2-"8:00")) E2セルには次の式を入力して下方にドラッグコピーします。 =IF(COUNT(B2:C2)<>2,"",IF(C2>B2,IF(AND(B2>="5:00"*1,C2<="22:00"*1),"",IF(B2<"5:00"*1,"5:00"-B2+IF(C2>"22:00"*1,C2-"22:00",0),IF(C2>"22:00"*1,C2-"22:00",0))),IF(C2<=B2,"24:00"-MAX(B2,"22:00")+MIN(C2,"5:00"),""))) F2セルには次の式を入力して下方にドラッグコピーします。 =IF(COUNT(B2:C2)<>2,"",IF(C2>B2,IF(C2-B2>="8:00"*1,C2-B2-"1:00"-H2,C2-B2-H2),IF(C2+"24:00"-B2>="8:00"*1,C2+"24:00"-B2-"1:00"-H2,C2+"24:00"-B2-H2))) G2セルには次の式を入力して下方にドラッグコピーします。 =IF(COUNT(B2:C2)<>2,"",IF(F2>="8:00"*1,"","8:00"-F2))

maririn8a_a8
質問者

お礼

回答ありがとうございました。 とても勉強になりました。 作業が、はかどりそうです。 またわからないことがありましたら 宜しくお願いします。

その他の回答 (4)

回答No.5

No.2・3です。No.2の「G2」で、どういうわけか「=-min(…」などと書いてしまいましたが、その式はもちろん、次のより短い式でも同じ結果になります。すみません。 =max(0,8/24-f2)

maririn8a_a8
質問者

お礼

親切に教えていただき ありがとうございました。

回答No.3

No.2です、何度もすみません。言い忘れました。 時間として「0」が算出されているセルでも、「ユーザー定義書式」を使えば、見かけ上は空白であるように見せることは可能です。 設定したいセルを選択した状態で「セルの書式設定>表示形式>ユーザー定義」と進み、「種類」ボックスに「h:mm;;」と入力してOKボタンを押すだけです。「0」だけど、見かけは空白同様になります。

maririn8a_a8
質問者

お礼

回答ありがとうございます。 『空白』の問題が解決いたしました。 またわからないことがありましたら宜しくお願いします。

回答No.2

質問文には「空白」と何回か書かれていますが、「0」か「空文字列」のいずれかを入力することとなります。完全なる空白にすることは、一発ではできません。なお、「空文字列」の入力されているセルは、見かけ上は空白セルと同様になります。 時間の計算は、単に引き算をするだけです。条件により式が変わる場合は、IFなどを組み合わせます。質問文に書いてある条件を忠実に式に直すと次のとおりです。とりあえず「空白」とお書きになっている箇所には「0」が表示されるようにしてあります。「空文字列」にするには、もう少し式が長くなります。 F2 =if(c2+if(b2>c2,1)-b2-h2>=8,c2+if(b2>c2,1)-b2-h2-1,c2+if(b2>c2,1)-b2-h2) D2 =f2-8/24 E2 =if(b2>c2,min(c2,5/24)+1-max(b2,22/24),) G2 =-min(0,f2-8/24) ??? 気になるのは、質問文に書いてあるとおりだと、労働時間が8時間だとX=7となり、7.5時間だとX=7.5となって、逆転しますが、この理解で合っているのでしょうか? それから、日付が変わるケースがあるようですので、以前私が回答した類似の質問(参考URL)を参照し、全部読んでみてください。マイナスの時間は「####」と表示されますが、Excelのエラーではなく、マイナスの時間を表示する際のルールです。日付を表中に導入すればマイナス回避の必要がなくなるので、式がもっと簡単になるし、入力ミスなどもしにくい分かりやすいものとなりそうですが。 あと、日勤/夜勤の別を表示する列もあったほうが、紛れがなくて好ましいと思いました。上の計算にも利用できます。

参考URL:
http://okwave.jp/qa/q7354714.html
maririn8a_a8
質問者

お礼

回答ありがとうございました。 とても勉強になりました。 またわからないことがありましたら 宜しくお願いします。

  • googoo900
  • ベストアンサー率44% (82/184)
回答No.1

いろいろなケースを入力してみて、正しいことを確認してから使用下さい。 質問者さんが書かれた例の3日目、Xは8時間以上ですが『遅・早』が0:50になっているのが理解できませんでした。作成したものでは0:00(空白)になります。 イ、 最上部に3行挿入して、下記のように計算のための値を入力します。(A1~F2セル) ロ、 I,J列に計算のため22:00を0:00に換算した値を表示するセルを作ります。   A    B     C    D     E    F   G    H   I    J 1 休憩時間 所定時間 深夜開始 深夜終了 深夜時間 1日の時間 2 1:00   8:00   2:00   5:00  7:00  24:00:00 3                                       22:00⇒0:00 4 日    出勤   退勤   残業   深夜  総労働 遅・早  休息  (出勤) (退勤) 5                D5    E5   F5   G5        I5   J5 6 7 ハ、 自動計算させたいD(残業)・E(深夜)・F(総労働)・G(遅刻・早退)と追加したI,J列に以下のように入力します。この例では5行目(D5,E5,・・・)とします。 D5:=IF(F5<=$B$2,"",F5-$B$2) E5:=IF(AND($E$2<J5,J5<K5),"",IF(J5>$E$2,MIN(K5,$E$2),MIN(K5,$E$2)-J5)) F5:=IF(C5>B5,IF(C5-B5-H5>=$B$2,C5-B5-H5-$A$2,C5-B5-H5),IF(C5-B5-H5>=$B$2,C5-B5-H5-$A$2,C5-B5-H5)+$F$2) G5:=IF(F5<$B$2,$B$2-F5,"") I5:=IF(B5>=$C$2,B5-$C$2,B5+$F$2-$C$2) J5:=IF(C5>=$C$2,C5-$C$2,C5+$F$2-$C$2) ニ、 5行目を必要な日数分だけコピーすれば完成です。

maririn8a_a8
質問者

お礼

回答ありがとうございました。 とても勉強になりました。 またわかならいことがありましたら 宜しくお願いします。

関連するQ&A

  • Excelで24時間対応の給与計算方法を教えてください

    Excelを使って給与計算をしたいと思っているのですが、うまくいきません。 人数も多く勤務パターンも多いので計算式を作れないでいます。 日付をまたぐ勤務パターンもあるので 24時間で対応できる計算式ができればありがたいです。 ぜひ皆さんのお力をお貸し頂きたくお願いいたします。 セルには A:日付 B:曜日 C:出勤時間(夜勤例18.0で表示) D:退勤時間(夜勤例30.5で表示) E:実働時間(D-Cで求めてます) F:所定労働時間(22時~5時以外で9時間までの実働時間) G:時間外労働時間(22時~5時以外で実働9時間を超えた時間) H:深夜労働時間(22時~5時の実働時間) I:深夜残業時間(22時~5時で実働9時間を超えた時間) ※出勤時間・退勤時間は数値に変換し、退勤時間で24時を越えた時間に関しては+24して基本の勤怠データを作っています。 関数計算式を利用して算出したいのは F:所定労働時間 G:時間外労働時間 H:深夜労働時間 I:深夜時間外労働時間 です。 例えば 日勤:出勤9.0 退勤24.0 実働15時間の場合は F:所定:9h G:残業:4h H:深夜:0h I:深残:2h 夜勤:出勤18.0 退勤31.5(朝の7時半)実働13.5時間の場合は F:所定:4h G:残業:2.5h H:深夜:5h I:深残:2h と計算結果を出したいのです。 給与の支払いに直接関わるのでとても困っています。 よろしくお願いいたします。

  • エクセルでタイムカードの時間計算をしたい

    エクセルでタイムカードの管理を行いたいので、 エクセルの表に出勤時間と退勤時間を記入したら 表の右側に残業時間や早出の時間を表示したいと思っています。 画像のC列・D列に出勤時間と退勤時間を入力するだけで E・F・G・H 列をそれぞれ表示させたいと思っています。 H列はわかるので E・F・G列に入る表計算式があれば、それぞれ教えて頂きたいのです。 E列・・9時よりも前の出社がある場合のみ、表示。     30分単位で切り捨て     (例)7:40分出勤の場合・・8時から9時までの計算となり        1時間で、(表示は1:00としたい) F列・・8時間(8:00)で固定 G列・・9時から退勤の時間の合計より9時間分を引いたもの。     (例)出勤6:55 退勤19:23 の場合        9時~19:23分までが対象の時間となり        10時間(23分は切捨て)から9時間を引いた        1時間となる(表示は1:00としたい) 以上、わかりずらいかもしれませんが もし、このような計算ができるのであれば、 よろしくお願いします

  • 休日出勤時間の計算式

    残業手当計算シート(勤怠表と同様のものです。)を作成しているのですが、E列:出勤時刻、F列:退社時刻とし、I列に休日出勤手当(35%加算)相当時間が出るように計算式を入れたいのです。(22時~5時までの深夜労働部分を除いた時間)どのように入れたらよいのでしょうか。尚、J列には深夜労働の時間が出る計算式を次のように入れました。 =IF(OR(E8="",F8=""),"",MAX(F8+(F8<E8),22/24)-22/24) 結果、深夜労働を含む休日出勤をした場合、I列+J列となるようにしたいのです。 どうぞ宜しくお願いします。尚、平日の規定労働時間は8時間、休憩1時間です。

  • パート用 労働時間の時間外計算をエクセルでしたいのですが・・・

    エクセルで、パートタイム用の時間計算表を作成しております。 単純にタイムカードの様式をエクセルで作成し、項目毎に時間を入力し労働時間を算出することが目的です。※賃金の計算は不要。 私が作成した項目は、一行に 出勤(B2) ・ 時間内退勤(C2) ・ 時間内出勤(D2) ・ 退勤(E2) ・ その他(F2、G2) ・ 労働時間小計(H2,I2) ・ 時間外(J2) です。 ※時間内退勤・出勤はお昼休みに該当します。 労働時間小計欄、H2にはC2-B2を入れ、I2にはE2-D2を設定しました。 問題は時間外計算です。 時間外対象の条件ですが、基本労働時間 8時から17時を基準とし、 1.出勤→8時前に出勤した場合の時間差。 2.退勤→17時以降の時間差。 3.上記条件に該当しても、それぞれ5分未満の場合は対象外。 例; 出勤7:30  退勤17:15   時間外(J2) 0:45     出勤7:56  退勤17:30   時間外(J2) 0:30 このように、J2欄に出勤・退勤の時間外合計時間が表示されるようにしたいのですが、何か良い方法があれば教えて下さい。対象外の場合、空欄になるように設定したいと考えております。 補足:深夜24時を過ぎる事はありません。    時間の入力方法は1つのセル内に8:00というように入力します。 

  • 深夜勤務を含む時間外割増賃金計算シート

    24時間稼動の工場で働く人の割増賃金を計算するためのタイムシートを作成中です。次のように進んでいます。尚、深夜残業時間帯は午後10時から翌朝5時までとしています。 E列:出社時刻 F列:退社時刻 G列:就労時間合計(休憩1Hのぞく) =IF(ISNUMBER(E8),F8-E8-TIME(1,0,0),"") H列:残業時間(8時間を超えた分、25%割増) =IF(OR(E8="",F8=""),"",MAX(MIN(F8+(F8<E8),22/24)-E8-18/48,0)) I列:深夜労働1 (休日以外、25%割増) =IF(OR(E9="",F9=""),"",MAX(F9(F9<E9),22/24)-22/24) J列:深夜労働2(休日以外で8時間を超えた部分、50%割増) *8Hを超える残業時間が深夜時間帯にかかる部分 K列:休日労働1 (35%割増) =IF(OR(E9="",F9=""),"",MIN(F9+(F9<E9),22/24)-E9-1/24) L列:休日労働2 (深夜労働時間帯にかかる部分、60%割増) J列とL列にどのように式を入れたらよいのかわからないのですが、現状だと他の列の式も変える必要がありそうです。というか全部変える必要あり? 極端な例ですが、普通の日に10時出社、翌朝6時退社した場合、H列4H、 I列7Hとなるべきですが、現状だとH列3H,I列8Hと出てしまいます。 J列、L列の式を含めて、どのように修整したらよいのか、教えてください。。どうぞ宜しくお願い致します。何だかこれを作るのに疲れてしまって、いいフリーソフトが無いか探してみましたが、見つかりませんでした。。

  • Excelで勤務時間の計算をしたいです。

    すでに作られている勤務表を前任者から受け継ぎましたが、 すべて手入力しているので関数を使ってもっと効率化を図りたいと思います。 皆様の知恵をお貸し下さい。 出勤時間→B列 退社時間→C列 出勤日数のカウント→D列 残業時間→E列 条件として ・定時は8:00~17:00に対して1時間の休憩をとる。 例:B列   C列  D列  E列   8:00 17:00  1  [空白] ・実働時間9時間を超える場合は残業時間に入れる 例:B列   C列  D列  E列   8:00 18:30  1   1.5 ・実働時間9時間以上の場合は1時間休憩を差し引き実働時間8時間としてそれに対して 出勤日数のカウント「1」 実働時間4時間以下の場合は休憩時間を差し引かずに 出勤日数のカウント「0.5」 実働時間4時間超え、9時間未満のものに対しては休憩時間に関係なく 出勤日数のカウント「1」 (ここが一番厄介な点かと思われます。4時間以内ならカウント0.5、4時間を越えたものはカウント1です。) 例:B列   C列  D列  E列   8:00 12:00  0.5  [空白]   8:00 15:00  1  [空白]   8:00 17:30  1   0.5 ・深夜勤務もあるが、その場合の残業は手動で計算するので、出勤日数のカウントだけでOK 例:B列   C列  D列  E列  23:00  5:00  1  [空白] このような状態なのですが、計算の列などを増やして(あまり増やしたくはないのですが・・・) 関数をいれてある程度自動で計算をさせたいのです。 休憩時間はほぼ1時間と決まっているのであまり列は増やさずに計算させたいです。 簡単な関数は知っていますが、表示形式など詳しいことは分かりません(残業時間1時間半を1.5と表示するなど・・・) ちなみに出勤日数のカウント、残業に関しては1や1.5などの数値を 他の時給計算で使っています。 巧く説明できなくてすみません((汗)) どのような関数を組んだらよいか、ご指導を宜しくお願いします_(._.)_

  • 残業代の計算をエクセルで・・・。

    エクセルで残業代の計算をしたいのですが、どのようにすればいいのかが全く分かりません。 A列は日付、B列は出勤時間、C列は退勤時間、D列は勤務時間(単純に退勤時間から出勤時間を引いた値)、E列に休憩時間が入力されています。 希望としてはF列に実働時間が、G列に残業時間が入るようにしたいのです。 ①休憩時間は原則1時間ですが、例えば30分しか取れなかった場合は本来取るべきだった残りの30分を残業代に含めることにしています。 ※労基法?ではあまり良しとしていないようですが、ここではあえて無視をしています。 ②勤務時間は午前8時30分から午後5時15分までで、それ以降に勤務していた場合は残業代として15分刻みで支給します。 以上の条件を考慮した残業時間がG列に出る関数がわかりません・・・。 また、土日祝日に勤務した場合は、H列に休日出勤時間が出るようにしたいのです。 給与計算を担当することになったのですが、前任者は一つ一つ手計算をしていたようなのですが、手間がかかり、また間違いの元にもなるかと思いエクセルの数式で何とかできないかと思い質問させていただきました。 何卒ご協力お願いいたします。

  • 【Excel】時間計算について

    Excel2003を使用しています。 残業時間の計算について、下記のような場合、F2とG2には、どのような数式を入力すればいいでしょうか? 22時以降は深夜残業となりますので、終了時刻が22時を過ぎた場合は、その部分の時間をG列の深夜残業に表示し、22時まではF列の残業に表示させたいのです。表示形式は、C列とE列は『時刻』、F列とG列は『h"時間"mm"分"』になっています。    C列     E列        F列      G列 1  開始時刻  終了時刻  残業      深夜残業 2  17時30分  23時30分  4時間30分  1時間30分 IFで条件分岐して入力してみたり、過去の質問も検索してみましたが、思うように表示させることができませんでしたので、質問させていただきました。 よろしくお願いします。

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

    勤怠時間の計算についてお願いします。 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列に入れたらいいでしょうか? どうぞ宜しくお願いいたします。

  • エクセル出退勤表で時間外と深夜時間外の関数

    エクセルで出退勤表を作りたいと思っています。 所定労働時間は10:00~18:30で休憩1時間入り、7:30です。 18:30~22:00までは時間外労働時間、22:00~翌5:00までは深夜時間外です。例えば出勤時間10:00、退勤時間23:00とすると、時間外は3:30で深夜時間外は1:00です。 セルの縦列には A:日付(例3/11で表示) B:曜日 C:出勤時間(例10:00で表示) D:退勤時間(例23:30で表示) E:所定労働時間(7:30で固定で休憩の1時間を含んでいない) F:時間外労働時間(例3:00で表示) G:深夜時間外(例2:30で表示) Q1:カレンダーの暦通り、曜日をBセルに自動表示させる方法はありますか? Q2:Fセルの18:30~22:00までの時間外労働時間を計算する関数を教えて下さい。 Q3:Gセルの22:00~翌5:00までの深夜残業時間を計算する関数を教えて下さい。 Q4:出勤時間と退勤時間を入力すれば時間外と深夜時間外が表示されるようにしたいのですが可能ですか? よろしくお願いします。 下記の回答を見つけてexcelで作成しましたが、22:00以降の深夜残業は計算で出るのですが 朝5:00前の出勤が計算されません。 朝5:00前の出勤が深夜残業に計算で加味される関数式が判りましたらご教示お願い致します。 例として1.朝の3:40出勤で25:20分退勤      2.朝の3:30出勤で14:30分退勤 の場合でお願いします。 >Q3:Gセルの22:00~翌5:00までの深夜残業時間を計算する関数を教えて下さい。 G2=IF(OR(C2="",D2=""),"",MAX(D2+(D2<C2),22/24)-22/24) ※D2+(D2<C2) C2=10:00で、D2=5:00の場合にD2=27:00とします。 ※22/24="22:00"=22時のこと ※17/48=8.5/24="08:30"=8時間半(休憩時間を含む所定労働時間)のこと

専門家に質問してみよう