1. 試したこと:日数と、まだ確定できない行を別に出す

年休の明細を足しても、そのまま年5日の取得実績にはなりません。時間単位、未来の予定、取消、前の管理期間の取得は分ける必要があります。さらに、申請と勤怠が食い違う行や空欄は、取得ゼロと決めずに残します。

今回は、次の順に試しました。

  1. 架空の社員一覧と明細を作り、集計前に想定の正解表と根拠の明細番号を保存する。
  2. 作業しているAI自身に、同じ一覧・明細とルールを渡して読み取らせる。
  3. 手元の短いJavaScriptで集計初版と修正版を動かす。
  4. 想定表と両方の結果を、社員・明細ごとに読み合わせる。

年休管理の解説記事にある未実施の想定例とは別に、今回は手元で動かした結果を残します。一般的な制度の解説や、勤怠管理の方法の選び方は既存記事をご覧ください。

2. 作り方の要点:社員・基準日と明細番号を結び付ける

架空の一覧と明細

判定時点は2026年10月17日です。一覧の付与・繰越は日数で、法定付与日数自体の妥当性は判定せず、入力条件としました。全員が通常の年1回付与で、半日は本人が希望して取得した設定です。

社員 法定付与 繰越 基準日(期間の始め) 期間の終わり
A 20 3 2026-04-01 2027-03-31
B 10 4 2026-07-01 2027-06-30
C 7 3 2026-04-01 2027-03-31
D 12 0 2026-01-01 2026-12-31
E 10 2 2026-04-01 2027-03-31
F 10 1 2026-10-01 2027-09-30
G 20 0 2026-01-01 2026-12-31

明細は次の27行です。日付はすべて2026年。「確認済」は申請側の「取得確認済み」、「予定」は「承認済み予定」の略です。申請側の表示だけでは取得を確定せず、勤怠との一致も条件にしました。「空欄」は未記入です。

行 社員 日付 単位 申請側の状態 勤怠との照合 取得元
01 A 04-10 1日 確認済 一致 当年
02 A 05-11 1日 確認済 一致 当年
03 A 06-12 1日 確認済 一致 当年
04 A 07-13 半日 確認済 一致 当年
05 A 08-14 半日 確認済 一致 当年
06 A 09-15 4時間 確認済 一致 当年
07 A 11-02 1日 予定 予定として一致 当年
08 A 09-16 1日 取消 取消として一致 当年
09 B 06-30 1日 確認済 一致 当年
10 B 07-01 1日 確認済 一致 当年
11 B 08-03 半日 確認済 一致 繰越
12 C 04-02 1日 確認済 一致 繰越
13 C 05-07 半日 確認済 一致 当年
14 D 02-02 1日 確認済 一致 当年
15 D 03-03 1日 確認済 勤怠は出勤 当年
16 D 04-03 半日 確認済 空欄 当年
17 E 05-01 1日 確認済 一致 当年
18 E 空欄 1日 確認済 一致 当年
19 E 06-01 半日 空欄 一致 当年
20 F 10-01 1日 確認済 一致 当年
21 F 10-16 半日 確認済 一致 当年
22 F 09-30 1日 確認済 一致 繰越
23 G 01-05 1日 確認済 一致 当年
24 G 02-05 1日 確認済 一致 当年
25 G 03-05 1日 確認済 一致 当年
26 G 04-06 1日 確認済 一致 当年
27 G 05-07 1日 確認済 一致 当年

09の「当年」は取得当時の付与分という記載です。取得元が当年か繰越かよりも、今回の一覧の管理期間内に取得したかで分けます。

先に作った想定の正解表

不足は、対象者について「5日-確認済みの算入日数(最低0日)」としました。確認待ちがあれば暫定値です。これは判定時点であと何日必要かを整理したもので、期間終了前の法令違反の判定ではありません。

社員 年5日の対象 想定の算入日数 不足日数 算入の根拠行 確認待ちの行
A 対象 4 1 01〜05 なし
B 対象 1.5 3.5 10・11 なし
C 対象外 適用外 適用外 取得記録12・13は計1.5日 なし
D 対象 確認済み1 4(暫定) 14 15・16
E 対象 確認済み1 4(暫定) 17 18・19
F 対象 1.5 3.5 20・21 なし
G 対象 5 0 23〜27 なし

Cは法定付与7日+繰越3日でも対象にしません。Bの11は繰越分からの取得でも算入します。対象外のCの取得記録を消したり、取得できないと判断したりする意味ではありません。

