プロが教えるわが家の防犯対策術!

初めまして。
エクセルでタイムシートを作成中の者です。

シフト制の店舗社員用のタイムシートで、複数のシフトパターンがあります。

所定労働時間:7時間15分
休憩:1時間45分

所定労働時間:8時間
休憩:1時間

のパターンがメインです。

この状況で、以下の場合、どのような方法ですと結果が正しく表示されますか?

①休日出勤があった場合、休日出勤した時間は、全て残業時間にカウントするようにしたい

②午前半休、午後半休があった場合、4時間を実働時間にカウントさせ、
さらに半休をとった日に4時間以上勤務したら、半休と実働で8時間を超えるので、8時間以上の時間をを残業時間にカウントするようにしたい(就業規則で、有給取得時の賃金は、通常働いた分の賃金を支給すると決まっています)

A 日
B 曜日
C 勤怠区分(休日出勤や有給休暇1日、午前半休、午後半休をプルダウンで選択します)
D 始業時刻(従業員が手入力)
E 終業時刻(従業員が手入力)
F 休憩時刻(1時間 あるいは 1時間45分 を手入力)
G 実働時間
H 所定内時間(8時間以内はここにカウント)
I 残業時間(8時間以上をここにカウント)
J 深夜時間(8時間以内でも深夜になればここにカウント)
K 有給休暇(C勤怠区分で有給休暇1日、午前半休、午後半休を選択すると8:00と4:00を表示するようにしてあります)
L 総労働時間(値はGと同じ値になる)

エクセル初心者で、どのような関数で時間数を求めたらよいか頭をかかえており、サイトでも調べてみたのですが、同じような質問や回答が見当たりませんでした。

どうかお知恵を拝借させていただきたく、質問させていただきます。

どうぞよろしくお願いいたします。

A 回答 (2件)

考え方としては、決まった情報を表にしておき、


それをVLOOKUPなどを使って抽出するようにするのです。
一つ一つクリアしていけば、総合的な計算ファイルが完成します。
    • good
    • 1

添付画像を参考にしていただいて・・・


G列のセルG2に =IF(E2="","",E2+IF(E2-D2<0,1,0)-D2-F2) の式を入れます。
H列のセルH2に =IF(G2="","",IF(G2>=TIME(8,0,0),"8:00",G2)*1) の式を入れます。
I列のセルI2に =IFERROR(G2-H2,"") の式を入れます。
J列のセルJ2に =IF(E2+IF(E2-D2<0,1,0)<TIME(22,0,0),"",E2+IF(E2-D2<0,1,0)-TIME(22,0,0)) の式を入れます。
L列のセルL2に =IFERROR(H2+I2,"") の式を入れます。

次にセルG2~J2までを範囲選択し、オートフィルコピーで式を下方向へ好きなだけコピーします。
セルL2の式も同様にオートフィルコピーをして下方向へ好きなだけ式をコピーします。

※余計なお世話・・・?↓
添付画像内のセルN2~O4のセルに予め文字と時間を入力しておき、セルK2には次の式を入れてあります。
セルK2に =IFERROR(VLOOKUP(C2,$O$2:$P$4,2,0),"") の式を入れ下方向へ好きなだけ式をオートフィルコピー。
C列のドロップダウンで選択した文字に対してK列の時間が表示されるようにしてあります。

意味不明な部分。
・所定労働時間7時間15分の休憩時間が1時間45分で、8時間の時は休憩が1時間と短くなるのでしょう?
 所定労働時間が7時間15分の場合、休憩時間は45分間だけだと思いますが・・・?
「エクセルでタイムシートを作成中です。残業」の回答画像1
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!