当サイトではアフィリエイトプログラムを利用して商品を紹介しています。掲載リンクからご購入いただいた場合、当サイトに報酬が発生することがあります。

年次有給休暇の管理を自動化する|5日の時季指定を漏らさない台帳と、管理簿の保存期間

誰が何日残っているのかを、聞かれるたびに数える。年度の終わりが近づいてから、5日取れていない人を慌てて探す。年次有給休暇の管理は、人数が増えるほど計算と確認に時間がかかります。

この作業が重いのは、計算が難しいからではありません。人ごとに基準日が違い、そこから1年という期間が人ごとにずれているからです。この記事では、付与と取得を1枚の台帳で持ち、5日の時季指定が必要な人を自動で出す設計と、法令が求める管理簿の記載事項と保存期間を説明します。

この記事でわかること

  • 労働基準法第39条が定める付与日数の表と、5日の時季指定の対象になる人の範囲
  • 基準日から1年の期間で5日に届いていない人を自動で出す設計
  • 年次有給休暇管理簿の3つの記載事項と、保存期間の本則と経過措置

ムダの現状:人ごとに期間がずれている

年次有給休暇の管理で時間が消えるのは、計算そのものではありません。

時間を食うのは、人ごとに期間が違うことです。入社日を基準にしていると、基準日が1人ずつバラバラになります。そして、5日の時季指定が必要かどうかを判定する1年の期間も、1人ずつずれます。

この状態で「誰が危ないか」を把握しようとすると、人数分の期間を個別に見ることになります。20人いれば20通りの期間です。

手作業で起きること

場面 起きること 台帳で消えるか
残日数を聞かれる その都度、付与と取得を数え直す 消える
期限が近い人を探す 人ごとに基準日を見て計算する 消える
繰越の計算 前年分と当年分の消化順が曖昧になる 設計次第
記録の提出を求められる 申請書を集め直して作る 消える

4つのうち3つは、台帳を1枚持つだけで消えます。残日数を持つのではなく、付与と取得を1行ずつ記録して差し引きで出す。この形にすると、いつ時点の残日数でも計算できます。

機械に渡せる部分と、人に残す部分

工程 中身 誰がやるか
基準日の算出 入社日から6か月後、以降1年ごと 機械
付与日数の決定 勤続年数と所定労働日数から 機械。ただし出勤率は人が確認
取得の記録 いつ何日取ったかを残す 人。申請の時点で1回だけ
5日に届かない人の抽出 基準日から1年の期間で判定 機械
時季の決定 本人の意見を聴いて日を決める 人

4番目を機械に渡すのが、この記事の中心です。ここを人が見ている限り、年度末に慌てる状態は変わりません。

スキームの全体図:付与と取得を1枚にまとめる

1. 人ごとに基準日を持つ 入社日から6か月後、以降1年ごと ここがずれると、すべてがずれる 2. 付与を1行として記録する 勤続年数から日数を自動で決める 残日数は持たず、差し引きで出す 3. 取得も1行として記録する 時季・日数・基準日の3つを残す 管理簿の記載事項が、そのまま揃う 4. 5日に届かない人を自動で出す 基準日から1年の期間で判定する 残り月数が少ない順に並べる 5. 年1回、管理簿として保存する 台帳から出力するだけにする 別に作らない。作ると、ずれる 残日数を持たず、付与と取得の差し引きで出す

設計の要点は2番目です。残日数を列として持つと、修正が入るたびに人が書き換えることになり、履歴が消えます。付与と取得を1行ずつ積み上げる形にすれば、いつ時点の残日数でも計算でき、後から経緯も追えます。

必要なツールと費用(2026年9月23日時点)

必要なもの 用途 費用の考え方
スプレッドシート 社員表と、付与・取得の台帳 追加費用なし
申請フォーム 取得の記録を1回で済ませる 既存の契約の範囲
Apps Script 付与の自動作成と、5日判定 追加費用なし
就業規則 自社の取扱いを確認する 既にあるもの

勤怠管理のシステムを導入している場合は、そちらに機能があることが多いので、まず確認してください。この記事の内容は、勤怠システムを入れていない規模か、入れていても年休の管理だけが別になっている場合を想定しています。

導入手順:条文から付与日数を組み立てる

Step 1:付与の条件を、条文から書き出す

ひな形を探すのではなく、条文から書き出してください。

