• 締切済み

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 と計算結果を出したいのです。 給与の支払いに直接関わるのでとても困っています。 よろしくお願いいたします。

みんなの回答

回答No.4

時間計算の為に列の追加が許されるのであれば、使ってみて下さい。 C1:出勤時間 D1:退勤時間 E1:実働時間 F1:所定全労働時間 G1:深夜全労働時間 H1:所定労働時間 I1:時間外労働時間 J1:深夜労働時間 K1:深夜残業時間 とします。 所定全労働時間とは、22時~5時以外の全部の実働時間(所定全労働時間=所定労働時間+時間外労働時間) 深夜全労働時間とは22時~5時の全部の実働時間(深夜全労働時間=深夜労働時間+深夜残業時間) この2列は「表示しない(H)」で見えなくしても良いです。 E2のセルに=D2-C2 F2のセルに=IF(AND(C2<5,D2<=5),0,IF(AND(C2<5,D2>22),22-5,IF(AND(C2<5,D2>5),D2-5,IF(AND(D2<22,C2>5),D2-C2,IF(AND(C2<=22,D2<30),22-C2,IF(C2<22,22-C2+D2-29,D2-29)))))) G2のセルに=E2-F2 H2のセルに=IF(F2=0,0,IF(AND(C2>=21,G2>0,F2>9-G6),9-G2,IF(E2<9,F2,IF(OR(C2<5,C2>21.5),9-(5-C2),IF(C2<13,IF(F2>9,9,F2),22-C2))))) I2のセルに=F2-H2 J2のセルに=IF(OR(C2<5,C2>22),IF(D2=5,5-C2,IF(D2<5,D2-C2,IF(OR(E2<9,H2<2),G2,9-H2))),IF(H2<9,IF(9-H2>G2,G2,9-H2),0)) K2のセルに=G2-J2 と各セルに入力して下さい。これで計算出来ると思います。 実働時間が24時間を超えると間違った時間が表示される時間帯が有ります。 但し、間違いが有ってはいけませんので2~3ヶ月は以前の計算方法と併用して下さい。

noname#95859
noname#95859
回答No.3

少し、考えてみました。 タイムゾーン-- 所定:朝5:00-22:00 深夜:22:00-朝5:00 連続して9時間以上働いた場合は、残業として、カウント それぞれのタイムゾーンにて、所定残、深夜残 考え方: for nextを使って、(出勤+0.5)から退勤時間までを 0.5stepでまわします。 (出勤+0.5)とするのは、例:(出勤 10:00 ---10:30になったら、0.5時間働いた) for nextでまわす時に、タイムゾーンで、足しこむメモリを選択する。 メモリ配列は4つ用意する。 ' memo(1) -------H:深夜 ' memo(2) -------F:所定 ' memo(3) -------I:深残 ' memo(4) -------G:残業 memo(1)+memo(2)---(H:深夜+F:所定)を毎回監視していて、9時間に達したら オフセット2を与えて、それ以降は、memo(3)memo(4)が選択されるようにする。 --------------------------------------------------------------------- 残業の計算は以上でよいのですが、これは、ワークシート関数だけでは不可能です。 そこで、イベントプロシージャを使います。 出勤、退勤時間を入れたら、E:実働時間(D-C)の該当セルをダブルクリックします。 これをトリガとして、当該セルの左に記入されている、出勤、退勤時間を上記の考えで 計算し、当該セル、および、右方に計算結果を代入します。 --------------------------------------------------------------------- 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時間を超えた時間) ------------------------------------------------------- Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim StartTime As Double Dim EndTime As Double Dim myOffset As Double, i As Double, a As Double Dim rowpos As Integer, Colpos As Integer Dim memo(4) As Double ' memo(1) -------H:深夜 ' memo(2) -------F:所定 ' memo(3) -------I:深残 ' memo(4) -------G:残業 rowpos = Target.Row Colpos = Target.Column If Colpos <> 5 Or rowpos = 1 Then Exit Sub StartTime = Target.Offset(0, -2).Value EndTime = Target.Offset(0, -1).Value If EndTime - StartTime = 0 Then Exit Sub myOffset = 0 For i = StartTime + 0.5 To EndTime Step 0.5 If memo(1) + memo(2) >= 9 Then myOffset = 2 If i > 0 And i <= 5 Then memo(myOffset + 1) = memo(myOffset + 1) + 0.5 If i > 5 And i <= 22 Then memo(myOffset + 2) = memo(myOffset + 2) + 0.5 If i > 22 And i <= 24 Then memo(myOffset + 1) = memo(myOffset + 1) + 0.5 If i > 24 And i <= 29 Then memo(myOffset + 1) = memo(myOffset + 1) + 0.5 If i > 29 And i <= 46 Then memo(myOffset + 2) = memo(myOffset + 2) + 0.5 If i > 46 And i <= 48 Then memo(myOffset + 1) = memo(myOffset + 1) + 0.5 Next Target.Offset(0, 0).Value = EndTime - StartTime Target.Offset(0, 1).Value = memo(2) Target.Offset(0, 2).Value = memo(4) Target.Offset(0, 3).Value = memo(1) Target.Offset(0, 4).Value = memo(3) End Sub 計算結果 ---------------------------------------------------- C:出勤 D:退勤 E:実働 F:所定労働 G:時間外労 H:深夜労働 I:深夜残業 9 24 15 9 4 0 2 18 31.5 13.5 4 2.5 5 2 2 4 2 0 0 2 0 2 12 10 6 1 3 0 9 22 13 9 4 0 0 10 35 25 9 9 0 7 14 33 19 8 4 1 6 23 46 23 3 14 6 0 ---------------------------------------------------- これで、すべてのケースで、正しく計算されているか、大丈夫だとは思いますが、 異常なケースがあれば、お知らせください。また、考えます。

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

