「利息の日割り計算をしたいのに、期間を年単位の小数で出す方法がわからない」。経理や人事の業務で、こんな場面に遭遇したことはありませんか。
単純に日数を365で割る方法もあります。でもうるう年や月ごとの日数の違いを考えると、正確さに不安が残りますよね。
ExcelのYEARFRAC関数を使えば、2つの日付の間隔を年単位の小数で一発計算できます。この記事では基本の書き方から基準引数5種の違いまで解説。利息計算や勤続年数の求め方、エラー対処法も紹介します。
ExcelのYEARFRAC関数とは
YEARFRAC関数(読み方: イヤーフラクション)は、2つの日付の間隔が1年間に占める割合を小数で返す関数です。
名前は「year(年)」と「fraction(端数・割合)」を組み合わせた造語です。
たとえば2024/1/1から2024/7/1までの期間をYEARFRAC関数で求めると、基準によって「0.5」や「0.4973…」のような値が返ります。つまり約半年ということですね。
DATEDIF関数だと「0」(1年未満は切り捨て)しか返りません。YEARFRAC関数なら端数まで含めた正確な年数がわかるので、利息の日割り計算や勤続年数の端数表示に重宝しますよ。
対応バージョン: Excel 2007以降のすべてのバージョン(Microsoft 365含む)で使用できます。
YEARFRAC関数の使い方(構文・引数)
基本構文
=YEARFRAC(開始日, 終了日, [基準])
カッコの中に「開始日」「終了日」の2つを入れます。3つ目の「基準」は省略できます。
引数の一覧
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 開始日 | 必須 | 期間の開始となる日付 |
| 終了日 | 必須 | 期間の終了となる日付 |
| 基準 | 任意 | 日数の計算方法を指定する数値(0〜4、省略時は0) |
開始日・終了日にはセル参照、DATE関数、日付の文字列を指定できます。
基準(第3引数)の違いを比較
基準は「1年の日数をどう数えるか」を決めるオプションです。金融計算で使われる設定ですが、一般的な実務では省略しても問題ありません。
| 基準 | 計算方法 | 1年の日数 |
|---|---|---|
| 0(省略時) | 米国方式(NASD 30/360) | 各月30日 / 年360日 |
| 1 | 実日数 / 実日数 | うるう年は366日、それ以外は365日 |
| 2 | 実日数 / 360日 | 年360日として計算 |
| 3 | 実日数 / 365日 | 年365日として計算(うるう年も同じ) |
| 4 | ヨーロッパ方式(30/360) | 各月30日 / 年360日 |
同じ日付ペア(2024/1/1〜2024/7/1)で基準ごとの結果を比較してみましょう。
| 基準 | 数式 | 結果 |
|---|---|---|
| 0 | =YEARFRAC("2024/1/1","2024/7/1",0) | 0.5000 |
| 1 | =YEARFRAC("2024/1/1","2024/7/1",1) | 0.4973 |
| 2 | =YEARFRAC("2024/1/1","2024/7/1",2) | 0.5056 |
| 3 | =YEARFRAC("2024/1/1","2024/7/1",3) | 0.4986 |
| 4 | =YEARFRAC("2024/1/1","2024/7/1",4) | 0.5000 |
基準0と4は「各月30日」とみなすので、同じ0.5になります。基準1は実際の日数(182日÷366日)で計算するため、わずかに異なる値です。
使い分けのコツ: 勤続年数や契約期間など暦日ベースの計算には基準「1」がおすすめです。省略時の基準0は金融向けの計算方法なので、実日数とわずかにズレることがありますよ。
YEARFRAC関数の使用例
利息の日割り計算
年利3%のローンで、2024/4/1から2024/9/30までの利息を日割りで計算してみましょう。元本は100万円とします。
=1000000 * 0.03 * YEARFRAC("2024/4/1","2024/9/30",1)
YEARFRAC関数が期間を年単位(0.5年)で返します。これに元本と年利を掛けるだけで日割り利息が求められます。結果は15,000円です。
日数を手動で数えて365で割る方法より、はるかにシンプルですよね。
勤続年数を端数付きで表示
人事名簿で入社日がA2に入っているとします。勤続年数を小数で自動計算してみましょう。
=YEARFRAC(A2, TODAY(), 1)
TODAY関数(今日の日付を返す関数)と組み合わせると、毎日自動で更新されます。A2が「2020/4/1」で今日が「2026/3/28」なら、結果は約5.99年です。
整数部分だけ取り出したい場合は、INT関数(小数を切り捨てる関数)で囲みます。
=INT(YEARFRAC(A2, TODAY(), 1))
結果は「5」です。端数を切り捨てた「満何年」が返りますよ。
「X年Yヶ月」形式で表示したい場合: YEARFRAC関数では小数しか返せません。「6年5ヶ月」のような表示にはDATEDIF関数が向いています。
契約期間の按分計算
年間保守料120万円の契約で、2024/4/1から2024/12/31までの按分額を計算してみましょう。
=1200000 * YEARFRAC("2024/4/1","2024/12/31",1)
YEARFRAC関数が期間の割合(約0.7514年)を返すので、年間費用に掛けるだけで按分額が出ます。結果は約901,639円です。
月割りだと10万円×9ヶ月=90万円ですが、日割りベースでは端数が変わります。経理処理で正確な日割り按分が求められる場面で活躍しますよ。
YEARFRAC関数でよくあるエラーと対処法
#VALUE!エラー(日付が不正な場合)
YEARFRAC関数に渡した値が正しい日付データでないと#VALUE!エラーが発生します。よくある原因は次の3つです。
- セルに日付が「文字列」として入力されている
- 全角数字が混じっている(例: 「2024/4/1」)
- 存在しない日付を指定している(例: 「2024/2/30」)
対処法は、セルの表示形式を「日付」に変更するか、DATE関数で日付を作り直すことです。
=YEARFRAC(DATE(2024,4,1), DATE(2024,12,31), 1)
DATE関数を経由すれば、確実に正しい日付データとして処理されますよ。
#NUM!エラー(基準の値が不正な場合)
第3引数の「基準」に0〜4以外の値を指定すると#NUM!エラーが発生します。
=YEARFRAC(A2, B2, 5) → #NUM!エラー
基準は0・1・2・3・4の5種類だけです。それ以外の数値を入れていないか確認してください。
IFERRORでエラー表示を防ぐ
データに不備がある行でもエラー表示を防ぎたい場合は、IFERROR関数(エラーのとき代替値を返す関数)で囲みます。
=IFERROR(YEARFRAC(A2, TODAY(), 1), "")
A2が空欄だったり不正な日付でも、エラーの代わりに空白が表示されます。名簿のように大量の行がある場面ではこの書き方がおすすめです。
DATEDIF・DAYS360との使い分け
YEARFRAC関数と似た関数にDATEDIF関数とDAYS360関数があります。それぞれ戻り値の形式が異なるので、目的に応じて使い分けましょう。
| 項目 | YEARFRAC | DATEDIF | DAYS360 |
|---|---|---|---|
| 戻り値 | 年数の小数(例: 0.50) | 整数(例: 6) | 日数(例: 180) |
| 端数の扱い | 小数で含まれる | 切り捨て | 日単位で返す |
| 単位 | 年のみ(自動) | Y/M/D/YM/MDなど | 日のみ |
| 主な用途 | 利息日割り・按分計算 | 年齢・勤続年数 | 会計上の日数計算 |
| やりたいこと | おすすめ関数 | 数式例 |
|---|---|---|
| 期間を年の小数で表示 | YEARFRAC | =YEARFRAC(A2,B2,1) |
| 年齢を満年齢で求める | DATEDIF | =DATEDIF(A2,TODAY(),"Y") |
| 「X年Yヶ月」形式で表示 | DATEDIF | Y+YMの組み合わせ |
| 360日基準の日数を求める | DAYS360 | =DAYS360(A2,B2) |
| 日割り利息を計算する | YEARFRAC | =元本利率YEARFRAC(A2,B2,1) |
小数の年数がほしいならYEARFRAC、整数の年・月・日で分けたいならDATEDIF、360日基準の日数ならDAYS360と覚えておけば迷いませんよ。
まとめ
YEARFRAC関数は、2つの日付の間隔を年単位の小数で返す関数です。
ポイントを整理します。
- 構文は
=YEARFRAC(開始日, 終了日, [基準])の2〜3引数 - 戻り値は小数(例: 0.50年)で、端数まで正確にわかる
- 基準は省略可。暦日ベースの計算には「1」を指定
- 利息日割り計算は
=元本利率YEARFRAC(開始日,終了日,1) - 勤続年数は
=YEARFRAC(入社日, TODAY(), 1)で自動計算 - 「X年Yヶ月」形式にしたいならDATEDIF関数を使う
- 360日基準の日数計算にはDAYS360関数が便利
日付計算の関数をまとめて知りたい方は、Excelの日付計算ガイドもあわせて読んでみてください。
