【関数】開始日から終了日までの「年数」を計算できる「YEARFRAC」の使い方
AさんAさん

Excelで年齢等の年数を計算したいです。
どうすれば計算できますかね?

森田森田

その場合は、関数のYEARFRACを活用すると良いですよ!
では、YEARFRACの使い方について解説していきますね。

はじめに

この記事は関数の概要の使い方を把握していることが前提です。

参考記事

関数の概要については以下の記事をご参照ください。

2つの日付の間の「年数」を計算したい場合は「YEARFRAC」が有効

実務では、2つの日付(開始日/終了日)の間の年数を計算したいケースがあります。

たとえば、次のように年齢や加入年数等ですね。

こんな場合、関数のYEARFRACを使うと良いです。
YEARFRACは「イヤー・フラクション」と読む。

YEARFRACを使うことで、開始日から終了日までの全日数を基準日数で除算した年数を計算できます。
基準日数は後述。

なお、YEARFRACの戻り値となる年数は、整数だけでなく小数点も含まれるため、年利や年債の割合を求めるケースでも有効です。

YEARFRACの構文

YEARFRACの構文は以下の通りです。

=YEARFRAC(開始日,終了日,[基準])
開始日から終了日までの間の日数を、年を単位とする数値で表します。

引数名 必須 データ型 説明
開始日 すべて 起算日を示す単一セル(値が日付)を指定します。
終了日 すべて 最終日を示す単一セル(値が日付)を指定します。
基準 すべて 計算に使用する基準日数を指定します。

各引数に無効な値(文字列等)を指定した場合、エラー値「#VALUE!」が表示。
引数「開始日」・「終了日」に「1900/1/1~9999/12/31」以外の日付(シリアル値)を入力した場合、エラー値「#NUM!」が表示。
引数「基準」に「0~4」以外の値を入力した場合、エラー値「#NUM!」が表示。
引数「基準」を小数点以下まで指定した場合、整数以外は切り捨てされる。

【参考】引数「基準」のパターン

引数「基準」は任意の基準日数を選択しましょう。

その際、引数「終了日」の後にコンマ(,)を入力すると、数式上でサジェストされるため、任意の基準日数を選択し「Tab」キーで確定しましょう。

各番号がどの基準日数を示すかは以下の表をご覧ください。

基準 基準日数(月/年)
0 または省略 30日/360日(NASD方式)
1 実際の日数/実際の日数
2 実際の日数/360
3 実際の日数/365
4 30日/360日(ヨーロッパ方式)

一般的には「1」を選択。

【参考】YEARFRACは「日付/時刻関数」

あくまで参考情報となりますが、YEARFRACはリボン「数式」タブの関数ライブラリの「日付/時刻」に分類されています。

実際にYEARFRACを活用する際は、以下で解説しているように直接入力で挿入していきましょう。

YEARFRACの使用結果イメージ

YEARFRACを使い、開始日から終了日までの年数を計算するイメージは以下の通りです。

今回は「生年月日」列とF2セルの「基準日」の間の年数を計算しました。

上記のように計算列としてYEARFRACを使う場合、1レコードにつき1つの関数を使います。
「計算列」とは、数値/日付/時刻の列の値を計算した新たな列のこと。

ベースの数式をセットしたら、他のセルへペーストしましょう。

なお、今回は引数「終了日」は全レコードでF2セルを固定で参照するため、絶対参照にしています。

参考記事

絶対参照/相対参照の詳細については以下の記事をご参照ください。

【参考】年数だけを求めたい場合は「INT」と組み合わせる

YEARFRACの戻り値の年数は小数点以降も含まれてしまいます。

もし、小数点以降が不要な場合は、整数に切り捨てできる関数の「INT」と組み合わせましょう。

数式のイメージは以下の通りです。

なお、INTの部分は同じ切り捨ての効果を持つ「ROUNDDOWN」でも代用可能です。

ただ、INTの方が数式をシンプルにできます。

参考記事

INT」と「ROUNDDOWN」の詳細については以下の記事をご参照ください。


YEARFRACの数式の挿入手順

上記の結果を得るための手順は以下の通りです。

  1. 関数を挿入するセルを選択
    ※今回はD2セル
  2. =y」等と入力
  3. サジェストから「YEARFRAC」を選択し、「Tab」キーで確定
  4. 開始日を示すセルを選択
    ※今回はF2セル(絶対参照)
  5. コンマ(,)を入力
  6. 終了日を示すセルを選択
    ※今回はC2セルを選択
  7. コンマ(,)を入力
  8. 任意の基準日数を選択
    ※今回は「1」を選択
  9. Enter」キーで確定
  10. 1行目の数式をコピーし、以降のセルへペースト
    ※今回はD3~D11セルへペースト

手順②の際にIMEを半角英数モードにすること。
テーブルの場合、手順⑩は不要(全レコードへ数式が自動的にコピーされる)。

【注意】「開始日」・「終了日」が同じ月日だと年数がずれるケースあり

このYEARFRACの注意点は、「開始日」・「終了日」の月日が同じ場合、年数がずれることがあります(引数「基準」が「1:実際の日数/実際の日数」でも)。

一例は以下の通りです。

可能性としては低いですが、こうした仕様であることを理解の上活用するようにしましょう。

なお、年数だけで言えば、DATEDIF」の方が正確に計算できます。

ただし、DATEDIFは公式の関数ではない(Excel以前に最もシェアのあった表計算ソフトLotus1-2-3の互換性サポートのため使用可能)ため、関数がサジェストされず完全手入力が必要です。

また、年数以外にも月数や日数も計算できますが、一部バグがあることも報告されているため、それぞれの関数の仕様や注意事項を理解した上で使うと良いでしょう。

参考記事

DATEDIF」の詳細については以下の記事をご参照ください。

サンプルファイルで練習しよう!

可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。

サンプルファイル_ワークシート関数_YEARFRAC.xlsx

※サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります。
(上記リンクから登録フォームへ遷移します)

ブックを開いたら、次の手順を実施してください。(今までの解説のまとめです)

  1. 関数を挿入するセルを選択
    ※今回はD2セル
  2. =y」等と入力
  3. サジェストから「YEARFRAC」を選択し、「Tab」キーで確定
  4. 開始日を示すセルを選択
    ※今回はF2セル(絶対参照)
  5. コンマ(,)を入力
  6. 終了日を示すセルを選択
    ※今回はC2セルを選択
  7. コンマ(,)を入力
  8. 任意の基準日数を選択
    ※今回は「1」を選択
  9. Enter」キーで確定
  10. 1行目の数式をコピーし、以降のセルへペースト
    ※今回はD3~D11セルへペースト

本記事の解説と同じ結果になればOKです!

さいごに

いかがでしたでしょうか?

YEARFRACは日付データを元にした計算列の追加に役立つ関数の一つです。

定期的に年数を計算する計算列を作成する機会があるなら、ぜひ覚えておいた方が良いですね。

なお、YEARFRAC以外にもExcelでのデータ整形の各種テクニックを拙著で解説していますので、こちらも参考にしてみてください。


ご参考になれば幸いですm(_ _)m

森田森田

YEARFRACとセットで覚えておいた方が良い関数は、2つの日付の間の年数/月数/日数を計算できる「DATEDIF」です。
それぞれの関数の仕様や注意点を理解の上で活用し、日付間の計算に役立ててください。