1. 試したこと:日数と、まだ確定できない行を別に出す
年休の明細を足しても、そのまま年5日の取得実績にはなりません。時間単位、未来の予定、取消、前の管理期間の取得は分ける必要があります。さらに、申請と勤怠が食い違う行や空欄は、取得ゼロと決めずに残します。
今回は、次の順に試しました。
- 架空の社員一覧と明細を作り、集計前に想定の正解表と根拠の明細番号を保存する。
- 作業しているAI自身に、同じ一覧・明細とルールを渡して読み取らせる。
- 手元の短いJavaScriptで集計初版と修正版を動かす。
- 想定表と両方の結果を、社員・明細ごとに読み合わせる。
年休管理の解説記事にある未実施の想定例とは別に、今回は手元で動かした結果を残します。一般的な制度の解説や、勤怠管理の方法の選び方は既存記事をご覧ください。
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で説明を整えても、元の申請・勤怠を照合する工程は残ります。
勤怠・給与・期限管理の支援では、現在の表やシステムを前提に、集計・確認・引き継ぎを整理します。進め方と費用はサービス・料金、今の困りごとは無料相談でお知らせください。