労働基準法第39条第1項は、使用者は、その雇入れの日から起算して6箇月間継続勤務し全労働日の8割以上出勤した労働者に対して、継続し、又は分割した10労働日の有給休暇を与えなければならないと定めています。

第2項は、1年6箇月以上継続勤務した労働者について、6箇月経過日から起算した継続勤務年数1年ごとに、前項の日数に次の表の日数を加算すると定めています。

6箇月経過日から起算した継続勤務年数 加算される労働日(条文の表) 10労働日と合算した日数
(付与の初回) 加算なし 10労働日
1年 1労働日 11労働日
2年 2労働日 12労働日
3年 4労働日 14労働日
4年 6労働日 16労働日
5年 8労働日 18労働日
6年以上 10労働日 20労働日

同項のただし書きには、継続勤務した期間を6箇月経過日から1年ごとに区分した各期間の初日の前日の属する期間において出勤した日数が全労働日の8割未満である者に対しては、当該初日以後の1年間においては有給休暇を与えることを要しないとあります。出勤率の判定は毎回必要です。最初の6か月だけの話ではありません。

第3項は、1週間の所定労働日数が少ない労働者などについて、通常の労働者の週所定労働日数との比率を考慮して厚生労働省令で定める日数とすると定めています。いわゆる比例付与です。自社にパートや短時間勤務の人がいる場合、この計算が別に必要になります。

Step 2:台帳は、付与と取得を1行ずつ積む

社員表と、動きの台帳を分けます。

社員表に持つのは、氏名、入社日、雇用区分、週の所定労働日数の4つです。基準日は入社日から計算できるので、列として持ちません。

台帳には、付与と取得の両方を1行ずつ入れます。列は、社員、種別(付与か取得か)、日付、日数、基準日、備考の6つです。

ここで残日数の列を作らないのが要点です。残日数を列で持つと、修正のたびに人が書き換えることになり、いつどう変わったかが分からなくなります。差し引きで計算する形にしてください。

基準日の列を、取得の行にも入れておいてください。どの基準日の年度に属する取得なのかが、後で必要になります。5日の判定も、管理簿の記載も、基準日が起点です。

Step 3:5日の時季指定の対象と、期間を押さえる

第39条第7項が、5日の時季指定を定めています。

使用者は、第1項から第3項までの規定による有給休暇の日数のうち5日については、基準日から1年以内の期間に、労働者ごとにその時季を定めることにより与えなければならない、とされています。そして、この項の対象は使用者が与えなければならない有給休暇の日数が10労働日以上である労働者に係るものに限られます。

ここに2つの判定があります。

1つ目、対象になるのは10労働日以上が付与される人です。比例付与で10労働日未満の人は、この項の対象になりません。台帳では、付与の行の日数が10以上かどうかで判定できます。

2つ目、期間は基準日から1年以内です。暦年でも年度でもありません。人ごとに期間が違うのは、このためです。

そして第8項は、第5項または第6項の規定により有給休暇を与えた場合には、当該与えた有給休暇の日数(当該日数が5日を超える場合には5日とする)分については、時季を定めることにより与えることを要しないとしています。本人が自分で請求して取った日数は、5日から差し引かれるということです。

Step 4:足りない人を、残り月数とあわせて出す

次のApps Scriptは、社員ごとに現在の基準日期間を求め、その期間の取得日数が5日に届いていない人を、残り月数の少ない順に並べます。

function listShortOfFive() {
  var ss = SpreadsheetApp.getActive();
  var staff = ss.getSheetByName('社員表').getDataRange().getValues();
  var book = ss.getSheetByName('台帳').getDataRange().getValues();
  staff.shift();
  var head = book.shift();
  var c = {};
  for (var i = 0; i < head.length; i++) { c[head[i]] = i; }
  var today = new Date();
  var out = [];
  for (var s = 0; s < staff.length; s++) {
    var name = staff[s][0];
    var hired = staff[s][1];
    if (!(hired instanceof Date)) { continue; }
    var base = anniversary(hired, today);
    var granted = 0;
    var taken = 0;
    for (var r = 0; r < book.length; r++) {
      var row = book[r];
      if (row[c['社員']] !== name) { continue; }
      var rowBase = row[c['基準日']];
      if (!(rowBase instanceof Date)) { continue; }
      if (rowBase.getTime() !== base.getTime()) { continue; }
      if (row[c['種別']] === '付与') { granted = granted + Number(row[c['日数']]); }
      if (row[c['種別']] === '取得') { taken = taken + Number(row[c['日数']]); }
    }
    if (granted < 10) { continue; }
    if (taken >= 5) { continue; }
    var end = new Date(base.getFullYear() + 1, base.getMonth(), base.getDate());
    var months = Math.floor((end - today) / 2592000000);
    out.push([months, name, base, granted, taken, 5 - taken]);
  }
  out.sort(function (a, b) { return a[0] - b[0]; });
  return out;
}
function anniversary(hired, today) {
  var first = new Date(hired.getFullYear(), hired.getMonth() + 6, hired.getDate());
  var d = first;
  while (true) {
    var next = new Date(d.getFullYear() + 1, d.getMonth(), d.getDate());
    if (next > today) { return d; }
    d = next;
  }
}