集計とAIに渡した条件

厚生労働省のQ11、Q10、解釈・第3問2・問4の現行掲載本文を2026年10月17日に確認しました。半日・時間単位、社員ごとの期間、繰越の扱いを参照しています。全法令・通達の網羅的な改訂調査はしていません。

AIへの依頼は、一覧・明細に次の条件を付けました。別のAIサービスへ送らず、作業しているAI自身が読み取りました。

判定時点は2026-10-17。法定付与10日以上を年5日の対象とする。
社員ごとの基準日から期間の終わりまで(両端を含む)で判定する。
本人が取得した半日は0.5日。時間単位は算入せず、元の記録は残す。
未来の予定・取消・前の期間の取得は算入しない。
対象者の期間内の取得なら繰越分でも算入する。
申請と勤怠の食い違い・必要欄の空欄は、0日と決めず確認待ちにする。
社員ごとの対象・算入日数・不足と、各明細の判定・理由・元番号を出す。
取得日を決めたり、管理簿を書き換えたりしない。

表の集計は、一覧と明細を社員IDで結び、各行を条件分岐する短いJavaScriptで代用しました。期間は一覧から参照し、時間を日に換算しません。Excelファイルの操作や特定の勤怠システムとの接続は試していません。

初版と修正版は同じ作業で用意し、順に1回ずつ実行しました。以下の横長の表は、画面に収まらない場合は横にスクロールして読めます。

3. 結果:数値は同じでも、初版では確認待ち4行が消えた

下表は27行すべての照合です。「外」は年5日の算入外、「待」は確認待ち、「対象外」は年5日の判定の適用外です。数字の単位は日。集計欄は「初版→修正版」、AI欄は読み取り結果で、後から行分類は変更していません。一致欄は行の区分と日数についての比較です。

社員・行 想定の正解 集計 初→修正 AI 一致/不一致 理由・初版の問題
A・01 1 1→1 1 両方一致 期間内の1日
A・02 1 1→1 1 両方一致 期間内の1日
A・03 1 1→1 1 両方一致 期間内の1日
A・04 0.5 0.5→0.5 0.5 両方一致 本人取得の半日
A・05 0.5 0.5→0.5 0.5 両方一致 本人取得の半日
A・06 外 外→外 外 両方一致 時間単位は足さない
A・07 外 外→外 外 両方一致 未来の承認済み予定
A・08 外 外→外 外 両方一致 取消
B・09 外 外→外 外 両方一致 Bの基準日より前
B・10 1 1→1 1 両方一致 基準日当日を含む
B・11 0.5 0.5→0.5 0.5 両方一致 繰越からの取得も含む
C・12 対象外 対象外→対象外 対象外 両方一致 法定付与7日
C・13 対象外 対象外→対象外 対象外 両方一致 繰越を足して対象にしない
D・14 1 1→1 1 両方一致 確認済みの1日
D・15 待 外(0)→待 待 集計のみ不一致→一致 出勤との食い違いが消えた
D・16 待 外(0)→待 待 集計のみ不一致→一致 勤怠の空欄が消えた
E・17 1 1→1 1 両方一致 確認済みの1日
E・18 待 外(0)→待 待 集計のみ不一致→一致 日付なしを期間外と一括処理
E・19 待 外(0)→待 待 集計のみ不一致→一致 状態なしを算入外と一括処理
F・20 1 1→1 1 両方一致 基準日当日を含む
F・21 0.5 0.5→0.5 0.5 両方一致 期間内の半日
F・22 外 外→外 外 両方一致 Fの基準日より前
G・23 1 1→1 1 両方一致 期間内の1日
G・24 1 1→1 1 両方一致 期間内の1日
G・25 1 1→1 1 両方一致 期間内の1日
G・26 1 1→1 1 両方一致 期間内の1日
G・27 1 1→1 1 両方一致 期間内の1日

社員ごとの出力も照合しました。各欄は「算入/不足/確認待ち行」です。想定は第2節の表で、対象かどうかも7人とも一致しました。

社員 集計初版 集計修正版 AI(表現修正後)
A 4/1/なし 4/1/なし 4/1/なし
B 1.5/3.5/なし 1.5/3.5/なし 1.5/3.5/なし
C 適用外/適用外/なし 適用外/適用外/なし 適用外/適用外/なし
D 1/4/なし 1/4(暫定)/15・16 1/4(暫定)/15・16
E 1/4/なし 1/4(暫定)/18・19 1/4(暫定)/18・19
F 1.5/3.5/なし 1.5/3.5/なし 1.5/3.5/なし
G 5/0/なし 5/0/なし 5/0/なし

