「決算期をまたいで社債を売買したんだけど、経過利息っていくら乗せればいいんだっけ?」と聞かれたとき、サッと数字を出せると経理や財務の現場で頼りにされますよね。債券を途中売買する際に必要な経過利息の計算は、スプレッドシートのACCRINT関数を使えば一発で答えが出せますよ。
この記事では、スプレッドシートのACCRINT関数の使い方を、構文から実務の活用例・ACCRINTM関数との使い分け・購入価格への反映方法まで、同僚に教える感覚で解説します。定期利付債(クーポン債)の途中売買や期末の未収利息計算にぜひ活用してくださいね。
スプレッドシートのACCRINT関数とは?
スプレッドシートのACCRINT関数は、定期的に利息を支払う利付債について、発行日から決済日までの経過利息(Accrued Interest)を計算する財務関数です。
経過利息とは、前回の利払日(または発行日)から次回の利払日までの間で、保有期間に応じて日割りで発生している未払い利息のことです。債券を利払日以外の日に売買するとき、買い手は売り手に対して「売り手が保有していた期間分の利息」を上乗せして支払うのが商習慣になっているんですよ。
ACCRINT関数は、この経過利息を額面・利率・保有期間から自動計算してくれる関数です。社債・利付国債・地方債の途中売買や、期末の未収収益計上の場面でよく使いますよ。
ACCRINT関数の構文と引数
ACCRINT関数の構文は次のとおりです。
=ACCRINT(発行日, 初回利払日, 決済日, 利率, 額面, 頻度, [日数計算基準], [計算方法])
英語表記だと =ACCRINT(issue, first_interest, settlement, rate, redemption, frequency, [day_count_convention], [calc_method]) となります。
| 引数 | 省略 | 説明 |
|---|---|---|
| 発行日(issue) | 必須 | 債券の発行日。DATE関数での指定を推奨 |
| 初回利払日(first_interest) | 必須 | 最初のクーポン支払日 |
| 決済日(settlement) | 必須 | 経過利息を計算する基準日(受渡日) |
| 利率(rate) | 必須 | 債券の年利クーポン率(例: 0.03 = 年3%) |
| 額面(redemption) | 必須 | 債券の額面金額(例: 1000000 = 100万円) |
| 頻度(frequency) | 必須 | 年あたりの利払い回数(1, 2, 4のいずれか) |
| 日数計算基準(basis) | 省略可 | 1年の日数計算方式(下表参照、省略時は0) |
| 計算方法(calc_method) | 省略可 | TRUE=発行日から(既定)、FALSE=直近利払日から |
頻度(frequency)は「1=年1回払い」「2=半年ごと」「4=四半期ごと」の3種類のみです。上記以外の値を指定すると#NUM!エラーになりますよ。
日数計算基準(basis)の設定値
| 値 | 1年の日数計算 |
|---|---|
| 0(省略時) | 30日/360日(米国NASD方式) |
| 1 | 実際の日数/実際の日数 |
| 2 | 実際の日数/360日 |
| 3 | 実際の日数/365日 |
| 4 | 30日/360日(ヨーロッパ方式) |
日本の国債や社債なら basis=1(実際/実際)、米国の短期金融商品なら basis=2 が一般的です。対象債券の目論見書で使われている方式を確認するのが安全ですよ。
計算方法(calc_method)の使い分け
第8引数の計算方法(calc_method)は、発行日より後の決済日について経過利息の起算点を切り替える引数です。
| 値 | 起算点 | 用途 |
|---|---|---|
| TRUE(省略時) | 発行日から決済日まで | 発行直後の途中売買 |
| FALSE | 直近の利払日から決済日まで | 利払後の途中売買 |
通常の途中売買では省略(TRUE)で問題ありません。FALSEを指定するケースは稀なので、迷ったら既定のままで大丈夫ですよ。
ACCRINT関数の基本的な使い方
半年払い社債の経過利息を求める
額面100万円・年利クーポン3%・半年ごと利払い・2026年4月1日発行の社債を、2026年7月31日に決済するケースを計算してみましょう。
| セル | 項目 | 値 |
|---|---|---|
| B2 | 発行日 | 2026/4/1 |
| B3 | 初回利払日 | 2026/10/1 |
| B4 | 決済日 | 2026/7/31 |
| B5 | クーポン利率 | 0.03 |
| B6 | 額面 | 1000000 |
| B7 | 頻度(半年) | 2 |
=ACCRINT(B2, B3, B4, B5, B6, B7, 1)
結果は 約9,945円 になります。発行日(4/1)から決済日(7/31)までの121日分が、年利3%・額面100万円に対する経過利息として計算されますよ(1,000,000 × 0.03 × 121/365 ≒ 9,945)。
直接日付を入れる場合はDATE関数を使います。
=ACCRINT(DATE(2026,4,1), DATE(2026,10,1), DATE(2026,7,31), 0.03, 1000000, 2, 1)
年1回払い利付国債の経過利息を求める
額面1000万円・年利1.2%・年1回利払い・2026年4月1日発行の利付国債を、2026年10月1日に決済するケースです。
=ACCRINT(DATE(2026,4,1), DATE(2027,4,1), DATE(2026,10,1), 0.012, 10000000, 1, 1)
結果は 約60,164円 になります。発行日から半年経過しているので、年利1.2%の半分が概ね経過利息として発生している計算ですよ。
basis指定で結果がどう変わるか
同じ条件でも、日数計算基準(basis)を変えると結果が少し変わります。半年払い社債(額面100万円・利率3%・発行4/1・決済7/31)で比較してみましょう。
| basis | 結果の概算 | 特徴 |
|---|---|---|
| 0(30日/360日・米国) | 10,000円 | 月を30日固定で計算 |
| 1(実際/実際) | 9,945円 | 日本の債券で一般的 |
| 2(実際/360日) | 10,083円 | 分子は実日数・分母360日 |
| 3(実際/365日) | 9,945円 | 閏年も365日扱い |
| 4(30日/360日・欧州) | 10,000円 | 欧州方式 |
数千円単位の差ですが、額面が大きくなると無視できない金額になります。取引先との契約書や目論見書に記載された日数計算基準に合わせて指定してくださいね。
経過利息の意味をつかむ
「日割り利息」として読む
ACCRINT関数が返す値は「発行日(または直近利払日)から決済日までに発生した利息」です。額面 × 年利 × 経過日数 ÷ 年間日数 という日割り計算が基本式ですよ。
たとえば額面100万円・年利3%の債券を、発行から121日経った時点で売買する場合、経過利息は 1,000,000 × 0.03 × 121/365 ≒ 9,945円 となります。ACCRINT関数はこの計算を、頻度や日数計算基準を踏まえて自動化してくれるわけですね。
直感的には「売り手が保有していた期間分の利息を、買い手が立て替えて払う」と覚えてください。次の利払日が来ると、買い手は1回分のクーポンを丸ごと受け取れるので、差額で売り手の期間分を回収する仕組みですよ。
購入価格への反映(Dirty Priceの考え方)
債券の取引価格には2つの概念があります。
| 用語 | 意味 | 計算 |
|---|---|---|
| クリーンプライス(Clean Price) | 経過利息を含まない価格 | 新聞・気配値で表示される価格 |
| ダーティプライス(Dirty Price) | 実際に支払う価格 | クリーンプライス + 経過利息 |
実際の受渡金額は、ダーティプライス = クリーンプライス + ACCRINTで計算した経過利息 で求めます。社債の売買明細書に「経過利息」として別行で記載されるのが、まさにACCRINT関数の計算結果ですよ。
ACCRINTM(満期一括払い)との使い分け
2つの関数の違いを整理
ACCRINT関数とよく似た関数に、ACCRINTM関数があります。2つの違いを整理しておきましょう。
| 観点 | ACCRINT関数 | ACCRINTM関数 |
|---|---|---|
| 対象債券 | 定期利付債(クーポン債) | 満期一括払い債 |
| 利払方式 | 年1/2/4回の定期利払い | 満期時に元本と一括 |
| 引数の数 | 6〜8個 | 4〜5個 |
| 頻度指定 | あり(1, 2, 4) | なし |
| 主な用途 | 社債・利付国債の途中売買 | 割引債・CD(譲渡性預金)の経過利息 |
ACCRINTM関数の構文はシンプルで、頻度の指定がありません。
=ACCRINTM(発行日, 満期日, 利率, 額面, [日数計算基準])
実務での使い分け
実務での選び方は次のとおりです。
- ACCRINT関数: 定期的にクーポンを受け取る社債・利付国債・地方債の途中売買時
- ACCRINTM関数: 満期時に利息と元本をまとめて受け取るCD・割引短期債の経過利息
対象債券の利払方式で選び分けるのが基本ですよ。目論見書や社債要項に「利息は年2回払い」と書いてあればACCRINT、「満期時に一括償還」と書いてあればACCRINTMと判断すれば大丈夫です。
途中売買時の受渡金額を計算する
ACCRINT関数を使うと、債券を途中売買するときの実際の受渡金額をきれいに計算できます。基本式は次のとおりです。
受渡金額 = 額面 × クリーンプライス率 + ACCRINT(経過利息)
額面100万円・クリーンプライス99.50(=額面の99.50%)・経過利息9,945円のケースで見てみましょう。
| 項目 | 金額 |
|---|---|
| 額面 | 1,000,000円 |
| クリーンプライス(99.50) | 995,000円 |
| 経過利息(ACCRINT) | 9,945円 |
| 受渡金額(ダーティプライス) | 1,004,945円 |
買い手が実際に支払う金額は1,004,945円、売り手が受け取る金額も同じ1,004,945円です。この経過利息9,945円の部分が、ACCRINT関数で一瞬で算出できるわけですよ。
期末決算で未収利息を計上する場合も同じ考え方です。期末時点の決済日で計算すれば、「発行日から期末までに発生している未収利息」がそのまま計上額として使えますね。
よくあるエラーと対処法
#NUM!エラー
以下のケースで発生します。
| 発生条件 | 対処法 |
|---|---|
| 発行日 ≥ 決済日 | 発行日が決済日より前になるよう修正する |
| 頻度が 1, 2, 4 以外 | 1、2、4のいずれかに修正する |
| basis が 0〜4 以外 | 0、1、2、3、4のいずれかに修正する |
| 利率が0以下 | 正の利率を指定する |
| 額面が0以下 | 正の額面を指定する |
よくあるのが頻度の指定ミスです。月1回払いを想定して「12」を入れるとエラーになりますよ。ACCRINT関数は年1回・半年・四半期の3パターンしか対応していません。
#VALUE!エラー
引数に数値・日付以外の文字列が入っている場合に発生します。日付は DATE(2026,4,1) のようにDATE関数で指定するのが確実ですよ。セル参照で日付を渡す場合は、参照先のセルが日付書式になっているかも確認してください。
#NAME?エラー
関数名のスペルミスが原因です。「ACCRINT」の打ち間違いや、ACCRINTMと混同するケースがよくありますよ。入力中に候補から選ぶようにすると防げます。対象債券の利払方式に合っているか、引数の数(ACCRINT=6〜8個、ACCRINTM=4〜5個)で見分けてくださいね。
結果が想定より大きい・小さい
日数計算基準(basis)の指定を間違えているケースがほとんどです。日本の債券で basis=0(30/360方式)を使うと、実日数ベースの想定と数百円〜数千円ズレることがありますよ。目論見書に合わせて basis を指定し直してみてください。
Excelとの互換性
ACCRINT関数はExcelとGoogleスプレッドシートで同じ計算結果を返します。Excelファイル(.xlsx)をスプレッドシートで開いても関数はそのまま動作しますよ。
スプレッドシートでは引数名が日本語で表示されます。Excelの英語表記(issue、first_interest、settlement、rate、redemption、frequency、basis、calc_method)と見た目は違いますが、動作は完全に同じです。
ACCRINTM関数も同様にExcel・スプレッドシート間で互換性があります。両方の環境で同じ分析ファイルを使えるので、チーム内で経過利息の計算ロジックを統一しやすいですよ。
関連する財務関数
ACCRINT関数は、同じ債券分析シリーズの関数と組み合わせて使う場面が多い関数です。それぞれの位置づけを整理しておきましょう。
| 関数 | 用途 |
|---|---|
| ACCRINT関数 | 定期利付債の経過利息 |
| ACCRINTM関数 | 満期一括払い債の経過利息 |
| YIELD関数 | 定期利付債の利回り |
| PRICE関数 | 定期利付債の理論価格(クリーンプライス) |
| DURATION関数 | 定期利付債の加重平均回収期間 |
実務でよくある流れは、「PRICE関数で理論クリーンプライスを計算 → ACCRINT関数で経過利息を計算 → 合算してダーティプライスを出す」という組み合わせですよ。YIELD関数で利回りを逆算したり、DURATION関数で金利リスクを測ったりと、財務関数シリーズはセットで使うと威力を発揮します。
まとめ
スプレッドシートのACCRINT関数は、定期利付債の経過利息を計算する財務関数です。ポイントをまとめておきます。
- 引数は発行日・初回利払日・決済日・利率・額面・頻度の6つが必須。basisとcalc_methodは省略可
- 頻度(frequency)は 1, 2, 4 のいずれか(年1回/半年/四半期)のみ
- 返す値は「発行日から決済日までに発生した利息額」。日割り計算が基本
- ダーティプライス = クリーンプライス + ACCRINT で受渡金額を計算できる
- 日本の債券なら basis=1(実際/実際) が目安
- ACCRINTM関数とは別物。定期利払い債ならACCRINT、満期一括払い債ならACCRINTM
- Excel・スプレッドシート間で完全互換。関数名・引数順序も共通
債券の途中売買や期末の未収利息計上では、経過利息の計算がどうしても必要になります。ACCRINT関数を使いこなせるようになると、取引明細書の検算や仕訳額の計算がグッとラクになりますよ。PRICE関数やYIELD関数・DURATION関数とあわせて、財務関数シリーズを一通りチェックしておくと、債券分析の基礎が整いますね。
