Excelで生年月日から年齢を計算しようとしたときに、
「うまく年齢が表示されない」「エラーが出る」「計算結果が変になる」などのトラブルはありませんか?
✔ #VALUE!
や #NUM!
のエラーになる
✔ DATEDIF関数を使っても正しく表示されない
✔ 数式は正しいはずなのに結果がゼロや空白になる
この記事では、Excelで年齢計算ができない原因とその解決方法を具体的に解説します。
目次
そもそも使われる関数は?
年齢を求める代表的な関数は以下の通りです:
=DATEDIF(生年月日, TODAY(), "Y")
または
=YEAR(TODAY()) - YEAR(生年月日セル) - (TEXT(TODAY(),"MMDD") < TEXT(生年月日セル,"MMDD"))
【Excel】年齢計算しようとしてDATEDIF関数が見つからない?【使えないときの原因と対処法】
❗ よくある原因と解決策
✅セルの値が「日付形式」になっていない
🔍 症状
- 生年月日を入力しているつもりが、文字列や数値になっている
DATEDIF
やTODAY
と組み合わせると#VALUE!
エラーになる
✅ 対処法
- セルを右クリック →「セルの書式設定」→「日付」に変更
- または
DATEVALUE
関数を使って日付に変換
✅DATEDIF関数が入力ミス or 使用禁止になっている
🔍 症状
- 関数名が認識されず
#NAME?
エラーになる DATEDIF
を入力しても候補に出てこない
✅ 対処法
DATEDIF関数は隠し関数のため、関数候補に出てきません
→ 必ず手入力で=DATEDIF(...)
を書きましょう正しい構文:
開始日
(生年月日)は終了日
(今日)より前でなければなりません。
✅日付の順序が逆になっている
🔍 症状
#NUM!
エラーになる- 計算式は合っているのに空白や誤差が出る
✅ 対処法
- 生年月日(過去)が前(第1引数)に来ていないとエラーになります
✅TODAY関数やセル参照の形式ミス
🔍 症状
- 日付のセルを参照しているのに
#VALUE!
や#NUM!
になる - 関数が空白を読み込んでいる
✅ 対処法
- TODAY関数は常に
=TODAY()
の形で使う - 指定日のセル(例:B1など)に値がなければエラーになる →
IFERROR
でカバー=IFERROR(DATEDIF(A1,B1,"Y"), "")
正しい年齢計算の例(誕生日がA1セルにある場合)
✅ 満年齢を出す:
=DATEDIF(A1, TODAY(), "Y")
✅「〇歳〇ヶ月」形式で出す:
=DATEDIF(A1, TODAY(), "Y") & "歳" & DATEDIF(A1, TODAY(), "YM") & "ヶ月"
✅より厳密に誕生日が来てるかを判定:
=YEAR(TODAY()) - YEAR(A1) - (TEXT(TODAY(),"MMDD") < TEXT(A1,"MMDD"))
📝 表で一括で年齢を計算したいとき
氏名 | 生年月日 | 年齢計算式 |
---|---|---|
佐藤太郎 | 1990/04/10 | =DATEDIF(B2, TODAY(), "Y") |
山田花子 | 2005/11/22 | =DATEDIF(B3, TODAY(), "Y") |
✅ 複数人の年齢も自動で一括算出できます!
✅ まとめ:原因を知れば年齢計算はカンタン!
よくあるエラー | 主な原因 | 解決策 |
---|---|---|
#VALUE! エラー | セルが文字列 or 空白 | セルを日付形式にする、DATEVALUEで変換 |
#NUM! エラー | DATEDIFの開始日と終了日の順序が逆 | 順序を修正(生年月日→今日) |
関数候補に出ない | DATEDIFは非表示関数 | 手入力で使う |
結果がゼロや空白 | 空白セル、数式の誤り | 入力値をチェック、IFERRORで対応 |
✅ おすすめの関数組み合わせ
- TODAY関数 → 今日の日付を自動取得
- DATEDIF関数 → 年・月・日の差分を正確に計算
- TEXT関数 → 誕生日の比較や表示整形に活用
- IFERROR関数 → 空白やエラーの見栄えを整える