
この人の年齢、今何歳だっけ?

入社から何年経ったかな?
Excelで日付計算をしようとした時に、こんな疑問を感じたことはありませんか?
誕生日リストから年齢を計算したり、プロジェクトの経過日数を把握したり…
日付に関する計算は意外と多く、手作業で計算するのは手間がかかりますよね。
この記事では、そんな悩みを一瞬で解決してくれるDATEDIF関数について、
基本から応用まで徹底的に解説していきます。
DATEDIF関数を使えば、年齢計算はもちろん、勤続年数や契約期間なども簡単に算出できるようになります。
この記事を読み終える頃には、DATEDIF関数を自信を持って使いこなせるようになっているでしょう!

この記事のゴール
- DATEDIF関数の基本的な構文と各引数の意味を理解し、年齢や勤続年数を正しく計算できるようになる。
- 「〇年〇ヶ月」といった形式で期間を表示する方法を習得し、実務で活用できるようになる。
- DATEDIF関数でよくあるエラーの原因と対処法を理解し、エラーが出ても自力で解決できるようになる。
DATEDIF関数とは?
DATEDIF関数は、2つの日付間の期間を、指定した単位(年、月、日など)の「満」の期間で計算してくれるExcel関数です。
具体的には、以下のようなデータの計算に非常に役立ちます。
年齢計算 | 誕生日から現在の正確な年齢を算出 |
勤続年数・在籍期間 | 入社日から現在までの勤続年数や在籍期間を算出 |
プロジェクト期間 | プロジェクトの開始日から終了日までの期間を算出 |
経過日数 | 特定の日付からどれくらいの日数が経過したかを算出 |
手入力では手間がかかる日付計算も、DATEDIF関数を使えば一瞬で正確な結果が得られます。
DATEDIF関数の基本的な使い方
構文
=DATEDIF(開始日, 終了日, 単位)
開始日 : | 期間の開始となる日付を指定します。 セル参照でも直接日付を入力しても構いません。 |
終了日 : | 期間の終了となる日付を指定します。 こちらもセル参照でも直接日付を入力しても構いません。 |
単位 : | 期間をどのような単位で計算するかを指定します。 二重引用符(” “)で囲んで入力します。 |
単位の一覧
単位 | 意味 | 結果 |
---|---|---|
“Y” | 年数 | 開始日から終了日までの満年数 |
“M” | 月数 | 開始日から終了日までの満月数 |
“D” | 日数 | 開始日から終了日までの日数 |
“YM” | 1年未満の月数 | 開始日から終了日までの期間における、年を除いた月数 |
“YD” | 1年未満の日数 | 開始日から終了日までの期間における、年を除いた日数 |
“MD” | 1ヶ月未満の日数 | 開始日から終了日までの期間における、月を除いた日数 |

具体的な例で使い方を見ていきましょう。
年齢の計算例
A列に誕生日が入力されているとき、B列に年齢を表示させる場合を考えます。
「〇歳」と表示する方法
例えば、A2セルに「1990/5/22」と入力されている場合、今日の時点での満年齢を計算するには、以下の数式をB2セルに入力します。
=DATEDIF(A2, TODAY(), “Y”)
この数式は、「A2セルに記載された誕生日」から「今日の日付(TODAY関数で自動取得)」までの「満年数」を計算します。

「〇歳〇ヶ月」と表示する方法
年齢だけでなく、経過月数も表示したい場合は、DATEDIF関数を複数組み合わせます。
=DATEDIF(A2, TODAY(), “Y”)&”歳”&DATEDIF(A2, TODAY(), “YM”)&”ヶ月”
この数式では、「”Y”」で満年齢を算出し、「”YM”」で満年齢を除いた月数を算出しています。そして、「&」演算子を使って、それぞれ「歳」と「ヶ月」という文字と結合しています。

勤続年数・在籍期間の計算例
入社日をA2セルに、現在の勤続年数と月数を計算する場合も同様です。
「〇年〇ヶ月」と表示する方法
年齢の計算と全く同じ考え方で、勤続年数や在籍期間を簡単に表示できます。
=DATEDIF(A2, TODAY(), “Y”)&”年”&DATEDIF(A2, TODAY(), “YM”)&”ヶ月”

DATEDIF関数をさらに便利に使おう
TODAY関数との組み合わせ
DATEDIF関数とTODAY関数を組み合わせることで、常に最新の年齢や期間を自動的に計算させることができます。
TODAY関数は、Excelを開いた時点のシステム日付を自動的に取得してくれる関数です。
上記で紹介した年齢や勤続年数の計算例では、すべてTODAY関数を終了日に指定していました。これにより、Excelファイルを開くたびに自動で年齢や期間が更新されるため、手動で日付を修正する手間が省けます。
=TODAY()
※引数は不要
和暦の文字列を日付として認識させる方法
DATEDIF関数は、基本的に西暦で日付を扱いますが、Excelの表示形式設定によっては和暦で入力された日付も正しく認識します。
もし和暦の文字列が日付として認識されない場合は、DATEVALUE関数を使うことで日付データに変換できます。DATEVALUE関数とは、「文字列として入力された日付」を、Excelが認識できる「日付値」に変換する関数です。
=DATEVALUE(日付文字列)
日付文字列: | 変換したい文字列を指定します。 セル参照でも、直接日付を入力しても構いません。 |

現在のExcelでは自動的に日付データとして認識されることがほとんどなので、DATEVALUE関数を使う場面は限られるかもしれませんね。
DATEDIF関数を使う上での注意点
関数候補に表示されない「隠し関数」であること
DATEDIF関数は、Excelの関数入力候補には表示されません。そのため、手入力で正確なスペルと構文を入力する必要があります。入力ミスをしないように注意しましょう。

開始日と終了日の順序が逆転するとエラーになること(#NUM!エラー)
DATEDIF関数では、**開始日が終了日よりも後の日付になると、「#NUM!」エラーが表示されます。**必ず「開始日 <= 終了日」となるように日付を設定してください。

まとめ
この記事では、ExcelのDATEDIF関数を使って年齢や期間を正確に計算する方法について解説しました。DATEDIF関数は、Excelの隠れた機能でありながら、日付計算において非常に強力なツールです。
DATEDIF関数をマスターすれば、誕生日からの年齢計算はもちろん、勤続年数やプロジェクトの経過日数など、日付に関するあらゆる計算が格段に楽になります。

ぜひ、今日からあなたのExcel作業にDATEDIF関数を取り入れて、データ管理を効率化してみてくださいね!