Excel一覧 Excel操作・関数 データ操作 年齢計算

【Excel】年齢計算しようとしてDATEDIF関数が見つからない?【使えないときの原因と対処法】

Excelで生年月日から年齢を自動計算しようとして

=DATEDIF(A1, TODAY(), "Y")

のように入力したのに、「DATEDIF関数が出てこない」「関数一覧にない」「エラーになる」といったトラブルに遭遇していませんか?

実はこの DATEDIF関数、Excelには存在しているのに表示されない“隠れ関数” なんです。
本記事では、DATEDIF関数が使えないときの理由と、年齢計算の代替方法まで詳しく解説します。

DATEDIF関数とは?

DATEDIF(デートディフ)関数は、2つの日付の差を「年・月・日」単位で計算できる関数です。

基本構文:

=DATEDIF(開始日, 終了日, 単位)

単位一覧:

単位意味
"Y"年の差
"M"月の差
"D"日の差
"YM"月の差のみ(年は無視)
"MD"日の差のみ(月・年は無視)
"YD"日の差のみ(年は無視)

たとえば、A1に生年月日があるなら、次のように使います:

=DATEDIF(A1, TODAY(), "Y")

👉 A1セルの生年月日から今日までの「年齢」を求める式です。

【Excel】「yyyymmdd」形式から年齢を計算する方法【関数だけで簡単変換】

DATEDIF関数がExcelに出てこない理由

✅オートコンプリートに出てこない

DATEDIF関数は 古いバージョンのLotus 1-2-3との互換性のために残されている関数で、
現在のExcelでは関数一覧や候補(オートコンプリート)には表示されません

=DA と入力しても DATEDIF が候補に出ない!

✅数式バーでも説明が表示されない

他の関数と違って、引数の説明も表示されないので、構文を正しく覚えておく必要があります

DATEDIF関数が使えない・エラーになる原因と対処法

✅開始日と終了日の順番が逆

=DATEDIF(TODAY(), A1, "Y")

のように、今日の日付が先に来ていると #NUM! エラーになります。

正しくは:

=DATEDIF(A1, TODAY(), "Y")

👉 開始日(生年月日)→ 終了日(今日)の順!

✅セルに日付ではなく文字列が入力されている

A1に 1990年4月1日 のように文字列として入力されているとDATEDIFは正しく動作しません。

解決策:

  • セルを「日付」形式に設定する
  • または関数で日付に変換
    =DATEDIF(DATEVALUE(A1), TODAY(), "Y")

DATEDIF関数が不安なときの代替方法

DATEDIF関数に不安がある場合、数式で同様の年齢計算ができます。

✅年齢を整数で求める汎用数式

=INT((TODAY() - A1) / 365.25)

👉 年齢をおおよそで出したいときに使えます。うるう年にもある程度対応。

✅YEAR関数を使って正確な年齢計算

=YEAR(TODAY()) - YEAR(A1) - (TEXT(TODAY(),"MMDD") < TEXT(A1,"MMDD"))

👉 誕生日がまだ来ていない場合は1歳引く、正確な年齢が出る式です。

【Excel】「何歳何ヶ月」まで表示する年齢計算の方法【DATEDIF関数で簡単!】

DATEDIFが出ないのはバグではない!

現象実際の仕様
関数一覧にDATEDIFがない仕様です(非表示の互換関数)
数式バーに引数が出ない仕様です(説明が表示されません)
#NUM! エラーになる日付の順序が逆の可能性が高い
#VALUE! エラーになるセルに文字列や無効な日付がある

まとめ

  • DATEDIF関数は存在するが隠れ関数(候補に出ない)
  • 使い方は =DATEDIF(開始日, 終了日, "Y")
  • 日付の順序・形式に注意!
  • 不安なときは YEAR関数や INT式で代用可能

DATEDIFを知っていれば、年齢や勤続年数などの日付差をスマートに計算できます!

-Excel一覧, Excel操作・関数, データ操作, 年齢計算