エクセルで年齢を計算する方法|誕生日から自動で出すDATEDIF関数と、基準日を決めるコツ

年齢の計算|生年月日から 日付・文字列

名簿や、会員リストの生年月日から、年齢を自動で出したい。そんなとき、毎年手作業で書き換えていては、手間がかかる上に、間違いも起こります。エクセルでは、DATEDIF関数を使えば、生年月日から、満年齢を自動で計算できます。

この記事では、年齢を計算する式の書き方、基準日を指定する方法、満年齢が合わないときの原因を、図解で説明します。

年齢を求める基本の式

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

「生年月日」と「基準日」の間の、満年数(満年齢)を返します。「基準日」には、年齢を数えたい日(今日など)を指定します。

今日の日付を基準にするときは、TODAY関数を使います。

=DATEDIF(B2,TODAY(),"Y")
DATEDIF関数で、生年月日から今日の年齢を求める式の図解

基準日を、決まった日付にする

「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関数を使う
  • 決まった日付で計算したいときは、基準日のセルを、絶対参照で指定する
  • エラーが出たら、日付が、文字列になっていないかを確認する

コメント

タイトルとURLをコピーしました