Excel一覧 Excel関数 年齢計算 計算・数値処理

【Excel】年齢計算でDATEDIF関数が見つからない原因と対処法

Excelで年齢を計算しようとしたとき、
「DATEDIF関数が候補に出てこない」
「関数一覧に存在しない」
と戸惑った経験はありませんか。

誕生日から年齢を求める処理は、名簿管理・人事資料・顧客台帳など、実務で頻繁に発生します。しかし、ネットでよく紹介されているDATEDIF関数をそのまま使おうとしても、「使えない」「見つからない」という壁にぶつかるケースは非常に多いのが実情です。

本記事では、
なぜDATEDIF関数が見つからないのか
実務で正しく年齢を計算する方法は何か
DATEDIFに頼らずに安全に設計する考え方
を、背景から丁寧に解説します。

✅ DATEDIF関数が「見つからない」と言われる理由

DATEDIF関数は、Excelで年齢計算を調べると必ずと言っていいほど登場します。しかし、この関数は他の関数とは性質がまったく異なる存在です。

ここを理解せずに使おうとすると、
「自分のExcelだけ壊れているのでは?」
「バージョンの問題?」
と誤解しやすくなります。

・関数一覧や入力補助に表示されない理由

DATEDIF関数は、Excelの関数一覧やオートコンプリートに表示されません。これは不具合ではなく、仕様として意図的に非表示にされています。

そのため、
=DA…
と入力しても候補に出ず、「存在しない関数」と勘違いされがちです。

・非推奨扱いだが削除されていない関数

DATEDIFは、古いExcel互換性のために残されている関数です。公式ドキュメントでも積極的な使用は推奨されておらず、「知っている人だけが使える裏関数」のような扱いになっています。

つまり、
使えるが、案内されない
壊れてはいないが、公式に勧められていない
という、非常に誤解を生みやすい立ち位置なのです。


✅ DATEDIF関数を使った年齢計算の基本構文

DATEDIF関数は、手入力すれば動作します
まずは、正しい書き方を確認しておきましょう。

・構文:生年月日から年齢を求める

=DATEDIF(生年月日, 基準日, "Y")

例えば、
A2に生年月日
B2に基準日(TODAYなど)
が入っている場合、

=DATEDIF(A2, B2, "Y")

と入力すれば、満年齢が返ります。

・よくある入力ミス

・"Y" を Y と書いてしまう
・日付セルが文字列になっている
・開始日と終了日を逆にしている

DATEDIFはエラーメッセージが分かりにくいため、少しのミスでも「使えない関数」と感じやすい点に注意が必要です。


✅ DATEDIF関数が使えないと感じる実務上の落とし穴

DATEDIFは一見便利ですが、実務では安心して使えない場面も多く存在します。

・関数が見つからないことで属人化する

DATEDIFは、知らない人が見ると
「なぜこの関数が使われているのか分からない」
状態になりやすい関数です。

引き継ぎ時に説明が必要になり、
「このExcel、特殊なことしてますよね?」
と言われる原因になりがちです。

・将来の仕様変更リスク

現在は動いていても、将来のExcel仕様変更で挙動が変わる可能性を完全には否定できません。非推奨関数である以上、「ずっと安全」とは言い切れないのが現実です。


✅ DATEDIFを使わない年齢計算の安全な方法

実務では、DATEDIFを使わずに年齢を計算する方法を知っておく方が安心です。

・YEAR関数とIF関数を使う方法

考え方はシンプルです。

  1. 基準年 − 生まれた年 を求める
  2. 誕生日を迎えていなければ −1 する

この考え方を式にすると、

=YEAR(基準日) - YEAR(生年月日) - IF(TEXT(基準日,"MMDD") < TEXT(生年月日,"MMDD"), 1, 0)

となります。

・なぜこの方法が実務向きなのか

・すべて通常関数で構成されている
・数式の意味を説明しやすい
・関数一覧に表示され、理解されやすい

「誰が見ても分かる設計」は、長く使うExcelほど重要になります。

DATEDIFを使わない年齢計算は、
「IF関数の中に計算式をどう組み込むか」が理解できていないと、
逆に分かりにくい数式になってしまうことがあります。

IF関数に計算式を入れるときの考え方や、
条件付き計算を安全に設計するコツについては、
【Excel】ExcelのIF関数に計算式を入れる方法|条件付きの自動計算を徹底解説!
を参考にしてみてください。


✅ 年齢計算でよくある実務トラブルと注意点

年齢計算は単純に見えて、意外と落とし穴が多い処理です。

・基準日が固定されていない

TODAY関数を使うと、日付が変わるたびに年齢も変わります。
帳票用途によっては、基準日をセルに明示的に置く設計が安全です。

TODAY関数を使えば、年齢を自動で更新することができますが、
その仕組みを理解していないと、
「いつの時点の年齢なのか」が分からないExcelになりがちです。

TODAY関数による年齢計算の仕組みと、
自動更新が向いているケース・向いていないケースについては、
【Excel】TODAY関数を使って年齢を自動計算する方法【生年月日からカンタン算出】
を参考にしてみてください。

・生年月日が文字列になっている

CSV取り込みや手入力では、日付が文字列として扱われることがあります。この場合、どの関数を使っても正しく計算できません。

まずは日付として認識されているかを確認することが重要です。


✅ もう一歩進んだ考え方:VBAでの年齢計算設計

Excel関数だけでなく、VBAを使う現場では、
「年齢計算を共通処理としてまとめる」
設計もよく行われます。

VBAであれば、
・基準日を統一できる
・ロジックを1か所で管理できる
・帳票ごとの差異を減らせる
といったメリットがあります。

関数での年齢計算に違和感を覚え始めたら、
「計算をどこに持たせるべきか」
という視点で見直すのも一つの選択肢です。


 

✅ まとめ:DATEDIFが見つからなくても年齢計算はできる

  • DATEDIF関数は存在するが、一覧に表示されない仕様
  • 非推奨扱いのため、実務では誤解を生みやすい
  • 通常関数を組み合わせた年齢計算の方が安全な場面も多い
  • 誰が見ても理解できる設計が、Excelを長く使うコツ

DATEDIFが見つからなくても、Excelで年齢計算は問題なく実現できます。
「動くかどうか」だけでなく、「伝わるかどうか」を意識した設計に切り替えることで、Excelはより安心して使えるツールになります。

年齢計算ひとつを取っても、
「どの関数を使うか」だけでなく、
「誰が使い、どのくらいの期間運用するのか」を考えて設計することが重要です。

Excel業務全体をどこまで自動化すべきか、
ツールやマクロを導入する前に考えておきたい判断軸については、
Excel業務改善はどう判断すべきか?ツール・自動化に迷う前の設計思考
で詳しく解説しています。

    -Excel一覧, Excel関数, 年齢計算, 計算・数値処理