生年月日から今日時点の年齢を自動計算する

名簿などを作成していて、年齢を表示する必要がある場合に毎回計算するなんてめんどくさいことしていませんか?
今回は生年月日から現在年齢を自動で計算する方法についてご紹介します。

生年月日から年齢を算出する

生年月日から年齢を算出するにはDATEDIF関数を使用します。

Microsoftの公式説明ページによると、以下の通り。

書式
DATEDIF(開始日,終了日,単位)

開始日 期間の最初に、または開始日を表す日付。 日付が入力する (たとえば、「2001/1/30」) は、引用符内のテキスト文字列、シリアル番号 (たとえば、36921 2001 年 1 月 30 日を表す、1900 年日付システムを使っている場合)、またはその他の数式または関数の結果 (例。DATEVALUE(“2001/1/30”)) します。


終了日 期間の最後に、または終了日の日付を表す日付。
注: 開始日が終了日よりも大きい場合、結果は #NUM! になります。


単位 必要な情報の種類が返されます。

単位 戻り値

“Y”

期間の年数です。

“M”

期間の月数です。

“D”

期間の日数です。

“MD”

開始日から終了日までの日数です。 日付の月数および年数は無視されます。

重要: 制限事項があるため、”MD” 引数の使用はお勧めしません。 以下の既知の問題のセクションを参照してください。

“YM”

開始日から終了日までの月数です。 日付の日数および年数は無視されます。

“YD”

開始日から終了日までの日数です。 日付の年数は無視されます。

DATEDIF関数の公式説明ページ(https://support.office.com/ja-jp/article/datedif-%E9%96%A2%E6%95%B0-25dba1a4-2812-480b-84dd-8b32a451b35c)

 

要は開始日(=生年月日)と終了日(現在日付)と単位(どういう表示の仕方をするか)を指定すればOKということですね。早速やってみましょう。

まずは生年月日を入力。ここでは西暦と和暦でやってみます。さらに、文字列も混ぜてみます。(下2つが文字列です)

日付を入力

この日付をもとに現在日付時点での年齢を自動算出してみます。

DATEDIF関数を入力
  • 第一引数に生年月日を指定
  • 第二引数に現在日付を指定(TODAY関数を使用)
  • 第三引数に”y”を指定(大文字でも小文字でもOK)

さらっとTODAY関数が出ていますが、これは現在日付を算出する関数です。エクセルを開く日付が変わればTODAY関数が返す日付も変わります。なので、エクセルを開いた段階で年齢を自動計算するには便利。

C3セルに入力した計算式をC6までコピーすると下のようになります。

DATEDIF関数による年齢自動計算結果

この記事を書いているのが2019年7月4日なので、年齢あってますね!
個人的に日付形式のセルに対して年齢計算がされるのは想定通りでしたが、文字列で入力した日付に対しても年齢計算がされるのは驚きです!!

文字列の日付でも年齢計算されている

年齢だけでなく、月数も算出する

上記では年齢だけを算出しましたが、年齢+月齢も算出してみます。

ちょっと複雑になりますが、以下のように計算式を設定。DATEDIF関数の第三引数に”YM”を指定することで月齢を算出させます。

年齢と月齢を算出

D3セルに設定した計算式をD6セルまでコピーすれば完成。

想定通りの動きですね。

同じように、今まで何日生きてきたのかも算出することができます。その場合にはDATEDIF関数の第三引数に”D”を指定すればOKです。

まとめ

生年月日から年齢を自動算出する方法についてご紹介しました。数百人、数千人を管理しているエクセルでイチイチ年齢の計算なんかしてられません。そんな時に上記でご紹介したDATEDIF関数を思い出してください!

非常に便利なDATEDIF関数ですが、”=DATEDIF(“と入力しても入力補助が効きません。(入力補助とは、この関数ではこんな引数が必要です みたいなアシストをしてくれる機能のこと)
もともと別の表計算ソフト(Lotus)の機能をエクセルでも使用できるようにしているそうで、扱いが雑な感じです(笑)

ということで、

年齢を自動計算するにはDATEDIF関数 書式:DATEDIF(開始日,終了日,単位) を使用する

でした。