エクセルで連続勤務をカウントする基本は、「勤務なら前日の連勤数+1、休みなら0」です。勤務の合計ではなく、休みで区切られた連続日数を数えます。
入力済みの日勤勤務表から一人ずつ確認できるよう、数式入りのExcelファイルを用意しました。日ごとの連勤、確認できた最長、翌月への引継ぎ値を出し、空欄や不明な勤務記号も見つける手順を説明します。
連勤は「勤務なら1を足す、休みなら0」で数える
COUNTIF関数は、条件に合うセルの個数を数える関数です。(Microsoft)
ただし、出勤記号の個数を合計しても、何日続いたかは分かりません。仮に「日・日・休・日」と並んでいれば、勤務は合計3日でも最長連勤は2日です。
そこで、勤務記号の隣に連勤数を求める補助列を設けます。日付順に「1・2・0・1」と表示すれば、連勤がどこで途切れたかも確認できます。
Excelの連勤チェック表をダウンロードする
ファイルには、次の3シートが入っています。
- 使い方:入力欄と勤務記号の扱いを確認するシート。
- 連勤チェック:本人の勤務を入力するシート。
- 記入例:架空のスタッフA、2026年9月、確認基準5日の例。
まず記入例を開き、後述する結果が手元のExcelで表示されることを確認してください。入力用と記入例は分離しているため、例を残したまま作業できます。
既存表が横型なら、1人分の勤務記号をコピーし、貼り付け先のB10を選び、[形式を選択して貼り付け]で[値]と[行列を入れ替える]を選びます。Excelには、コピーしたデータの行と列を入れ替えて貼り付ける機能があります。(Microsoft)
縦に手入力しても構いません。氏名や合計欄を含めず、日付と勤務記号の順序を必ず合わせてください。
勤務記号と前月末の連勤を入力する
「連勤チェック」シートの設定欄を埋めます。
| セル | 入力する内容 | 記入例 |
|---|---|---|
| B3 | 対象月の日付 | 2026/9/1 |
| B4 | 氏名 | スタッフA |
| D3 | 職場の確認基準。1以上の整数 | 5 |
| D4 | 前月末まで続いた勤務日数。0以上の整数 | 2 |
B10:B40には、日付のある行に勤務記号を入力します。この表では、日付をまたがない勤務を1日単位で扱い、「早・日・遅」は勤務、「休・有」は連勤を区切る日として計算します。有休の扱いも、この集計例の取り決めです。
A列は日付、C列は連勤数、D列は判定の数式です。入力で数式を消さないよう、勤務記号はB列だけに入れます。その月に存在しない日付の行は計算対象外です。
IF関数で日ごとの連勤を求める
IF関数は、条件を満たす場合と満たさない場合で返す値を分けます。(Microsoft)
配布表では、当日の勤務記号と前日の数値状態を確認します。数式は入力済みですが、仕組みを確認・復元できるよう、実際の式を掲載します。
月初のC10:前月末のD4を引き継ぐ式=IF(A10="","",IF(B10="","未確認",IF(OR(B10="休",B10="有"),0,IF(OR(B10="早",B10="日",B10="遅"),IF(ISNUMBER($D$4),IF(AND($D$4>=0,INT($D$4)=$D$4),$D$4+1,"前月確認"),"前月確認"),"記号確認"))))
2日目のC11:前行のC10に1を足す式
=IF(A11="","",IF(B11="","未確認",IF(OR(B11="休",B11="有"),0,IF(OR(B11="早",B11="日",B11="遅"),IF(ISNUMBER(C10),C10+1,"前日確認"),"記号確認"))))
自分で数式を入れる場合は、C10とC11にそれぞれ貼り付け、C11をコピーしてC12:C40へ貼り付けます。C10をそのまま全行へコピーしないでください。
C11内のC10は相対参照なので、下へコピーするとC11、C12へ変わります。一方、$D$4は行と列を固定する絶対参照です。(Microsoft)
MAXで確認できた最長連勤を求める
MAX関数は最大の数値を返しますが、参照範囲内の文字列は無視します。(Microsoft)
B6には、次の式が入っています。
=IF(COUNT(C10:C40)=0,"未確定",MAX(C10:C40))
B6は確認できた数値の中での最長です。数値が一つもなければ「未確定」になります。B7の「確認が必要な日数」も見て、未確認が残っている間は月全体の最長が確定したと判断しないでください。
記入例では、9月4〜9日の6日勤務により、C18が6、D18が「上限超過」になります。最長は6、基準超過は1日、未確認は0日を確認する例です。D7の基準超過日数は、基準を超えた日数であり人数ではありません。
月をまたぐ連勤を引き継ぐ
前月末が2連勤で、9月1日が「早」、2日が「日」、3日が「休」なら、次のようにつながります。
| 当月の日付 | 連勤数 |
|---|---|
| 9月1日 | 3 |
| 9月2日 | 4 |
| 9月3日 | 0 |
翌月へ渡すのは、B6の最長値ではなく、日付のある最後の行のC列です。9月ならC39を確認します。
最長が6でも、月末が休みで0なら翌月のD4は0です。前月の状況が不明なときは推測で0を入れず、前月の勤務表を確認しましょう。月末のC列が確認メッセージなら、その原因を解消してから引き継ぎます。
空欄・別記号・基準超過を確認する
数値以外の表示は、次の順で確認します。
| 表示 | 意味と対応 |
|---|---|
| 未確認 | 当日の勤務が空欄。予定を確認して入力する |
| 前日確認 | 前日の連勤数が不明。前へさかのぼって原因を直す |
| 前月確認 | D4が空欄・文字など。前月末の連勤数を確認する |
| 記号確認 | 対象外の記号。意味を確認し、扱いを決める |
| 基準確認 | D3を1以上の整数で入力し直す |
記入例を複製してB13を空欄にした場合、C13は「未確認」、翌日のC14は「前日確認」になるか確かめてください。9月10日の「休」ではC19が0に戻り、その後の勤務から確かな計算が再開します。「有」も同じ扱いです。
「夜・明」も「記号確認」になります。夜勤・明け・隔日勤務を、この日勤用の数式で勝手に換算しないでください。
「上限超過」はD3に設定した職場の基準を超えたという意味です。例の5日は法令の連勤上限ではなく、この表も違法かどうかを判定するものではありません。
横型のシフト表と組み合わせて使う
元の横型表を修正したら、チェック表にも勤務を転記し直します。勤務を交代した場合は、本人だけでなく交代相手の連勤も再確認してください。
別のスタッフは「連勤チェック」を複製し、氏名・勤務・前月末の値を入れ替えて確認します。
翌月用に複製するときは、B10:B40とメモ欄を消してから、B3とD4を設定します。対象月を変えただけでは、前の勤務入力は消えません。日付がない行の古い入力も消し、A・C・D列の数式は残してください。
連勤を数えた後に勤務を調整する
シフト管理では、連勤の自動集計と勤務の自動割当は別の作業です。この表は連勤数と確認箇所を表示しますが、勤務の組み直し、給与・労働時間の計算、最適な人員配置の自動割当は行いません。
組み直す案まで作成したい場合、シフトラでは連勤上限・必要人数・シフト希望を生成条件へ渡し、AIに勤務案の作成を依頼できます。(シフトラ) ただし、案の確認と最終確定は担当者の作業です。
希望休を反映して勤務案を作りたい方は、Excelで希望休を反映したシフト案を作る手順もご覧ください。
まずは一人分の予定に置き換え、日ごとの連勤、未確認箇所、月末の引継ぎ値を確認しましょう。そのうえで人数・資格・就業条件を照合し、勤務表を確定してください。