この試作・この条件では、集計初版の行判定は想定と23行一致・4行不一致、修正版は27行一致でした。AIの行分類は27行一致で、予定や時間単位を足す誤りは観察しませんでした。想定を知る同じAIによる照合であり、一般的な正答率や実務での正確さを示す数字ではありません。

かかった時間と測定範囲

端末の時計では、素材入力の開始からAI読み取りメモの保存・集計2版の実行完了までが19秒(同日UTC 08:09:29〜08:09:48)でした。処理だけの速度ではなく、自動でファイルを書き出してコマンドを実行した経過時間です。想定表の準備、全行の読み合わせ、出典調査、記事編集、表示確認は含みません。全作業の所要時間や、人の確認時間、削減時間は測っていません。

4. うまくいかなかったこと:算入しない理由を一つにまとめた

集計初版は、「取得確認済み・勤怠一致・期間内・1日か半日」を満たす行だけを足し、それ以外は0として返しました。日付の空欄も期間外と同じ枝に入っていました。そのため、数値の合計は想定と一致していても、15・16・18・19を人が調べる必要があることを出力から落としていました。

修正版では、最初に食い違い・必要欄の空欄を確認待ちへ分け、その後で対象者・期間・予定・取消・時間単位を判定しました。処理の要点は次の順序です。これは今回の限定した入力向けの説明で、実務用の完成した集計式ではありません。

食い違い・必要欄の空欄 → 確認待ち(日数未確定)
法定付与が10日未満 → 年5日の対象外
期間外・未来・予定・取消 → 算入外(理由を保持)
取得確認済み・勤怠一致 → 1日は1、半日は0.5、時間単位は算入外
社員ごとに確認済み分を合計し、確認待ちは別の行一覧に残す

確認待ちを合計から除いても、「取得しなかった0日」とは表示しません。元の記録と理由を残し、不足は確認済み分から計算した暫定値にします。

AIの読み取りでは、D・Eを「確認済み1、不足4、確認待ちあり」と出しました。行分類・算入日数の取り違えはありませんでしたが、不足4日が最終確定値に見える表現でした。「確認待ちがある場合、不足は暫定と明記する」と出力条件を補い、表示を直しました。分類の再試行や別モデルとの比較はしていません。

今回扱っていないのは、重複申請、訂正履歴、自由記述からの単位推定、基準日や法定付与自体が不明な人、例外的な付与方式です。前倒し・分割付与・基準日の統一を通常の式で処理することもしていません。そうした入力があれば通常集計から外し、人へ確認を渡す設計が必要です。

5. 実際の業務で使う前に確認すること

今回の確認待ちに対して、担当者へ渡す内容を整理しました。依頼の送信や、人による事実確認は未実施です。

行 人が確かめる原記録・内容
15 申請履歴と勤怠の出勤記録を照合し、取得の事実・日付・単位を確認する
16 勤怠の元記録を探し、半日取得の確認ができるか確かめる
18 日付のある申請原本を確認し、今回の管理期間に属するか確かめる
19 申請・承認・取消の履歴と勤怠を確認し、実際に取得したか確かめる

表を選ぶかシステムを見直すかは、計算できることだけでは決まりません。社員・基準日の対応、取消や訂正の履歴、確認待ちを担当者へ渡して解消する流れ、保存・出力まで確認します。今回、実データでの並行運用や労務担当者の操作は試していません。

社会保険労務士・労務担当者による確認は未実施です。法令への適合、集計の正確さ、負担軽減の効果は保証しません。自社の付与方式・就業規則の扱いは、労働基準監督署や社会保険労務士へ確認してください。年5日に達したことを、追加の年休取得を止める理由にしないことも必要です。

実際の個人別の勤怠・取得理由を、そのまま生成AIへ渡す運用はこの試作から導けません。AIへ入力できる情報と契約・設定を先に確認し、必要な範囲に絞ります。取得日の決定、元記録の訂正、本人への連絡は人の工程として残します。

6. 集計と、人へ確認を渡す工程から相談する

この小さな試作では、集計する条件だけでなく、集計できない行を残す条件が必要でした。AIで説明を整えても、元の申請・勤怠を照合する工程は残ります。

勤怠・給与・期限管理の支援では、現在の表やシステムを前提に、集計・確認・引き継ぎを整理します。進め方と費用はサービス・料金、今の困りごとは無料相談でお知らせください。