生年月日から年齢を出したい、入社日から勤続年数を計算したい。そんなときに便利なのが DATEDIF(デイトディフ)関数です。2つの日付の間の「年数」「月数」「日数」を求められます。
ただし、DATEDIFは関数の候補に表示されないため、「使えない」と感じる人も多い関数です。この記事では、年齢と勤続年数の計算方法を図解し、使えないときの原因と対処法も説明します。
=DATEDIF(開始日,終了日,単位)
DATEDIF関数の基本|3つの引数と単位
DATEDIF関数は、開始日と終了日の間の期間を、指定した単位で返します。引数は次の3つです。
- 開始日:期間の始まりの日付(生年月日や入社日)
- 終了日:期間の終わりの日付(今日の日付や基準日)
- 単位:結果を年・月・日のどれで出すか。半角のダブルクォーテーションで囲んで指定します
| 単位 | 意味 | 結果の例 |
|---|---|---|
| “Y” | 満の年数 | 2年3か月なら2 |
| “M” | 満の月数 | 2年3か月なら27 |
| “D” | 満の日数 | 10日間なら10 |
| “YM” | 年を除いた月数 | 2年3か月なら3 |
| “MD” | 年と月を除いた日数 | Microsoftが不具合を案内しており、使用は避ける |
生年月日から年齢を計算する
年齢は、単位に “Y” を指定します。終了日に基準日(または TODAY() で今日の日付)を指定すれば、満年齢が求められます。

今日の年齢を自動で表示したいときは、終了日に TODAY() を入れます。ファイルを開くたびに、その日の年齢に更新されます。
=DATEDIF(B2,TODAY(),"Y")
入社日から勤続年数(○年○か月)を計算する
勤続年数を「6年6か月」のように表示したいときは、”Y” と “YM” を組み合わせます。年の部分は “Y”、年を除いた月の部分は “YM” で求め、「&」でつなげます。

DATEDIFが使えないときの原因と対処法
DATEDIFは、関数の候補一覧やダイアログに表示されません。それでも、式を直接入力すれば使えます。うまく動かないときは、次の点を確認してください。
- 開始日が終了日より後になっている:#NUM! エラーになります。開始日と終了日の順番を確認します
- 日付が文字列になっている:「1990/5/15」が左寄せの場合は、文字列の可能性があります。日付の形式に直します
- 引数の区切りや「”」が全角になっている:カンマやダブルクォーテーションは半角で入力します
- “MD” を使っている:結果が正しくならないことがあるため、使用は避けます
- 結果が日付の形で表示される:セルの表示形式を「標準」または「数値」に変更します
候補に出ないのはなぜ?
DATEDIF関数は、古い表計算ソフトとの互換性のために残されている関数で、Excelの関数一覧には載っていません。ただし、現在のExcelでも、直接入力すれば問題なく使えます。
まとめ
- DATEDIF関数は「=DATEDIF(開始日,終了日,単位)」で、期間を年・月・日で求める
- 年齢は単位 “Y”、勤続年数は “Y” と “YM” を組み合わせる
- 今日の年齢は終了日に TODAY() を使う
- 関数の候補には出ないが、直接入力すれば使える
- 使えないときは、日付の順番・文字列・全角を確認する
年齢や勤続年数を手計算する必要がなくなります。名簿や管理表で、ぜひ活用してください。


コメント