いまさら聞けないExcelの使い方講座

【Excel】エクセルのYEARFRAC関数で生年月日から年齢を求める方法

生年月日から年齢を求める!

DATEDIF関数以外で生年月日から年齢を求めるには

 生年月日から年齢を求めたいときや、社員の勤続年数を求めたいときなど、2つの日付の間の期間を求めたいときには、DATEDIF関数が使用されることが多いですよね。本連載でも何度か紹介してきました(生年月日から年齢を求めるテク社員の勤続年数を求めるテク)。

 DATEDIF関数は、[関数の挿入]ダイアログボックスで検索しても関数の一覧に出てこなかったり、セルに直接入力したときに予測変換されない(数式オートコンプリートを使用できない)など、使いづらいと思っている人も多いかもしれません。

 実はExcelでは、DATEDIF関数以外の関数でも、2つの日付の間の期間を求めることができます。今回は、ExcelのYEARFRAC関数を使って、生年月日から年齢を計算する方法を解説します。

YEARFRAC関数を使って生年月日から年齢を計算してみよう

 次の「従業員名簿」のD列(①)には、社員の生年月日が入力されています。このデータをもとに、E列(②)に社員の年齢を求めてみましょう。

D列(①)の社員の生年月日をもとに、E列(②)に年齢を求めてみましょう

 ではまず、YEARFRAC関数の説明から始めましょう。YEARFRAC関数は、引数で指定した開始日から終了日までの期間が1年間に占める割合を求める関数で、書式は次のとおりです。

YEARFRAC関数の書式

 1つ目の引数「開始日」には期間の最初の日付、2つ目の引数「終了日」には期間の最後の日付を指定します。3つ目の引数「基準」は、計算の際に使われる基準日数を0~4の値で指定します。ここでは、1年を365日(うるう年は366日)で計算したいので、引数に「1」を指定します。

 たとえば、「開始日」に2022/1/1、「終了日」に2022/6/30を指定した場合、結果は「0.49・・・」となります。また、「開始日」に2022/1/1、「終了日」に2023/1/1を指定した場合、期間は365日なので、結果はちょうど「1」になります。

 では実際に、YEARFRAC関数で年齢を求める数式を作成していきましょう。まず、セル「E4」に「=YEARFRAC(D4,」(③)と入力します。1つ目の引数には、セル「D4」(生年月日)を指定します。

「E4」に「=YEARFRAC(D4,」(③)と入力し、1つ目の引数にはセル「D4」(生年月日)を指定

 2つ目の引数には、セル「F2」(現在の日付「2022/2/23」が入力されたセル)を指定します。あとでセルをコピーしたときに参照先が変わらないように、絶対参照にします。F4キーを押して「$F$2」と変換し、続けて「,」を入力します(④)。

F4キーを押して「$F$2」と変換し、続けて「,」を入力(④)

 3つ目の引数の「基準」には「1」を指定し、数式の最後に「)」を入力します(⑤)。数式を入力し終えたら、[Enter]キーを押します。

3つ目の引数の「基準」には「1」を指定し、数式の最後に「)」を入力(⑤)

 すると、セル「E4」に「21.76…」と表示されます(⑥)。これは、1つ目の引数で指定した「2000/5/18」から、2つ目の引数で指定した「2022/2/23」までの期間が1年間に占める割合を示しています。1年間を「1」としたとき、「21.76…」の大きさであることから、この期間は「21.76…年」になります。そして、ここでは満年齢を求めたいので、小数点以下の数値を切り捨てます。

セル「E4」に「21.76…」と表示されます(⑥)

 数値を切り捨てたいときには、ROUNDDOWN関数を使います。ROUNDDOWN関数の書式は次のとおりです。

ROUNDDOWN関数の書式

 1つ目の引数には、切り捨てる対象の数値を指定し、2つ目の引数には、切り捨てを行う桁数を指定します。小数第1位で切り捨てて整数にする場合は、「0」を指定します。

 では、先ほどセル「E4」に入力した数式を、ROUNDDOWN関数を使って修正していきます。まず、数式の先頭に「ROUNDDOWN(」(⑦)と入力します。ROUNDDOWN関数の1つ目の引数は、切り捨てる対象の値「YEARFRAC(D4,$F$2,1)」(⑧)になります。

数式の先頭に「ROUNDDOWN(」(⑦)と入力。1つ目の引数は、切り捨てる対象の値「YEARFRAC(D4,$F$2,1)」(⑧)になります

 続いて、ROUNDDOWN関数の2つ目の引数に「0」を指定します。今回は、小数点以下の数を切り捨てるので「0」を指定します。数式を入力し終えたら「)」を入力し(⑨)、[Enter]キーを押します。

数式を入力し終えたら「)」を入力し(⑨)、[Enter]キーを押します

 セル「E4」の値が切り捨てられて、整数になりました(⑩)。

「E4」の値が切り捨てられて、整数になりました(⑩)

 オートフィルを使って、セル「E4」の数式をE列のほかのセルにもコピーします(⑪)。

「E4」の数式をE列のほかのセルにもコピーします(⑪)

 E列に社員の年齢を求めることができましたね。

年齢を調べるにはYEARFRAC関数を使おう!

 今回は、ExcelのYEARFRAC関数を使って、生年月日から年齢を計算する方法を解説しました。今回のように、2つの日付の間の年数を調べる場合は、端数の処理を行う必要があり少し面倒ですが、[関数の挿入]ダイアログボックスや、数式オートコンプリート機能を使用できるので、入力がラクという人もいるかもしれません。DATEDIF関数と比較して、使いやすい方法でやってみてくださいね。