実装で押さえている点を3つ挙げます。

1つ目、付与日数が10未満の人を対象から外していること。第39条第7項の対象は10労働日以上の人です。ここを外さないと、比例付与の人まで警告に出てしまいます。

2つ目、基準日が一致する行だけを集計していること。前年の基準日期間の取得を混ぜると、判定がずれます。台帳の取得の行に基準日を持たせているのは、このためです。

3つ目、残り月数の少ない順に並べていること。名前順や部署順に出すと、期限が近い人が下のほうに埋もれます。

この一覧を、月に1回出してください。毎日出すと読まれなくなり、年に1回では手遅れになります。

Step 5:管理簿は、台帳から出力する

年次有給休暇管理簿を、別に作らないでください。台帳から出力する形にします。

別に作ると、台帳と管理簿の2つを更新することになり、必ずずれます。台帳が正であり、管理簿はその時点の写しだという設計にしてください。

出力するのは、社員ごとに、時季・日数・基準日の3つが並んだ形です。台帳の取得の行をそのまま社員別に並べ替えれば、この形になります。

出力は年に1回でも構いませんが、出力した時点のファイルを日付入りで残してください。上書きすると、いつ時点の記録かが分からなくなります。保存の要件については、次の節で条文を確認します。

最初の3か月は、1つの部署だけで回す

全社を同時に始めないでください。

最初の3か月は、1つの部署だけで回します。付与の計算が就業規則と合っているか、取得の申請が台帳に入るか、5日の一覧が読まれるか。この3つを確認してから広げます。

この期間に必ず出てくるのが、過去の記録をどこまで遡って入れるかという問題です。現在の基準日期間の分だけを入れれば、5日の判定はできます。過去の繰越分は、残日数の表示が必要になった時点で入れれば足ります。全部を遡ろうとすると、そこで止まります。

現場の合意の取り方:勧めることと、決めることを分ける

年休の管理を仕組みにすると、現場からは決まった反応が返ってきます。

懸念 背景 答え方
休みを勝手に決められるのか 時季指定という言葉の印象 まず本人の請求が先で、届かない場合に意見を聴いて決める順序を示す
取得率で部署が評価されるのか 数字が管理に使われた経験 一覧は5日に届かない人を出すためのもので、部署別の順位は作らないと決める
申請が増えて面倒になる 紙とシステムの二重入力 申請を1か所にまとめ、台帳への転記をなくす

順序を、最初に説明する

第39条第5項は、使用者は有給休暇を労働者の請求する時季に与えなければならないと定めています。ただし書きで、請求された時季に与えることが事業の正常な運営を妨げる場合においては、他の時季に与えることができるとされています。

つまり、原則は本人の請求です。第7項の時季指定は、5日に届かない場合に使用者が定めるという仕組みであって、最初から会社が割り振るものではありません。

この順序を、仕組みを始めるときに説明してください。説明がないと、時季指定という言葉だけが伝わり、休みを会社が決めるのかという受け取られ方をします。

二重入力を、先になくす

申請が面倒だという反応は、たいてい二重入力から来ています。紙の申請書を出して、さらに別の表にも入れる。これがあると、どちらかが必ず抜けます。

申請の入口を1か所にして、そこから台帳に入る形にしてください。承認が必要な場合も、承認の記録を同じ行に持たせます。別の表に転記する工程を残すと、そこが止まります。

そして、半日単位や時間単位の取得を扱うかどうかを、先に決めてください。時間単位の年休は、第39条第4項により、労使協定で定めた場合に5日以内の範囲で与えることができるとされています。自社に協定があるかどうかで、台帳の設計が変わります。

