「利付国債や社債の途中売買、未収利息の計算がいつも合わない…」と感じたことはありませんか。利払い回数や基準日数の組み合わせで結果がブレると、約定金額の照合作業が地味につらいですよね。そんなときはExcelのACCRINT関数を使えば、引数を入れるだけで未収利息(経過利息)を一発で求められますよ。
この記事では、ACCRINT関数の構文・引数の意味を整理します。基準日数による結果の違いや計算方式の挙動、ACCRINTM関数との使い分けまで実例で解説しますよ。
ExcelのACCRINT関数とは?
ACCRINT関数は、定期的に利息が支払われる証券の未収利息を計算するExcelの財務関数です。
読み方は「アクルード・インタレスト」。英語の「Accrued Interest」の略で、「未収利息」「経過利息」と訳されます。
対象になるのは、利付国債や普通社債のように半年ごと・年1回といった頻度で利息が支払われる証券です。こうした証券を期中に売買するとき、「前回利払日から受渡日までに溜まった利息はいくらか」を計算する場面で使いますよ。
たとえば社債を期中に購入する場合、前回の利払日から購入日までの利息は本来売り手のものです。買い手は売り手にこの未収利息を上乗せして支払い、次回利払日にまとめて受け取って精算する仕組みになっています。この「経過利息」を求めるのがACCRINT関数の役割です。
対応バージョンはExcel 2007以降およびMicrosoft 365です。Google スプレッドシートにも同名の関数が用意されていますよ。
ACCRINT関数の書き方(構文と引数)
基本構文
=ACCRINT(発行日, 初回利払日, 受渡日, 利率, 額面, 頻度, [基準], [計算方式])
引数は全部で8つあります。「基準」と「計算方式」は省略できますよ。
引数の説明
| 引数 | 必須 | 説明 |
|---|---|---|
| 発行日 | はい | 証券の発行日 |
| 初回利払日 | はい | 利息が最初に支払われる日付 |
| 受渡日 | はい | 証券の受渡日(購入日) |
| 利率 | はい | 証券の年利率(5%なら 0.05) |
| 額面 | はい | 証券の額面価格 |
| 頻度 | はい | 年間の利息支払回数(1・2・4のいずれか) |
| 基準 | いいえ | 基準日数の計算方式(0〜4、省略時は0) |
| 計算方式 | いいえ | 未収利息の合計方法(TRUE/FALSE、省略時はTRUE) |
日付の指定にはDATE関数を使うのがおすすめです。文字列で日付を入力すると、環境によってはエラーになることがあります。
頻度の指定方法
「頻度」引数で指定できる値は3つだけです。
| 頻度 | 意味 |
|---|---|
| 1 | 年1回 |
| 2 | 年2回(半年ごと) |
| 4 | 年4回(四半期ごと) |
日本の利付国債は年2回(半年ごと)の利払いが一般的なので、頻度には 2 を指定するケースが多いですよ。米国の財務省証券(Treasury Note/Bond)も同様に年2回利払いです。
基準日数の種類
「基準」引数で指定できる値は5種類あります。
| 基準 | 計算方式 | 特徴 |
|---|---|---|
| 0(省略時) | 30日/360日(NASD方式) | 米国標準。各月を30日とみなす |
| 1 | 実際の日数/実際の日数 | 最も正確。閏年は366日で計算 |
| 2 | 実際の日数/360日 | 実日数ベースだが年は360日固定 |
| 3 | 実際の日数/365日 | 実日数ベースで年は365日固定 |
| 4 | 30日/360日(ヨーロッパ方式) | 欧州標準。月末処理がNASD方式と異なる |
基準の選び方で計算結果が変わります。取引先や社内ルールで指定された方式を選んでくださいね。
計算方式の指定
「計算方式」引数では、受渡日が初回利払日以降になる場合の集計範囲を指定します。
| 計算方式 | 動作 |
|---|---|
| TRUE(省略時) | 発行日から受渡日までの全経過利息を合算 |
| FALSE | 直前の利払日から受渡日までの経過利息のみを返す |
通常はTRUE(省略)で問題ありません。利付債の途中売買で「直前利払日以降の経過利息」だけを取り出したい場合にFALSEを使いますよ。
ACCRINT関数の基本的な使い方
額面100万円、年利3%の社債について、未収利息を求めてみましょう。
条件:
- 発行日: 2024年4月1日
- 初回利払日: 2024年10月1日
- 受渡日: 2024年7月1日
- 利率: 3%
- 額面: 1,000,000円
- 頻度: 2(年2回)
- 基準: 1(実際の日数/実際の日数)
=ACCRINT(DATE(2024,4,1),DATE(2024,10,1),DATE(2024,7,1),0.03,1000000,2,1)
結果: 7,459円
計算の流れを見てみましょう。頻度2(年2回)なので、半年分の利息は 1,000,000 × 3% ÷ 2 = 15,000円 です。利払期間は4月1日〜10月1日の183日間、経過日数は4月1日〜7月1日の91日間になります。半年分の利息を日数で按分すると 15,000 × 91 ÷ 183 = 7,459円 になりますよ。
セル参照を使う場合は次のように書けます。
=ACCRINT(A2,B2,C2,D2,E2,F2,G2)
セルに値を入れておけば、条件を変えたときに数式を修正しなくて済みます。複数銘柄を一覧で管理するときにも便利ですよ。
額面を省略するとどうなる?
実は「額面」引数は省略可能で、省略時は 1,000 として計算されます。額面1単位あたりの経過利息率を求めたいときに便利です。
ただし日本の実務では 100,000 や 1,000,000 単位で運用することが多いので、省略せずに明示するのがおすすめですよ。
基準日数(0〜4)の違いと選び方
ACCRINT関数で結果が変わる最大のポイントが「基準」引数です。実務では「どの基準を使うか」が約定金額に直結するので、違いをしっかり押さえておきましょう。
5つの基準を同条件で比較
先ほどと同じ条件で、基準だけを変えた結果がこちらです。条件は「額面100万円・年利3%」「発行日2024/4/1・初回利払日2024/10/1・受渡日2024/7/1・頻度2」とします。
| 基準 | 計算方式 | 結果 |
|---|---|---|
| 0 | 30日/360日(NASD) | 7,500円 |
| 1 | 実際/実際 | 7,459円 |
| 2 | 実際/360日 | 7,569円 |
| 3 | 実際/365日 | 7,463円 |
| 4 | 30日/360日(欧州) | 7,500円 |
基準0と4はどちらも30日/360日方式なので、経過日数を90日(3か月×30日)として計算し7,500円になります。基準1と3は実日数(91日)で按分するため7,459〜7,463円ほどです。基準2は実日数91日を年360日で計算するため、わずかに金額が大きくなります。
取引種類別の基準の選び方
実務でよく使われる組み合わせを表にまとめました。
| 証券種類 | 推奨基準 | 理由 |
|---|---|---|
| 日本の利付国債 | 1(実際/実際) | ISDA基準が一般的 |
| 米国財務省証券 | 1(実際/実際) | 米国市場標準 |
| 米国社債 | 0(30/360 NASD) | 米国社債市場の慣行 |
| 欧州社債 | 4(30/360 欧州) | 欧州市場の慣行 |
| 短期金融商品 | 2(実際/360) | マネーマーケット標準 |
額面が大きくなるほど基準による差額も大きくなります。額面1,000万円・年利3%・経過日数91日の条件で比較すると、基準0と基準1で約410円の差が出ますよ。
基準による日数の数え方の違い
「30/360」と「実際/実際」では、経過日数の数え方が次のように変わります。例として2024年4月1日から7月1日までの日数を見てみましょう。
| 基準 | 経過日数の解釈 |
|---|---|
| 30/360(基準0,4) | 3か月 × 30日 = 90日 |
| 実際/実際(基準1) | カレンダー上の実日数 = 91日 |
| 実際/360(基準2) | 実日数91日(分母のみ360) |
| 実際/365(基準3) | 実日数91日(分母のみ365) |
社内ルールや取引先の指定がない場合は、基準1(実際/実際)が一番直感的でわかりやすいですよ。
計算方式(TRUE/FALSE)の挙動
「計算方式」引数は、受渡日が初回利払日より後になる場合に意味を持ちます。具体例で挙動を確認してみましょう。
TRUE と FALSE で結果が変わる例
次の条件で計算します。
条件:
- 発行日: 2024年4月1日
- 初回利払日: 2024年10月1日
- 受渡日: 2025年4月1日(初回利払日より後)
- 利率: 3%
- 額面: 1,000,000円
- 頻度: 2(年2回)
- 基準: 1(実際の日数/実際の日数)
TRUE(省略時):
=ACCRINT(DATE(2024,4,1),DATE(2024,10,1),DATE(2025,4,1),0.03,1000000,2,1,TRUE)
→ 結果: 30,000円
発行日2024/4/1から受渡日2025/4/1までの1年間の経過利息を返します。計算は 額面100万 × 3% × 1年 = 30,000円 ですね。
FALSE:
=ACCRINT(DATE(2024,4,1),DATE(2024,10,1),DATE(2025,4,1),0.03,1000000,2,1,FALSE)
→ 結果: 15,000円
直前利払日(2024/10/1)から受渡日(2025/4/1)までの半年分の利息のみを返します。
どちらを使うべき?
実務での使い分けの目安はこちらです。
- TRUE(既定): 累計の経過利息を出したい / 金融商品会計の経過利息評価
- FALSE: 「前回利払日からの経過利息」だけ知りたい / 既経過分の利息を切り分けたい
迷ったらTRUEで問題ありません。FALSEは「前回利払日以降」の経過利息に絞りたい特殊なケースで使う、と覚えておけばOKです。
ACCRINT関数の実務活用パターン
複数銘柄をまとめて計算する
保有債券を一覧で管理して、未収利息を一括計算するパターンです。
A列に発行日、B列に初回利払日、C列に受渡日、D列に利率、E列に額面、F列に頻度、G列に基準を入力します。H列に次の数式を入れましょう。
=ACCRINT(A2,B2,C2,D2,E2,F2,G2)
H列を下にコピーすれば、全銘柄の未収利息が一覧で計算できますよ。月次の経過利息評価にそのまま使えます。
約定金額(受渡金額)を計算する
利付債を購入するときの実際の支払額は、取引価格に未収利息を足した金額です。
取引価格 + ACCRINT(...) = 受渡金額
たとえば額面100万円・取引価格99万円・未収利息7,459円なら、受渡金額は997,459円になります。発注書や約定確認書の金額照合に使えますよ。
頻度を切り替えてシミュレーションする
「年1回利払いと年2回利払いで未収利息はどう変わるか」を比較したいときに便利なパターンです。頻度の引数だけセル参照にしておけば差分がすぐ見えますよ。
=ACCRINT(A2,B2,C2,D2,E2,F2,G2)
F列に1や2、4を入れて並べると、利払頻度の違いによる経過利息の動きを比較できますよ。新規債券の発行条件を検討するときに便利です。
YEARFRAC関数との関係
ACCRINT関数の内部計算にはYEARFRAC関数の仕組みが使われています。YEARFRAC関数は2つの日付の間の年数を小数で返す関数です。
基準引数の動作はYEARFRAC関数と同じ仕様なので、結果の検証に使えますよ。たとえば「ACCRINT関数の結果を手計算で検証したい」ときには、額面 × 利率 × YEARFRAC(発行日,受渡日,基準) で同じ値が出るか確かめられます。
ACCRINTM関数との違い・使い分け
ACCRINT関数と名前がよく似たACCRINTM関数があります。どちらも未収利息を求める関数ですが、対象とする証券が異なります。
| 比較項目 | ACCRINT | ACCRINTM |
|---|---|---|
| 対象 | 定期利払い証券 | 満期一括利払い証券 |
| 利息の支払い | 年1回・半年ごとなど定期的 | 満期時に1回だけ |
| 構文 | =ACCRINT(発行日,初回利払日,受渡日,利率,額面,頻度,[基準],[計算方式]) | =ACCRINTM(発行日,満期日,利率,額面,[基準]) |
| 頻度の引数 | あり | なし |
| 計算方式の引数 | あり | なし |
| 代表的な証券 | 利付国債、普通社債、米国Treasury | 割引債、短期国債(TB)、ゼロクーポン債 |
判断ポイントは「途中で利息が支払われるかどうか」です。
- 半年ごと・年1回など定期的に利息が支払われる → ACCRINT関数
- 満期まで利息の支払いがない → ACCRINTM関数
迷ったら「その証券は途中で利息をもらえるか?」と考えてみてください。途中でもらえるならACCRINT、満期まで待つならACCRINTMですよ。
関連する財務関数として、全額投資型証券の利率を逆算するINTRATE関数もあわせて覚えておくと便利です。
よくあるエラーと対処法
ACCRINT関数で発生しやすいエラーと対処法をまとめました。
#NUM! エラー
次のいずれかに該当すると #NUM! エラーになります。
- 発行日 ≥ 受渡日 → 発行日は受渡日より前の日付にする
- 初回利払日 ≤ 発行日 → 初回利払日は発行日より後の日付にする
- 利率 ≤ 0 → 利率は0より大きい値を指定する
- 額面 ≤ 0 → 額面は0より大きい値を指定する
- 頻度が1・2・4以外 → 1、2、4のいずれかを指定する
- 基準が0〜4以外 → 0、1、2、3、4のいずれかを指定する
特に見落としやすいのは、「発行日と受渡日が逆になっている」「初回利払日が発行日より前になっている」のケースです。日付の順序は最初に確認しておきましょう。
#VALUE! エラー
日付として認識できない値を指定すると #VALUE! エラーが返ります。日付の引数にはDATE関数やセル参照を使い、文字列を直接入力するのは避けましょう。
利率や額面に文字列が入っている場合も #VALUE! になります。元データに「3%」のような書式付き文字列が紛れ込んでいる場合は、数値として扱う必要があります。VALUE関数で数値化するか、表示形式の「パーセンテージ」を使って数値化してください。
結果が想定と違う
エラーは出ないけれど結果が予想と合わないときは、次の点をチェックしてみてください。
- 基準引数を確認する → 30/360 と 実際/実際 では結果が異なる
- 頻度引数を確認する → 年2回利払いの社債に頻度1を指定していないか
- 額面の桁数を確認する → 「100万円 = 1,000,000」を「1000000」と入れているか(カンマや桁区切りに注意)
- 利率の単位を確認する → 3%は
0.03であって3ではない
特に利率を「3」と入れてしまい結果が100倍になる、というミスは多いですよ。
まとめ
ExcelのACCRINT関数は、定期的に利息が支払われる証券の未収利息(経過利息)を計算する財務関数です。
この記事のポイントをおさらいします。
- 構文は
=ACCRINT(発行日, 初回利払日, 受渡日, 利率, 額面, 頻度, [基準], [計算方式]) - 対象は利付国債や普通社債など、定期利払いの証券
- 基準日数(0〜4)の選び方で計算結果が変わる(30/360 vs 実際/実際)
- 計算方式 TRUE/FALSE は受渡日が初回利払日以降のときに挙動が変わる
- 満期一括利払い証券にはACCRINTM関数を使う
- 日付の指定にはDATE関数を使うのが安全
基準の設定や利率の単位を間違えると金額に大きなズレが出ます。取引条件をよく確認してから使ってみてくださいね。