すみません。 他の人に作成を依頼しているように感じるんです。 不明な点が全く書かれておらず、仕様を並べているに過ぎない質問に答えるべきか悩んでしまいます。 並べた仕様のなかで何が不明なのかを明らかにしてください。 ■とりあえず回答 まずは考え方を整理します。 紙の上で日勤/夜勤において全ての出勤ケースにおける「計算過程」を一つずつ書き取ってください。  ※これが計算式の基本になります。 次に条件で計算が変わる場合の条件を書いてください。 かなり面倒だとは思いますが、これができていないと機械で計算する事はできません。 また、思うような結果が得られない場合の修正もできません。 このように作成していく過程で具体的な疑問が出てくると思います。 そういった疑問であれば、ここで質問することで回答を得ることができます。 使えそうな関数  IF (云わずと知れた分岐条件関数)  MAX( =MAX(5,9) で大きい方が選択される)  MIN( =MIN(22,24) で、小さい方が選択される) など

noname#192382
noname#192382
回答No.1

説明と後の計算例とがくいちがっいます。 説明のとおり計算すると初めの例ではHが2後の例ではHは7になるようですが。

xcx85xcx
質問者

お礼

回答ありがとうございます。 説明不足ですみません。 一日の労働(所定+深夜)が9時間を超えると時間外労働(残業)になるのです。 深夜時間帯(22時~5時)の労働時間だけで見るとご指摘のとおり 日勤の例ではH:2h、夜勤の例ではH:7hとなるのですが 日勤の例では所定ですでに9時間を超えているので、 深夜時間帯の2hは深夜残業になり 夜勤の例では所定の4時間と深夜時間帯7時間のうち5時間で 9時間を超えるので、深夜の残りの2hが深夜残業となるのです。