失敗パターンと限界:管理簿の記載事項と保存期間

管理簿に必要な3つと、保存期間

労働基準法施行規則第24条の7は、使用者は、法第39条第5項から第7項までの規定により有給休暇を与えたときは、時季、日数及び基準日(第一基準日及び第二基準日を含む)を労働者ごとに明らかにした書類を作成し、当該有給休暇を与えた期間中及び当該期間の満了後5年間保存しなければならないと定めています。この書類が、年次有給休暇管理簿です。

ここで保存期間について、もう1つ確認しておく必要があります。同規則の附則第71条は、第24条の7を含む複数の規定の適用について、当分の間、これらの規定中「5年間」とあるのは「3年間」とするとしています。

本則は5年、経過措置により当分の間は3年。この二段構えを知らずに「3年でよい」とだけ覚えていると、経過措置が終わったときに運用が追いつきません。台帳を消す設計を作るときは、この点を踏まえて、少なくとも5年は残せる形にしておくほうが安全です。

記載事項が3つだけであることも、押さえておいてください。時季、日数、基準日。これ以外の項目は、法令上の要件としては求められていません。台帳の設計では、この3つが確実に取れることを優先してください。

比例付与と、10労働日の線

パートや短時間勤務の人がいる場合、付与日数は第39条第3項による比例付与になります。

ここで注意が必要なのは、比例付与でも一定の条件では10労働日以上になり、その場合は5日の時季指定の対象になるという点です。「パートだから対象外」という扱いにすると、漏れます。

台帳では、雇用区分ではなく実際に付与した日数が10以上かどうかで判定してください。この判定なら、区分が変わっても自動で正しく動きます。

比例付与の日数そのものは、週の所定労働日数と勤続年数の組み合わせで決まります。自社の該当者について具体的に何日になるかは、就業規則と照らして確認し、判断に迷う場合は社会保険労務士など専門家に確認してください。

基準日をそろえる場合の注意

入社日基準だと人ごとに期間がずれるため、基準日を全社でそろえる運用もあります。ただし、そろえる場合は法定の基準日より前倒しで付与することになります。

第39条第7項のただし書きは、基準日より前の日から与えることとしたときについて、厚生労働省令で定めるところにより時季を定めて与えなければならないとしています。そして施行規則第24条の5が、第一基準日、第二基準日、履行期間といった概念を使って、この場合の取扱いを定めています。

基準日をそろえる運用は、管理は楽になりますが、判定のルールは複雑になります。この記事で示した設計は入社日基準を前提にしています。そろえる運用に変える場合は、施行規則第24条の5の内容を確認したうえで、専門家に相談してください。

この仕組みが向かない場合

勤怠管理のシステムを既に導入している場合は、そちらの機能を使ってください。年休だけを別の台帳で持つと、勤務日数の情報が二重になります。

また、社員数が数十人を超えると、スプレッドシートでの管理は計算が重くなります。この場合は、ここで整理した判定のルールを要件として、システムを選ぶ段階です。

逆に、数人規模であれば、この仕組みは過剰かもしれません。ただし、管理簿の作成と保存は人数にかかわらず必要です。台帳を1枚持つところまでは、規模によらず作っておいてください。

AIを使うなら、判定ではなく確認に

年休の付与日数や時季指定の判定を、生成AIに任せないでください。条文と省令と経過措置が絡む領域で、もっともらしいが条文と対応していない答えが出ます。そして、その誤りは全員に及びます。

使うとすれば、条文の文言が何を指しているかを調べる補助としてです。ただし、その結果は必ず条文に戻って確認してください。この記事で引いた条文も、実際にe-Govなどで原文を確認したうえで自社の運用に落としてください。

効果の測り方

数字 測り方 いつ見るか
5日に届いていない人数 一覧に出た人数 毎月
残り3か月を切った人数 一覧のうち残り月数が3以下 毎月
管理にかけた時間 残日数の問い合わせ対応を含む 四半期

1つ目は、年度の途中では多くて当然です。基準日から1年かけて5日に到達すればよいので、期の前半で多いこと自体は問題ではありません。

2つ目のほうを見てください。残り3か月を切っているのに届いていない人は、実際に手を打つ必要があります。ここが毎月ゼロに近い状態が続いていれば、仕組みが機能しています。

