エクセルのシフト表から有給休暇の付与日数を出すときの基本は、従業員ごとに集計期間を決め、期間内の勤務記号を数えることです。所定労働日数を算出しがたいシフト制では、初回は雇入れから6か月の実績を2倍、1年6か月以降は前年の実績を年間の所定労働日数とみなして判定する方法が認められています。(厚生労働省)
週の勤務日数が決まっていないパート・アルバイトを管理する店長やシフト担当者に向けて、基準日を出す式、出勤日数を数える式、6人の判定例、自店で使う空欄表を示します。エクセルで日付と出勤日数を自動表示・自動集計し、付与日数は比例付与の表を照合して入力する手順です。
制度の説明は2026-10-11時点の公開資料に基づきます。
エクセルのシフト表で有給の付与日数を出す流れ
用意するのは、勤務実績を反映したシフト表、各人の雇入れ日、契約書や労働条件通知書です。契約書に「週3日程度」などの目安があれば、実績による判定と比べるために控えておきます。
作業は次の順に進めます。
- 雇入れ日から基準日を求め、集計の開始日と終了日を決める。
- シフト表の勤務記号から、期間内に実際に出勤した日を数える。
- 初回は実績を2倍し、次回以降は1年間の実績をそのまま使う。
- 年間日数の区分と勤続期間を交差させ、付与日数を読む。
- 契約上の目安との比較を行い、年5日の取得義務の対象者を確認する。
以下は、スーパーのレジ部門で、2026年11月の各基準日までの集計を終えたと仮定した架空例です。A〜Fの6人は月ごとのシフトで勤務日を決め、全員の週の所定労働時間は30時間未満。全労働日の8割以上出勤していることは、別途確認できている前提で進めます。
勤務記号は「早=9:00〜14:00」「遅=14:00〜19:00」「通=9:00〜17:00、休憩1時間」「休=休み」「有=年次有給休暇」です。実際の出勤日を数える式には「早・遅・通」を指定し、「休・有」は含めません。「有」の扱いと出勤率の確認については、後の節で説明します。勤務記号から1日・1週の勤務時間を計算する式は、シフト表をエクセルで自動計算する方法で扱っています。
週の勤務日数が決まっていない人の付与日数の決まり方
まず、比例付与の対象かを確認します。週の所定労働時間が30時間未満で、週の所定労働日数が4日以下、または週以外の期間で日数を定める場合に年間所定労働日数が216日以下の人が対象です。週30時間以上、または週5日以上の人などは通常の付与日数で判定します。(厚生労働省)
原則として参照するのは、基準日に予定されている所定労働日数です。その日数を算出しがたい場合の扱いが、2026年6月19日改正の厚生労働省の留意事項に示されています。所定労働日数をあらかじめ定めていないことを理由に、有給を付与しないことは認められません。(厚生労働省)
実績から求めた「みなしの年間日数」を、次の表の年間日数の欄に当てはめます。日数と勤続期間による付与日数は、厚生労働省の表に基づいています。(厚生労働省)
| 区分 | 年間日数 | 6か月 | 1年6か月 | 2年6か月 | 3年6か月 | 4年6か月 | 5年6か月 | 6年6か月以上 |
|---|---|---|---|---|---|---|---|---|
| 週1日 | 48〜72日 | 1日 | 2日 | 2日 | 2日 | 3日 | 3日 | 3日 |
| 週2日 | 73〜120日 | 3日 | 4日 | 4日 | 5日 | 6日 | 6日 | 7日 |
| 週3日 | 121〜168日 | 5日 | 6日 | 6日 | 8日 | 9日 | 10日 | 11日 |
| 週4日 | 169〜216日 | 7日 | 8日 | 9日 | 10日 | 12日 | 13日 | 15日 |
| 通常 | 217日以上 | 10日 | 11日 | 12日 | 14日 | 16日 | 18日 | 20日 |
この例で使う「週2日区分」「週3日区分」は、表のどの行に当てはまるかを示す呼び名です。実際に毎週その日数で働いていたという意味ではありません。週の勤務日数を推測して丸めず、集計した年間日数で行を選んでください。
基準日と出勤日数を数える期間を決める
エクセルに「付与判定」というシートを作り、A列に従業員ID、B列に雇入れ日(入社日)、C列に今回の付与時点の経過月数を入力します。C列は初回なら「6」、1年6か月なら「18」です。2年6か月以降も「30、42、54…」と対象となる基準日の月数を入れます。
D列を基準日、E列を集計開始日、F列を集計終了日とし、2行目に次の式を設定します。EDATEは、指定した日付から月単位で前後の日付を求める関数です。(Microsoft サポート)
| 入力先 | 内容 | 式 |
|---|---|---|
| D2 | 基準日 | =EDATE(B2,C2) |
| E2 | 集計開始日 | =IF(C2=6,B2,EDATE(D2,-12)) |
| F2 | 集計終了日 | =D2-1 |
初回の集計期間は雇入れ日から基準日の前日まで。1年6か月以降は、基準日の1年前から前日までを対象にします。「前年」は前年の1月〜12月という意味ではなく、その人の基準日からさかのぼる1年間として扱います。
A〜Fを2〜7行目に並べ、式を下へコピーすると、今回の例は次の配置になります。
| A列:従業員 | B列:雇入れ日 | C列:経過月数 | D列:基準日 | E列〜F列:集計期間 |
|---|---|---|---|---|
| A | 2026-05-11 | 6 | 2026-11-11 | 2026-05-11〜2026-11-10 |
| B | 2026-05-18 | 6 | 2026-11-18 | 2026-05-18〜2026-11-17 |
| C | 2026-05-01 | 6 | 2026-11-01 | 2026-05-01〜2026-10-31 |
| D | 2025-05-01 | 18 | 2026-11-01 | 2025-11-01〜2026-10-31 |
| E | 2025-05-15 | 18 | 2026-11-15 | 2025-11-15〜2026-11-14 |
| F | 2026-05-15 | 6 | 2026-11-15 | 2026-05-15〜2026-11-14 |
B列は文字列ではなく日付データで入力し、D〜F列の表示形式も日付にします。基準日が同じCとDでも、集計の開始日は異なります。全員を同じ半年間で数えないよう、開始日まで確認してください。
この配置は雇入れ日を起点とする例です。会社が前倒し付与や基準日の統一を行っている場合は、自社の基準日と対象期間を確認してから式を調整します。
シフト表から出勤日数を数える式
集計用のシート名を「勤務実績」とします。日付は1行目、従業員は2行目以降、勤務記号は日付と従業員が交わるセルに置いてください。
| 位置 | A列 | B列から右の各列 |
|---|---|---|
| 1行目 | 従業員ID | 年月日を含む日付を1日1列で入力 |
| 2行目 | A | その日の勤務記号 |
| 3〜7行目 | B〜Fを1人1行 | その日の勤務記号 |
月別にシートやファイルが分かれている店では、集計用のコピーに必要な月を日付順で横につなぎます。各月の合計欄や勤務時間欄は入れず、1日につき1列にそろえる形です。年月を省いた「1、2、3…」だけの見出しでは、年をまたぐ期間を判定できません。
月の途中に基準日がある人も、集計範囲には必要な月の日付を含めます。そのうえで開始日と終了日を式の条件に指定し、月内の対象日だけを数える構成です。
また、作成時の予定表をそのまま使わず、欠勤、交代、追加出勤を勤怠システムなどの記録と照合し、実際に働いた日に勤務記号が入っている状態に修正します。未入力と休みを区別して、集計対象期間の記録がそろってから計算してください。
「付与判定」のG列を出勤日数にします。COUNTIFSは、複数の条件をすべて満たしたセルの組を数える関数です。ここでは「開始日以降」「終了日以前」「指定した勤務記号」の3条件を使います。(Microsoft サポート)
G2を選び、次の式を数式バーへ貼り付けます。
=COUNTIFS(勤務実績!$B$1:$ZZ$1,">="&$E2,勤務実績!$B$1:$ZZ$1,"<="&$F2,勤務実績!$B2:$ZZ2,"早")+COUNTIFS(勤務実績!$B$1:$ZZ$1,">="&$E2,勤務実績!$B$1:$ZZ$1,"<="&$F2,勤務実績!$B2:$ZZ2,"遅")+COUNTIFS(勤務実績!$B$1:$ZZ$1,">="&$E2,勤務実績!$B$1:$ZZ$1,"<="&$F2,勤務実績!$B2:$ZZ2,"通")
3つのCOUNTIFSが「早」「遅」「通」を別々に数え、その合計を出します。早番も通し勤務も、この集計では1日として数えるため、勤務時間の長さで重みを付ける式ではありません。勤務記号ごとの回数を土日に分けて数える方法は、エクセルで土日の出勤回数をカウントする方法で扱っています。
B列〜ZZ列は集計対象の日付を置く範囲の例です。自店の最終列に合わせる場合は、式の中の範囲をすべて同じ列まで変更します。日付行の「$1」は固定し、従業員の行番号は下へコピーすると変わる設定です。
「付与判定」と「勤務実績」で従業員の並びをA〜Fの順にそろえ、G2をG7までコピーします。この式はIDを検索していないため、片方のシートだけを並べ替えると別人を集計してしまいます。転記や並べ替えの後は、同じ行のIDが一致しているかチェックしてください。
「有」の日数と出勤率の確認を分ける
今回の式で「有」を除いているのは、実際に勤務した日をまず取り出すためです。有給取得日を、比例付与の判定に使う「労働日数の実績」にどう含めるかは、この式だけで結論を出さないでください。含める場合と除く場合で区分が変わる人は、契約内容と勤怠記録を用意し、労働局や労働基準監督署などに確認します。
架空例のDは出勤150日と有給5日、Eは出勤205日と有給7日です。有給取得日を足しても、Dは121〜168日の区分、Eは169〜216日の区分に収まり、今回の付与日数は変わりません。
一方、全労働日の8割以上出勤したかという出勤率の計算では、有給取得日は出勤したものとして扱います。(厚生労働省)
G列の出勤日数だけでは、この出勤率を判定できません。労働義務のあった日や欠勤、休業などの記録と照らして、付与要件の確認を別に行います。ここで作るのは付与日数を求める表であり、出勤率の自動判定表ではありません。
実績から区分を判定して付与日数を出す
H列を「みなしの年間日数」とし、H2に次の式を入力して下へコピーします。
=IF(C2=6,G2*2,G2)
C列が6なら出勤日数を2倍、それ以外の対象基準日ならG列の日数をそのまま使います。初回と次回以降で、G列が集計している期間自体が異なる点に注意してください。D・Eの1年間の実績まで2倍する必要はありません。
次にI列を「実績での付与日数」とします。H列の年間日数で比例付与表の行を選び、C列の経過月数に対応する勤続期間の列を読み、交点の日数を入力します。ここは担当者が表を照合する操作です。
| 従業員 | 勤続期間 | 出勤日数 | みなしの年間日数 | 実績による区分 | 実績での付与日数 | 今回の付与日数 |
|---|---|---|---|---|---|---|
| A | 6か月 | 60日 | 120日 | 週2日 | 3日 | 5日※ |
| B | 6か月 | 61日 | 122日 | 週3日 | 5日 | 5日 |
| C | 6か月 | 85日 | 170日 | 週4日 | 7日 | 7日 |
| D | 1年6か月 | 150日 | 150日 | 週3日 | 6日 | 6日 |
| E | 1年6か月 | 205日 | 205日 | 週4日 | 8日 | 8日 |
| F | 6か月 | 112日 | 224日 | 通常 | 10日 | 10日 |
※Aは、契約書の「週3日程度」という目安で算定した5日を採用します。目安と実績を比べる手順は後述します。
Dは週3日区分でも勤続1年6か月なので6日、Eは週4日区分の同じ勤続期間で8日です。区分が分かったところで止めず、勤続期間の列も合わせて読みます。
Fは週30時間未満ですが、112日×2=224日となり、216日を超えます。この例では通常の付与日数の行に進み、初回の10日を付与する判定です。「短時間のパートだから最大7日」とは判断できません。
1日の差で付与日数が変わる境目
AとBは、半年の出勤日数が1日違うだけで、実績による判定が分かれます。
- A:60日×2=120日。73〜120日の区分に入り、初回は3日。
- B:61日×2=122日。121〜168日の区分に入り、初回は5日。
Cも同様です。仮に84日なら2倍して168日となり初回5日ですが、今回の85日では170日となり初回7日に変わります。年間日数の区切りをまたぐため、出勤1日の差が付与日数の差につながります。
境目に近い人は、基準日の前日までを数えているか、勤務記号の入力漏れや余分な空白がないかを確認します。「だいたい週3日」と置き換えるより、元の出勤日を照合することが先です。
目安となる労働日数を決めている人の扱い
所定労働日数を算出しがたい場合に「目安となる労働日数」などを定めているときは、その目安による付与日数が実績による日数を上回る場合に限り、目安を使って算定しても差し支えないとされています。(厚生労働省)
Aの契約書には「週3日程度」とあります。実績からは週2日区分・3日ですが、目安の週3日で表を読むと、勤続6か月の付与日数は5日です。この架空の店では、多くなる目安の算定結果を採用する方針にしています。
| Aの確認段階 | 算定の根拠 | 付与日数の扱い |
|---|---|---|
| 目安の確認前 | 出勤60日×2=120日 | 実績による候補は3日 |
| 目安の確認後 | 契約書は週3日程度、勤続6か月 | 目安で算定した5日を今回付与 |
「付与判定」のJ列に目安での付与日数、K列に今回採用する日数を記録します。AならI列は3、J列は5、K列は5です。根拠欄にも「契約書の週3日程度を用い、実績より多い5日を採用」と残してください。
目安の確認前にI列の3日を最終結果として扱わず、実績による候補と採用した日数を分けるのがこの表の使い方です。なお、この取扱いは目安を使って実績による日数を減らすためのものではありません。
付与日数が10日以上の人は年5日の取得を計画する
法定の付与日数が10日以上の労働者については、基準日から1年以内に年5日の有給を取得させる必要があります。本人が請求して取得した日や計画年休の日は、その5日に算入されます。使用者が時季を指定するときは、あらかじめ本人の意見を聴いたうえで指定し、その意見を尊重するよう努めます。(厚生労働省)
今回の6人では、10日付与となるFが対象です。基準日は2026-11-15なので、2027-11-14までの1年間について、取得予定と実際に取得した日を管理します。
まずFの希望する時期を確認し、今後のシフトに有給の予定を反映します。その後、月ごとに勤怠記録と照合し、取得済みの日数を更新してください。シフト表に「有」と入力しただけで、取得が完了した扱いにはしません。
この取得期間は、今回の付与日数を判定した2026-05-15〜2026-11-14とは別です。付与前の実績を数える欄と、付与後の取得状況を追う欄に、それぞれ期間を明記しておくと取り違えを防げます。
A〜Eは今回の法定付与日数では年5日の取得義務の対象になりませんが、それぞれに付与した有給は取得管理が必要です。全員を「5日取得」の同じ枠に当てはめず、付与日数と取得記録を対応させて扱います。
自店のシフト表で判定表を作る
自店に移すときは、まず1人分の集計期間と勤務記号を設定し、G列の件数を元の勤務実績と照合します。そのうえで他の従業員へ式をコピーしてください。使用している勤務記号が「早・遅・通」と異なる店では、式の条件を実際の表記に置き換えます。
次の空欄表は、1人につき1枚の確認用として利用できます。「付与判定」シートでは、同じ項目を従業員ごとの行に並べてください。
| 項目 | 自店の記入欄 |
|---|---|
| 従業員ID/雇入れ日(A・B列) | |
| 今回の経過月数(C列) | |
| 基準日(D列) | |
| 集計開始日/終了日(E・F列) | |
| 出勤として数える勤務記号 | |
| 集計した出勤日数(G列) | |
| みなしの年間日数(H列) | |
| 比例付与の区分/実績での付与日数(I列) | |
| 契約上の目安/目安での付与日数(J列) | |
| 今回の付与日数(K列)/採用した根拠 | |
| 8割以上の出勤の確認結果 | |
| 有給取得日の算入で区分が変わるか/確認結果 | |
| 年5日の取得義務の対象か/対象期間 |
この判定表は、基準日に何日を付与するかを決めるためのものです。付与後は、基準日と付与日数を有給の管理表へ反映し、取得日や残日数とつなげます。勤務実績の集計だけで、有給の管理全体が終わるわけではありません。
運用を始める際に残る作業は、自店の勤務記号への読み替え、勤怠実績による8割以上の出勤の確認、有給取得日の扱いで区分が変わる人の確認です。時間単位の有給、有給の日の賃金計算の詳細、就業規則の作成は、この手順の対象に含めていません。
シフト管理の仕組みから見直す場合、シフトラでは、有休のパターンを設定している店舗なら、希望の提出で有休を通常の休みと分けて扱えます。確定シフトは指定した日の分をCSVまたはExcelで出力でき、列や並び順も指定できます(2026-09-05時点の製品情報)。(シフトラ) 有給の付与日数の計算は行いません。
出力した予定表を集計に使うときも、勤怠実績との差分を反映する作業が必要です。有給の付与日数は、本稿のように対象期間・勤務実績・契約上の目安を確認して判定し、担当者が根拠とともに記録してください。