関連する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日運行等になった時のみです。   休日など空白になっている時は、空白のまま。   説明が下手で申し訳ありませんが、お知恵を貸してください!! 宜しくお願いします。

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

    エクセルで出退勤表を作りたいと思っています。 所定労働時間は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時間半(休憩時間を含む所定労働時間)のこと

  • エクセルでの給与計算について

    A/B/C/D/E/F/G/H/I/J/K/L/M 基本/17時~/深夜/出勤/休憩(入)/休憩(出)/退勤/基本/夜/割増/勤務時間/見込み 10(土)/950/1000/1250/11:30/14:00/15:00/23:00/4:30/5:00/1:00/10時間30分/10,525円 11(日)/950/1000/1250/18:00/-/-/22:30/-1:00/5:00/0:30/04時間30分/4,675円 12(月)/900/950/1187.5/-/-/-/-/17:00/5:00/-22:00/00時間00分/-6,075円 パートで働いているのですが、給与の計算をエクセル2007でしようとして行き詰っています。 まず平日は17:00までが900円、17:00以降22:00までが50円増し。22:00以降は25%増しです。 休日は17:00までが950円、17:00以降22:00までが50円増し。22:00以降は25%増しです。 常に昼の時間帯から出勤すれば下記の計算式でなんとかできるのですが、18:00から出勤の場合、最初の式をオートでコピーしてきた際に休憩が存在しないので上記のようにどうしても計算がおかしくなります。 1.基本の求め方=("17:00"-E10)-(G10-F10) 2.夜の求め方=H10-"17:00"-(H10-"22:00") 3.深夜(割増)の求め方=H10-"22:00" 4.勤務時間の求め方=H10-E10-(G10-F10) 後、場合によっては休憩が17:00をまたぐ場合もありますし、ラストまでおらず早い時間帯で出勤、退勤もあります。 どうかよろしくお願いします。

  • EXCELでの給与計算表について

    一日に二度も質問すみません また給与計算表について質問です 画像に載せてるようなデザインで作ろうかと思ってます ・日付  年度と月分から自動で割り出す ・曜日  日付から自動で割り出す ・出勤  出勤時間をhh:mmで記入 ・退勤  上記と同じ ・休憩  給与に係る分のみ表記  何時間で何分加算 ・時給(A)  通常時給の時間での労働時間 ・時給(B)  深夜時給の時間での24時までの労働時間 ・時給(C)  上記の残りの0時~5時の労働時間  ※(B)と(C)を合わせて深夜時給22時~5時の労働時間として表記でも構いません ・労働時間  (A)~(C)の合計労働時間 ・日給  E2:F4の時給とそれぞれの時間を掛けあわせたその日の日給 ・D17  その月の合計勤務日数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1日(土)の場合の計算式 F8(休憩) = IF((G8+H8+I8)*24>=8,TIME(0,30,0),TIME(0,0,0)) G8(時給A) = VALUE(TEXT(MIN("22:00",TIME(E8,,))-MAX("05:00",TIME(D8,,)),"hh:mm;!0;0")) H8(時給B) = VALUE(TEXT(MIN("24:00",TIME(E8,,))-MAX("22:00",TIME(D8,,)),"hh:mm;!0;0")) I8(時給C) = VALUE(TEXT(MIN("05:00",TIME(E8,,))-MAX("00:00",TIME(D8,,)),"hh:mm;!0;0")) J8(労働時間) = G8+H8+I8 K8(日給) = (($F$2*G8)+($F$3*H8)+($F$4*I8))*24 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 24時~出勤なら表が作動しますが 23時以前からの24時を跨ぐ出勤なら表が作動しません 色々Googleなどで検索しましたが最終的にここまででした 誰か詳しい方ヒントor答えを教えていただけませんか?

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

    エクセルで出退勤表を作りたいと思っています。 所定労働時間は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:出勤時間と退勤時間を入力すれば時間外と深夜時間外が表示されるようにしたいのですが可能ですか? よろしくお願いします。

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

    エクセルで、パートタイム用の時間計算表を作成しております。 単純にタイムカードの様式をエクセルで作成し、項目毎に時間を入力し労働時間を算出することが目的です。※賃金の計算は不要。 私が作成した項目は、一行に 出勤(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というように入力します。 

  • エクセルで残業時間計算

    出勤時間、退勤時間が一定でない場合の時間計算をエクセルで行いたいのですが関数がいまいちわかりません。 所定労働時間 8時間 所定労働時間を超えた時間について時間外に自動計算し、尚且つ 22:00~5:00の間は深夜時間外に自動計算したいと思っています。 例    A1   A2    A3     A4     A5 1  出勤時間 退勤時間  拘束時間   時間外   深夜時間外 2  17:00   6:00   13:00   (式入力)   (式入力) 3  1:00   14:00   13:00   (式入力)   (式入力) 4  9:00   20:00   11:00   (式入力)   (式入力) 以上の条件です、よろしくお願いします。 

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

    エクセルでタイムカードの管理を行いたいので、 エクセルの表に出勤時間と退勤時間を記入したら 表の右側に残業時間や早出の時間を表示したいと思っています。 画像の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時間です。

  • エクセルの深夜時間計算について

    エクセルを使って勤務時間表を作っていますが 22:00から29:00までが深夜時間になっていて その計算方法がわかりません 例1出勤-退勤-残業-深夜   10:00-25:00-7,0-3,0 例2 3:30-19:30-8,5-1,5 深夜時間計算のみ教えていただきたくお願い致します。

専門家に質問してみよう