3つ目は、仕組みを作る前の状態と比べる数字です。残日数を聞かれて数え直す時間が消えているかを見ます。この問い合わせが減らない場合、本人が自分の残日数を見られる形になっていない可能性があります。

同じ法令・同じ論点の記事

同じ労働基準法の休憩と休日の条文は、シフト作成を自動化するで条件の3層として扱っています。年休の時季指定と合わせると、条件表を1つにまとめられます。

まとめ

年次有給休暇の管理が重いのは、人ごとに基準日が違い、5日を判定する1年の期間も人ごとにずれているからです。

やることは3つです。残日数を列として持たず、付与と取得を1行ずつ積み上げること。取得の行にも基準日を持たせること。そして、付与日数が10労働日以上の人だけを対象に、基準日から1年の期間で5日に届いていない人を自動で出すことです。

この一覧は、残り月数の少ない順に並べて月1回出します。名前順や部署順にすると、期限が近い人が埋もれます。

管理簿は台帳から出力してください。別に作ると必ずずれます。記載事項は時季、日数、基準日の3つ。保存期間は、施行規則の本則が5年で、附則により当分の間は3年です。

合意は、順序を説明することで取ります。原則は本人の請求であり、時季指定は5日に届かない場合の仕組みです。ここを説明しないまま始めると、休みを会社が決めるのかという受け取られ方をします。

よくある質問

パートの人も、5日の時季指定の対象になりますか

雇用区分ではなく、実際に付与される日数で決まります。第39条第7項の対象は、使用者が与えなければならない有給休暇の日数が10労働日以上である労働者に係るものに限られます。比例付与でも10労働日以上になる場合があるため、「パートだから対象外」という扱いにすると漏れます。台帳では付与の日数が10以上かで判定してください。

本人が自分で取った日数は、5日に含めてよいのですか

第39条第8項は、第5項または第6項の規定により有給休暇を与えた場合には、当該与えた日数(5日を超える場合は5日とする)分については時季を定めることにより与えることを要しないとしています。本人の請求で取得した日数は差し引かれます。台帳で取得の行を集計する設計にしておけば、この計算は自動で合います。

管理簿は、どんな様式で作ればよいですか

施行規則第24条の7が求めているのは、時季、日数及び基準日を労働者ごとに明らかにした書類です。様式そのものは定められていません。台帳からこの3つを出力できれば足ります。項目を増やすことは自由ですが、増やすほど更新の手間が増えるので、必要なものに絞ってください。

保存期間は3年ですか、5年ですか

施行規則第24条の7の本則は、当該有給休暇を与えた期間中及び当該期間の満了後5年間です。ただし同規則の附則第71条により、当分の間はこれを3年間と読み替えることとされています。台帳を消す設計を作るときは、経過措置が前提であることを踏まえて、少なくとも5年は残せる形にしておくほうが安全です。

出勤率の確認は、最初の6か月だけでよいですか

毎回必要です。第39条第2項のただし書きは、継続勤務した期間を6箇月経過日から1年ごとに区分した各期間の初日の前日の属する期間において出勤した日数が全労働日の8割未満である者について、当該初日以後の1年間においては有給休暇を与えることを要しないとしています。付与のたびに判定が必要になります。

基準日を全社でそろえたほうが、管理は楽ではないですか

管理は楽になりますが、判定のルールは複雑になります。法定の基準日より前倒しで付与することになるため、第39条第7項のただし書きと施行規則第24条の5が定める第一基準日・第二基準日・履行期間の考え方が関わります。この記事の設計は入社日基準を前提にしています。そろえる運用に変える場合は、条文を確認したうえで専門家に相談してください。

同じ部門の記事

人事総務労働条件通知書を自動で作る|条件表と雛形を分け、法改正に追随できる形にする2026年10月6日
人事総務議事録をAIに作らせる前に決めること|会議を3種類に分け、残すのは4項目だけにする2026年9月30日
人事総務勤怠チェックを自動化する|締めの前に7項目を機械で当て、人は例外だけを見る。打刻修正の履歴と保存期間の線引きまで2026年9月24日

部門ごとの自動化スキームを、1つずつ

営業・経理・人事総務・サポート・現場。部門ごとに、1つのムダを消す設計図と、現場の合意の取り方を書いています。

スキーム一覧を見る

同じ部門の記事だけを追うなら、人事・総務・労務の記事一覧からたどれます。

上部へスクロール