以前、別の記事でDATEDIF関数を使って年齢を求める方法について書いたのですが、紹介したDATEDIF関数は関数の一覧に入っていないので使いづらい、ほかに方法はないのかと質問いただきました。
そこでご紹介したのがROUNDDOWN関数とYEARFRAC関数を組み合わせて年齢を求める方法です。ROUNDDOWNとYEARFRAC関数なら、関数の挿入画面で探せば出てきます。
この記事では、ROUNDDOWN関数とYEARFRAC関数を使って年齢を求める方法についてご紹介します。
ExcelでDATEDIF関数を使わずに年齢を求める方法はない?
ROUNDDOWN関数とYEARFRAC関数を組み合わせれば年齢を求めることができる
DATEDIF関数は、関数一覧には表示されないため、自分で手入力するしかありません。それだと使いづらいから他に年齢を求められる関数はないかと質問いただきました。
年齢を求めるだけの関数はないので、ROUNDDOWN関数とYEARFRAC関数を合わせ使いする方法で年齢を求めてみます。※関数の中に他の関数を使うことを「ネスト」といいます。
サンプルとして下の図のように開始日、終了日を入力しました。年齢と入ったセルの下に年齢を求める関数を入力していきます。

年齢を求めたいセルを選択し、数式バーの左側にあるfx(関数の挿入)ボタンをクリックします。

関数の挿入画面が開いたら、関数の分類を「数学/算数」に変更し、関数名の中から「ROUNDDOWN」を見つけてクリック、OKボタンをクリックします。

「ROUNDDOWN」は数値を指定した桁数で切り捨てる関数です。
ROUNDDOWNの引数にある「数値」にYEARFRACを呼び出す
ROUNDDOWNの関数の引数画面が開いたら、「数値」の枠内をクリックしてから、数式バーの左側にある「関数ボックス」横の▼をクリック→「その他の関数」をクリックします。

関数の挿入画面が開いたら、関数の分類を「日付/時刻」に切り替え、関数名の中から「YEARFRAC」をクリック、OKボタンをクリックします。

YEARFRACの引数「開始日」「終了日」「基準」を入力する
関数の引数画面がYEARFRACになっていることを確認し、開始日の枠内をクリックしてから開始日である生年月日が入力されているセルをクリックします。

次に、終了日の枠内をクリックしてから、終了日となる日付が入っているセルをクリックします。

基準の枠内に「1」と入力します。※Microsoftサポート YEARFRAC関数

数式バーの「ROUNDDOWN」にマウスポインタを合わせてクリックし切り替え、ROUNDDOWNの「桁数」に0と入力してOKボタンをクリック
数式バーのROUNDDOWNの上にマウスポインタを合わせてクリックし、関数の引数画面をROUNDDOWNに切り替えます。
ROUNDDOWNの引数の画面に戻ったことを確認し、桁数の枠内に「0」と入力してOKボタンをクリックします。

年齢を表示したいセルに「74」と入力されていればOKです。

年齢を求めるのにYEARFRACだけを使わない理由は?
YEARFRAC関数で求めた経過年数は小数点表示になることがあるのでROUNDDOWN関数を用いて年未満の数値を切り捨てることで満年数を求める

開始日である生年月日から今日の日付までの経過年数(年齢)を知りたいだけなら、YEARFRACだけでもいいんじゃない?
実は、ROUNDDOWN関数を使わずにYEARFRACだけで経過年数を求めると…

小数点の値まで出てきてしまいます。これだと年齢と見るのは難しいですよね。

小数点以下を表示しない表示形式を使うと値が四捨五入されてしまう

じゃあ、小数点以下を表示しないように設定すればいいんじゃない?
そうですね、Excelには小数点以下をどう表示するかを設定できるボタンがありましたね。「ホーム」タブの中にある「小数点以下の表示桁数を減らす」ボタンを使ってみましょう。

「小数点以下の表示桁数を減らす」ボタンを整数になるまでクリックしてみると「74」ではなく「75」になりました。
実は、この「小数点以下の表示桁数を減らす」ボタンを使うと、小数点以下の数字は四捨五入されるため、計算結果によっては、年齢を正しく表示することができないのです。

なので、ROUNDDOWNで小数点以下を切り捨てるようにしました。
今回のように年齢を求めるならDATEDIFを使うのがよく知られている方法ですが、DATEDIFは関数の一覧に表示されない関数のため、見つけられない、使いづらい、ほかの方法はないかとご質問いただくことがよくあります。
DATEDIF関数以外の方法で生年月日(開始日)から日付(終了日)までの年数を求めることができるYEARFRACという関数をご紹介しました。
YEARFRAC関数は小数点以下の数字を処理しなければなりませんが、ROUNDDOWNを合わせて使うことで小数点以下を切り捨てた数字を求めることができます。