YEARFRAC関数は、開始日から終了日までの期間が、1年間に対してどれくらいの割合を占めるかを計算する関数です。
基本的に開始日と終了日は同じ年を指定した使い方になりますが、年に違う値を指定しても正常な値を返します。例えば、YEARFRAC関数を使用して、現時点での年齢を算出することも可能です。
YEARFRAC関数の基本的な使い方
対応バージョン:Excel365 2019 2016 2013 2010
YEARFRAC関数の書式です。
=YEARFRAC(開始日,終了日,[基準])
※カッコ内の「開始日,終了日,[基準]」を引数といいます。
※開始日または終了日に無効な日付を指定すると、エラー(#VALUE!)が返されます。
※基準 < 0 または基準 > 4 である場合は、エラー(#NUM!)が返されます。
引数の説明
- 〔開始日〕:期間の開始日となる日付を指定(シリアル値または文字列で指定)
- 〔終了日〕:期間の終了日となる日付を指定(シリアル値または文字列で指定)
- 〔基準〕:計算に使用する基準日数を示す数値「0~4」までを指定(後述)。省略可能
計算に使用する基準日数を示す数値
基準日数を示す数値 | 意味 |
---|---|
0または省略 | 30日/360日(米国のNASD方式) |
1 | 実際の日数/実際の日数 |
2 | 実際の日数/360日 |
3 | 実際の日数/365日 |
4 | 30日/360日(ヨーロッパ方式) |
YEARFRAC関数の使用例
下記のサンプルは、開始日から終了日までの期間が1年間に占める割合を算出しています。

=YEARFRAC(A2,B2)
関数の説明
- 〔開始日〕および〔終了日〕は、期間の占める割合を求める起点となる日、および終点となる日付を指定
- 〔基準〕は、省略可能なので指定していません。省略すると「30日/360日(米国のNASD方式)」を指定したとみなされます
関数の計算結果を表示する「C列(%表示)」は、セルの書式設定で「%(パーセンテージ)」の設定をしています。%で書式設定すると、結果は四捨五入した値で表示されます。
関数の計算結果を表示する「D列(書式設定なし=標準)」は、特に書式を設定していないので、結果は小数点付の数値で表示されています。結果を見やすくするためには、「C列」のように書式を設定する必要があります。
YEARFRAC関数で年齢を計算する
YEARFRAC関数を使って現時点での年齢を計算することができます。
引数〔終了日〕に任意の日付を指定すれば、その時点までの年齢も計算できます。
年齢を計算するには、前回取り上げた「DATEDIF関数」などがありますが、YEARFRAC関数でも簡単に年齢を求めることが可能です。
では実際に、社員の生年月日を基に、現時点(2021/10/16)での年齢を計算してみましょう。

=YEARFRAC(B3,TODAY(),3)
関数の説明
- 〔開始日〕には社員の生年月日を指定
- 〔終了日〕には、現時点での年齢を計算するので「=TODAY()」で今日の日付を指定
- 〔基準〕は、「3(実際の日数/365日)を指定
社員「A」の生年月日は「1960/1/1」で現時点の日付は「2021/10/16」なので、結果は「61.83287671」歳と62歳までは、あと4ヶ月程度あると分かります。
YEARFRAC関数と同じ分類の関数
YEARFRAC関数と同じ系列の関数は以下のページで探せます。