シフト表と勤怠を突き合わせる方法予定と実績の差を毎月見つける手順

シフト表と勤怠の突き合わせは、職員と「勤務の開始日」を鍵にして、予定の1行と打刻の1行を並べる作業です。夜勤の退勤を翌日の打刻として扱うと、架空の介護施設20人・30日分の計算では確認が要る行が91件から196件に増えました。鍵の決め方、許容幅、差が出たときの直し方を順に説明します。(2026年10月時点)
全体の流れと費用はシフト作成の自動化のページにまとめています。
要点
- シフト表と勤怠は、職員と勤務の開始日を鍵に、予定と打刻を1対1で並べて突き合わせます。
- 架空の介護施設(20人・30日・予定330件)では、確認が要る行は開始日で並べると91件、打刻の暦日で並べると196件でした。
- 許容幅を0分にすると、時刻のずれの確認は299件と勤務のほぼ全部に出て、15分では32件まで減りました。
- 許容幅は確認する行を絞る線で、その時間を労働時間から外してよいという意味ではありません。
目次
シフト表と勤怠の突き合わせは、何をすればよいですか?
職員と勤務の開始日を鍵にして、シフト表の予定1行と、勤怠の打刻1行を1対1で並べ、ずれを種類ごとに分けます。ずれの種類が分かれば、誰に何を確かめればよいかが決まります。
厚生労働省は「労働時間の適正な把握のために使用者が講ずべき措置に関するガイドライン」(平成29年1月20日策定)を出しています。ガイドラインは、労働日ごとの始業・終業の時刻を確認して記録するよう求めています。確かめ方は、タイムカードやICカードなどの客観的な記録を基礎にするのが原則です。
シフト表は予定で、労働時間の記録にはなりません。突き合わせは、この2つの差を毎月見つける作業です。
私が仕組みを作るときは、差を次の6種類に分けています。
| 差の種類 | 見つけ方 | よくある原因 | 次にすること |
|---|---|---|---|
| 打刻なし | 予定はあるが打刻が0件 | 欠勤、交代を予定に反映していない | 本人と管理者に確認 |
| 片方の打刻がない | 出勤か退勤の片方だけ | 押し忘れ | 本人に時刻を確認 |
| 予定にない勤務 | 打刻はあるが予定がない | 急な交代、応援 | 予定を直す |
| 遅刻 | 出勤が開始+許容幅より遅い | 遅刻、打刻の遅れ | 理由を確認 |
| 早退 | 退勤が終了−許容幅より早い | 早退、体調不良 | 理由を確認 |
| 予定より遅い退勤 | 退勤が終了+許容幅より遅い | 残業、記録の書き残し | 時間外労働として扱うか確認 |
夜勤があると、なぜ突き合わせがずれるのですか?
夜勤の出勤と退勤は暦日では別の日に落ちるため、打刻の日付で並べると1回の夜勤が2件の差に見えるからです。17時から翌9時の夜勤なら、出勤は当日、退勤は翌朝の打刻になります。
どれくらい差が出るかを、架空の介護施設で計算しました。職員20人、30日、早番・日勤・遅番・夜勤で予定330件(うち夜勤60件)です。打刻642件には、欠勤5件、打刻漏れ8件、遅刻8件、早退1件、延長27件、交代3件を乱数で混ぜています。混ぜる割合は仮定の値です。
許容幅10分のとき、確認が要る行は、打刻の暦日を鍵にすると196件、勤務の開始日を鍵にすると91件でした。暦日を鍵にした場合、片方の打刻がない行は64件、予定にない勤務は61件に増えます。増えた分のほとんどは夜勤60回が2つに割れたもので、実際には確かめる必要がありません。
勤務の開始日で並べる処理の要点は、出勤から20時間以内の退勤を同じ勤務にまとめることです。計算は scripts/figs/fig_shift_attendance_payroll_link.py で再現できます。
for s, ts, io in sorted(punches, key=lambda x: x[1]):
if io == '出':
open_in[s] = ts # 出勤を覚えておく
else:
tin = open_in.pop(s, None)
if tin and ts - tin <= timedelta(hours=20):
pairs[(s, tin.date())] = (tin, ts) # 鍵は出勤した日
20時間は、16時間の夜勤に延長を足しても収まる長さとして決めた値です。勤務の長さが違う職場では、いちばん長い勤務に合わせて変えます。
許容幅は何分にすればよいですか?
許容幅は、現場が毎月確かめきれる件数に収まるように決めます。架空の施設で、遅刻・早退・予定より遅い退勤の合計を許容幅ごとに数えました。0分なら299件、5分なら175件、10分なら72件、15分なら32件、30分なら29件です。
0分の299件は、働いた勤務のほぼ全部です。これでは担当者が毎日の退勤を1件ずつ見ることになり、続きません。この仮定のもとでは、15分でふだんのずれがほぼ消え、延長や遅刻が残りました。
ただし、許容幅は確認する行を絞るための線です。その時間を労働時間から外してよいという意味ではありません。厚生労働省のガイドラインは、労働時間かどうかは使用者の指揮命令下に置かれていたかで客観的に決まるとしています。自己申告の時間と入退場の記録に大きな差がある場合は、実態を調べて補正するよう求めています。
差が見つかったら、どう直して給与に渡しますか?
差の原因を確かめたら、打刻の側と予定の側の両方を直し、直した理由を残してから給与に渡します。架空の施設の交代3件は、予定を直さないと「打刻なし」と「予定にない勤務」の2件ずつに見えていました。
厚生労働省の「シフト制」の留意事項(令和8年6月19日改正)によれば、確定したシフトの変更は労働条件の変更に当たります。変更は、使用者と労働者の双方が合意したうえで行うよう求めています。交代を当日の口約束で済ませず、予定のデータにも反映すると、翌月の突き合わせが楽になります。
給与に渡す数字は、予定ではなく確認後の実績です。労働基準法第108条は、賃金台帳に賃金計算の基礎となる事項を記入するよう定めています。ガイドラインは、労働時間数や時間外労働の時間数などを正しく記入するよう求めています。
会社の都合で確定した勤務を取り消した行は、休業手当(第26条、平均賃金の100分の60以上)の対象になることがあります。当てはまるかどうかは社会保険労務士に確かめてください。直した記録は元の打刻と一緒に残します。第109条の保存期間は5年で、附則第143条により当分の間は3年です。
突き合わせは、Excelでもできますか?
職員の番号と勤務の開始日の列がそろえば、Excelでもできます。20人ほどで夜勤がなく、交代も少ない職場なら、2つの表を並べて差の列を作るだけで足ります。
手間が増えるのは、夜勤の日付またぎ、出勤の押し忘れ、交代が重なる月です。数式で全部を扱おうとすると、条件分岐が増えて担当者以外は直せなくなりがちです。この場合は、勤務の開始日で並べる処理を小さなスクリプトにして、毎月同じ手順で回すほうが確実です。
もう1つの手は、シフト表を作る段階で、勤怠に渡す形のデータを一緒に出すことです。手組みゼロのシフト作成の自動化では、勤務表を今のExcelの形と、勤怠・給与のCSVの形で書き出します。予定と実績の鍵が最初からそろうので、列をそろえる手間が省けます。費用は一式30万円〜で、制約条件(必要人数や夜勤の回数などの決まり)の数で変わります。
このサイトで相談するには?
勤怠のCSVとシフト表の突き合わせで手が止まっている場合は、無料で相談するからお知らせください。勤務表をお見せいただかなくても、人数と勤務の種類、今の勤怠の仕組みをうかがえば、目安をお答えします。
よくある質問
- 勤怠システムのCSVと、Excelのシフト表でも突き合わせられますか?
- できます。職員の番号と勤務の開始日の列が両方にあれば、Excelでも並べられます。夜勤と交代が多い職場では、数式より小さなスクリプトのほうが扱いやすくなります。
- 許容幅の内側の数分は、給与で切り捨ててよいですか?
- いいえ、許容幅は確認する行を絞るための線です。労働時間かどうかは指揮命令下にあったかで決まるため、端数の扱いは社会保険労務士に確認してください。
- 出勤簿やタイムカードは何年残せばよいですか?
- 労働基準法第109条は5年と定め、附則第143条で当分の間は3年とされています。突き合わせで直した記録も、元の打刻と一緒に残します。