PR

【Excel】年齢を関数(DATEDIF)を使わずに求めることはできる?

DATEDIFを使わずに年齢を求めることはできる? 高齢者のためのエクセル教室
高齢者のためのエクセル教室
スポンサーリンク

以前、別の記事でDATEDIF関数を使って年齢を求める方法について書いたのですが、紹介したDATEDIF関数は関数の一覧に入っていないので使いづらい、ほかに方法はないのかと質問いただきました。

この記事では、年齢を求めるのにDATEDIF関数を使わず、他の関数を使って求める方法について紹介します。

スポンサーリンク

年齢を求めるのによく使う「DATEDIF」は関数一覧にはない。DATEDIF以外に年齢を求めることができる関数はない?

DATEDIF関数は、関数一覧には表示されないため、自分で手入力するしかありません。それだと使いづらいから他に年齢を求められる関数はないかと質問いただきました。

年齢を求めるだけの関数はないので、ROUNDDOWN関数とYEARFRAC関数を合わせ使いする方法で年齢を求めてみます。※関数の中に他の関数を使うことを「ネスト」といいます。

サンプルとして下の図のように開始日、終了日を入力しました。年齢と入ったセルの下に年齢を求める関数を入力していきます。

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

ROUNDDOWN関数を呼び出す

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

「ROUNDDOWN」は数値を指定した桁数で切り捨てる関数です。

ROUNDDOWNの引数にある「数値」にYEARFRACを呼び出す

ROUNDDOWNの関数の引数画面が開いたら、「数値」の枠内をクリックしてから、数式バーの左側にある「関数ボックス」横の▼をクリック→「その他の関数」をクリックします。

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

YEARFRACの引数「開始日」「終了日」「基準」を入力する

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

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

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

YEARFRAC関数の基準に入れる値
  • 0または省略…30日/360日(NASD方式)
  • 1…実際の日数/実際の日数
  • 2…実際の日数/360日
  • 3…実際の日数/365日
  • 4…30日/360日(ヨーロッパ式)

数式バーの「ROUNDDOWN」にマウスポインタを合わせてクリックし切り替え、ROUNDDOWNの「桁数」に0と入力してOKボタンをクリック

数式バーのROUNDDOWNの上にマウスポインタを合わせてクリックし、関数の引数画面をROUNDDOWNに切り替えます。

ROUNDDOWNの引数の画面に戻ったことを確認し、桁数の枠内に「0」と入力してOKボタンをクリックします。

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

スポンサーリンク

年齢を求めるのにYEARFRACだけを使わない理由は?

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

開始日である生年月日から今日の日付までの経過年数(年齢)を知りたいだけなら、YEARFRACだけでもいいんじゃない?

実は、ROUNDDOWN関数を使わずにYEARFRACだけで経過年数を求めると…

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

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

じゃあ、小数点以下を表示しないように設定すればいいんじゃない?

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

「小数点以下の表示桁数を減らす」ボタンを整数になるまでクリックしてみると「74」ではなく「75」になりました。

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

なので、ROUNDDOWNで小数点以下を切り捨てるようにしました。

今回はROUNDDOWNを使いましたが、整数を求めることができるINTでもOKです。

スポンサーリンク

今回のように年齢を求めるならDATEDIFを使うのがよく知られている方法ですが、DATEDIFは関数の一覧に表示されない関数のため、見つけられない、使いづらい、ほかの方法はないかとご質問いただくので、別の方法で生年月日(開始日)から日付(終了日)までの年数を求めることができるYEARFRACという関数をご紹介しました。

YEARFRAC関数は小数点以下の数字を処理しなければなりませんが、ROUNDDOWNを合わせて使うことで小数点以下を切り捨てた数字を求めることができます。

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