結論:生年月日と基準日の2つを決める
2つの日付があれば、エクセルでは =DATEDIF(A2,B2,"Y") で期間内の完全な年数を求められます。A2が生年月日、B2が基準日です。誕生日を迎えたら1歳増える数え方の名簿に使う式で、単に西暦の年だけを引く式とは結果が違います。
「今日」「年度末」「4月1日」を先に区別するのが要点です。2026年度末の3月31日と翌日の4月1日も別の日付です。ここでは法令上の年齢到達日や学年判定ではなく、Excelの計算結果を確認します。
年齢計算同じ生年月日と基準日で満年齢を照合する登録なしで使えます開く
手順:基準日を固定してから式を入れる
過去や将来の名簿には、固定した基準日が使えます。今日の名簿に使う TODAY() は現在の日付を返すため、後日再計算すると結果が変わる場合があります。
| 名簿の用途 | B2に入れる式・日付 | 年数を求める式 |
|---|---|---|
| 特定日時点 | =DATE(2026,9,30) |
=DATEDIF(A2,B2,"Y") |
| 今日の時点 | =TODAY() |
=DATEDIF(A2,B2,"Y") |
| 2026年度末の3月31日 | =DATE(2027,3,31) |
=DATEDIF(A2,B2,"Y") |
| 2027年4月1日 | =DATE(2027,4,1) |
=DATEDIF(A2,B2,"Y") |
生年月日も、例えば =DATE(2000,10,1) と入力できます。日付を文字として見せることと、日付の値として計算することは別です。結果のセルは「標準」や数値で表示すると、年数を日付と取り違えにくくなります。
何歳何か月と表示する例は、=DATEDIF(A2,B2,"Y")&"歳"&DATEDIF(A2,B2,"YM")&"か月" です。残りの日数まで足す "MD" は、今回の式に含めていません。Microsoftが既知の制限を案内しているためです。
Excel本体で6条件を比較した
2026年9月30日、WindowsのExcel 16.0・Build 20326、新規の空ブックで6条件(n=6)を計算しました。日付はDATE関数、結果はDATEDIFのYとYMで得ています。あわせて年齢計算ツールの現行ロジックにも同じ日付を渡しました。
| 生年月日 | 基準日 | ExcelのY | ExcelのYM | 年だけの引き算 | 年齢計算ツール |
|---|---|---|---|---|---|
| 2000/10/1 | 2026/9/30 | 25 | 11 | 26 | 25 |
| 2000/10/1 | 2026/10/1 | 26 | 0 | 26 | 26 |
| 2000/4/1 | 2027/3/31 | 26 | 11 | 27 | 26 |
| 2000/4/1 | 2027/4/1 | 27 | 0 | 27 | 27 |
| 2000/2/29 | 2027/2/28 | 26 | 11 | 27 | 26 |
| 2000/2/29 | 2027/3/1 | 27 | 0 | 27 | 27 |
Yの結果はツールと6件中6件一致しました。一方、YEAR(B2)-YEAR(A2) は3件で1大きくなりました。この6条件では、年の差だけで名簿を作ると誕生日前の区別ができませんでした。
一次資料:式の意味と日付の扱い
関数の説明はMicrosoftの現行本文に照合しました。以下の短い引用は原文の抜粋です。
「期間内の完全な年数。」
— Microsoft「DATEDIF 関数」単位Yの説明 https://support.microsoft.com/ja-jp/excel/functions/datedif-function(2026-09-30 到達)
Yは年の数字同士を引くだけの指定ではありません。同じページには開始日が終了日より大きいとエラーになることと、MDの既知の問題も記載されています。
「TODAY 関数は、現在の日付のシリアル番号を返します。」
— Microsoft「TODAY 関数」 https://support.microsoft.com/ja-jp/excel/functions/today-function(2026-09-30 到達)
後から同じ結果を再現したい名簿では、基準日の記録が手掛かりになります。「今日」を使ったのか、固定した日を使ったのかで式の意味が変わります。
「DATE 関数は、特定の日付を表す連続したシリアル値を返します。」
— Microsoft「DATE 関数」 https://support.microsoft.com/ja-jp/excel/functions/date-function(2026-09-30 到達)
DATEで日付を組み立てても、存在しない月日が自動調整される場合があります。元の生年月日の正しさまで関数が保証するわけではありません。
間違えやすい点
式・入力値・基準日は別々に点検できる箇所です。
| 困った状態・取り違え | 確認する点 |
|---|---|
| 1歳大きい | 年だけを引いていないか、基準日はいつか |
| 年度末と4月1日を同じにした | 3月31日と4月1日は別の日付 |
#NUM! が出る |
生年月日と基準日の前後関係 |
| 年齢が日付のように見える | 結果セルの表示形式 |
| DATEDIFが入力候補に見当たらない | 本記事の式は関数名を直接入力する形。候補一覧の表示までは未検証 |
2月29日生まれの例も、表にあるExcelの結果だけを示しています。誕生日の前日、学齢、制度の適用条件などをこの表から判断する記事ではありません。
測っていないこと・ここから先は推論
Excelの全バージョンやすべての日付の組合せは測っていません。Mac版・Web版・古いブック・文字列の日付の地域設定の違い、1900年付近の境界、関数候補の表示は検証対象外です。6条件の一致から、全日付での一致率は出せません。
学年や法令上の年齢到達日も今回の検算に含めていません。名簿の目的が制度の対象判定であれば、必要なのはこの年数と同じ定義かどうか、別途その制度の資料による確認が残ります。
次の1手
名簿の1行と同じ生年月日・基準日を年齢計算へ入れると、誕生日を基準にした満年齢を照合できます。比較するときの基準日をそろえることが出発点です。
年齢計算名簿の1行を同じ基準日で照合する登録なしで使えます開く
次に使う道具:年齢計算