この記事で分かること
- YEARFRACが小数の経過年数、DATEDIFが整数の年・月・日を返す違い
- YEARFRACの基準(basis)引数が結果に与える影響
- 整数設例で見る、経過利息計算と勤続年数表示への応用
- 日本の日数計算慣行(片落とし等)との関係
30秒で分かる定義
YEARFRACとDATEDIFは、いずれも2つの日付の間の経過期間を計算するExcel関数ですが、返す形式が異なります。YEARFRAC(読み方:いやーふらっく)は、指定した日数基準(basis)に沿って経過年数を小数で返し、経過利息の日割り計算など連続的な期間計算に使います。DATEDIF(読み方:でーとでぃふ)は、経過した満年数・満月数・満日数を整数で返し、勤続年数や年齢の表示など人が読む期間表現に使います。
なぜ実務で重要なのか
融資審査・デットスケジュールでは、借入実行日から評価基準日までの経過利息を日割りで計算する際にYEARFRACを使います。人事・給与領域では、勤続年数や退職金の算定にDATEDIFがよく使われます。財務モデリング全般では、決算期がずれている会社の期間調整や、契約期間の残存年数計算にも応用され、EOMONTH・EDATE関数と並んで日付を手入力せずに済ませるための基本関数群です。
計算式(または仕組み)
DATEDIF(開始日, 終了日, 単位「Y」/「YM」/「MD」) → 満年数/満月数/満日数(整数)
YEARFRACの基準引数は、0(省略時の既定値、30/360方式)、1(実際日数/実際日数)、3(実際日数/365)などがあり、契約書が定める日数計算方式と一致させる必要があります。DATEDIFは単位「Y」で満年数、「YM」で年を除いた満月数、「MD」で年月を除いた満日数を返します。
整数設例で確認する
設例(架空数値)。借入実行日を2024年1月10日、評価基準日を2026年8月31日とします。実際の経過日数を数えると、2024年1月10日から2025年1月10日までが366日(2024年は閏年)、2025年1月10日から2026年1月10日までが365日、2026年1月10日から2026年8月31日までが233日(1月21日+2月28日+3月31日+4月30日+5月31日+6月30日+7月31日+8月31日=233日)で、合計 366+365+233=964日です。
YEARFRAC(基準3=実際日数/365) = 964÷365 = 2.6411年(小数第4位まで)。仮に元本1,000百万円、年利3%とすると、経過利息 = 1,000×3%×2.6411 = 30×2.6411 = 約79.2百万円です。
DATEDIFでは、単位「Y」=2(2026年1月10日まで満2年)、「YM」=7(そこから2026年8月10日までの満7か月)、「MD」=21(8月10日から8月31日までの21日)となり、「2年7か月21日」という人が読みやすい形で経過期間を表現できます。
融資審査への影響
融資審査やデットスケジュールの実務では、経過利息の計算基準(実日数/365なのか、30/360なのか)が契約書・約款で明記されており、モデル上のYEARFRACの基準引数をこれと一致させないと、利息計算が契約上の金額と食い違います。DATEDIFで求めた「勤続年数」「経過年数」は、与信審査における取引年数の評価や、退職給付債務の見積りにも使われます。
財務モデル・Excelでの使い方
- デットスケジュールの経過利息行では
=YEARFRAC(実行日,評価日,3)のように基準を明示的に指定し、既定値(30/360)に頼らない - 勤続年数・保有期間の表示には
=DATEDIF(開始日,終了日,"Y")を使い、必要に応じて「YM」「MD」を組み合わせて年月日で表現する - DATEDIFはExcelの正式な関数リストや数式オートコンプリートに表示されない「隠し関数」であるため、綴りの誤りに注意し、直接手入力する
- 開始日より終了日が前になっているとDATEDIFは#NUM!エラーを返すため、日付の前後関係をチェックする行を設ける
返済スケジュール全体の組み方はDebt Scheduleの作り方、期間の解像度を上げる考え方は四半期・月次モデルへの展開を参照してください。
実務家が確認するポイントとよくある誤解
誤解1:「YEARFRACとDATEDIFの単位『Y』は同じ結果になる」→ 正しくは、YEARFRACは小数で経過年数を返し、DATEDIFは満年数を整数で返すため、用途(利息計算か、年数表示か)が異なります。
誤解2:「基準(basis)引数は省略しても問題ない」→ 正しくは、省略時は基準0(30/360方式)が既定値になり、契約書が定める実日数基準と食い違うと利息計算が合いません。
誤解3:「DATEDIFは正式にサポートされた関数ではない」→ 正しくは、現在のExcelでも計算自体は正しく動作しますが、関数リストやヘルプの候補に表示されない隠し関数である点に注意が必要です。
日本実務での扱い(2026年8月時点)
日本の金融実務における経過利息の日数計算では、初日不算入の「片落とし」、両日とも算入しない、両日とも算入するなど複数の慣行があり、契約書・約款でどの基準を採用するかが明記されます。全国銀行協会をはじめとする業界慣行を踏まえ、モデル上の日数計算基準(YEARFRACの基準引数)を契約条件と一致させることが、経過利息の検算において実務上重要です。利息計算の上限に関する規制としては、利息制限法が消費貸借契約における利率の上限を定めています。
面接・モデルテストで問われるポイント
Q:経過利息を計算する際、YEARFRACとDATEDIFのどちらを使うべきですか。理由も説明してください。
「経過利息の計算には小数の経過年数を返すYEARFRACを使うべきです。元本×金利×経過年数という連続的な計算には小数値が必要で、DATEDIFが返す満年数(整数)では日数の端数が切り捨てられ、金額が正確に計算できません。DATEDIFは勤続年数の表示など、整数で示すことが自然な場面に向いています。」
深掘りでは「基準(basis)引数を契約と一致させないとどうなるか」が問われます。
よくある質問(FAQ)
Q. YEARFRACのbasis引数の代表的な値の意味は何ですか?
A. 0は30/360(米国方式、省略時の既定値)、1は実際日数/実際日数、2は実際日数/360、3は実際日数/365、4は30/360(欧州方式)です。契約書の利息計算方式に合わせて選びます。
Q. DATEDIFで終了日が開始日より前の場合はどうなりますか?
A. #NUM!エラーが返ります。開始日と終了日の前後関係が正しいかを確認する行をモデルに組み込むのが安全です。
出典・参考(2026-08確認)
- 全国銀行協会(利息計算・日数基準に関する実務慣行) https://www.zenginkyo.or.jp/
- e-Gov法令検索「利息制限法」 https://elaws.e-gov.go.jp/
※本記事は教育目的の一般的な解説であり、法務・税務・投資助言ではありません。設例は理解のための架空数値です。