名簿や、会員リストの生年月日から、年齢を自動で出したい。そんなとき、毎年手作業で書き換えていては、手間がかかる上に、間違いも起こります。エクセルでは、DATEDIF関数を使えば、生年月日から、満年齢を自動で計算できます。
この記事では、年齢を計算する式の書き方、基準日を指定する方法、満年齢が合わないときの原因を、図解で説明します。
年齢を求める基本の式
=DATEDIF(生年月日,基準日,"Y")
「生年月日」と「基準日」の間の、満年数(満年齢)を返します。「基準日」には、年齢を数えたい日(今日など)を指定します。
今日の日付を基準にするときは、TODAY関数を使います。
=DATEDIF(B2,TODAY(),"Y")

基準日を、決まった日付にする
「4月1日時点の年齢」や、「入社日の年齢」のように、日付を固定したい場合は、TODAY関数の代わりに、基準日のセルを指定します。
=DATEDIF(B2,$E$1,"Y")
基準日を、E1のセルに入力しておき、絶対参照($E$1)で指定します。基準日を変えれば、全員の年齢が、一度に更新されます。
年齢の求め方の種類
| 求めたいもの | 式 | 説明 |
|---|---|---|
| 満年齢 | =DATEDIF(B2,TODAY(),”Y”) | 誕生日がきたら、1つ増える年齢 |
| 満年齢(月まで) | =DATEDIF(B2,TODAY(),”Y”)&”歳”&DATEDIF(B2,TODAY(),”YM”)&”か月” | 「36歳5か月」のような表示 |
| 満年数のみ(簡易) | =INT((TODAY()-B2)/365.25) | DATEDIF関数を使わない方法。うるう年の影響で、1日ずれることがある |
年齢が合わないときの原因
| 症状 | 原因 | 対処 |
|---|---|---|
| #NUM! と表示される | 生年月日が、基準日より後の日付 | 日付が正しいかを確認する |
| #VALUE! と表示される | 生年月日が、文字列として入力されている | 日付の形式に直して、入力し直す |
| 1つずれる | 基準日や、日付の形式が違う | 基準日と、セルの表示形式(シリアル値)を確認する |
| 年齢が、更新されない | 計算方法が「手動」になっている | 「数式」タブの「計算方法の設定」で、「自動」にする |
DATEDIF関数について知っておきたいこと
DATEDIF関数は、関数の候補の一覧に、表示されません。「=DATEDIF(」まで、すべて手で入力する必要があります。ただし、機能としては、エクセルの通常のバージョンで使えます。
単位の指定は、「”Y”」(年)、「”M”」(月)、「”D”」(日)、「”YM”」(年を除いた月数)、「”MD”」(年と月を除いた日数)などが使えます。DATEDIF関数の詳しい使い方は、別の記事で説明しています。
もう一歩進める|年齢に関する応用
年代で、グループ分けする
年齢の列を使って、「10代」「20代」のように、年代で分けたいときは、「=INT(C2/10)*10&”代”」と入力します。ピボットテーブルで、年代別の集計をするときに便利です。
特定の年齢の人だけを、色付けする
年齢の列に、条件付き書式を設定して、「20以上30未満」の人だけに色をつけると、世代別の確認が簡単になります。
和暦の生年月日から計算する
「昭和60年11月3日」のような、和暦で入力されたセルも、日付として入力されていれば、DATEDIF関数で計算できます。文字列として入っている場合は、日付の形式に変換してから、計算します。
学年の計算(4月1日基準)
学年は、4月1日時点の満年齢で決まります。基準日を、4月1日に指定して、DATEDIF関数で計算します。早生まれ(1月〜3月生まれ)の人の学年も、この方法で、確認できます。
年齢計算のよくある質問
数え年を、計算したいときは?
数え年は、「生まれた年を1歳とし、新年を迎えるたびに、1歳を加える」数え方です。「=YEAR(TODAY())-YEAR(B2)+1」で、求められます。
年齢を、固定の数字にしたいときは?
TODAY関数を使うと、ファイルを開くたびに、年齢が変わります。ある日付の年齢で、固定したいときは、基準日を、日付のセルで指定します。または、計算結果を、「値」として貼り付けると、固定できます。
生年月日を、日付として正しく入力する
年齢の計算がうまくいかない原因の多くは、生年月日が、日付として認識されていないことです。「1990/5/20」や「1990-5-20」のように、スラッシュやハイフンで区切って入力すると、エクセルが日付として認識します。「19900520」のような数字の並びや、「1990.5.20」のようなピリオド区切りは、文字列や数値として扱われるため、日付の計算ができません。
日付として認識されているかは、セルを右寄せで表示されているかで確認できます。左寄せで表示される場合は、文字列として入っている可能性があります。
年齢計算の使い道
- 名簿や会員リストに、年齢の列を自動で追加する
- 年代別(10代、20代…)に、人数を集計する
- 「20歳以上のみ」など、条件に合う人を、フィルターで絞り込む
- 入社日から、勤続年数を計算する(同じ関数を使えます)
誕生日が近い人を探す
誕生日が今月の人だけを探したいときは、MONTH関数で、生年月日の月を取り出して、今月と同じ数字かどうかを判定します。月ごとに、誕生日の人を一覧にしたいときに便利です。
年齢が1つずれるときの確認
誕生日の前日か、当日かで、年齢が変わります。DATEDIF関数は、誕生日の当日に、1つ年齢が上がる計算です。日本の法律では、誕生日の前日に、年齢が上がる扱いがありますが、通常の名簿や、会員管理では、当日で計算する方法が、使われます。
まとめ
- 満年齢は「=DATEDIF(生年月日,基準日,”Y”)」で求める
- 今日の年齢なら、基準日に、TODAY関数を使う
- 決まった日付で計算したいときは、基準日のセルを、絶対参照で指定する
- エラーが出たら、日付が、文字列になっていないかを確認する

コメント