スプレッドシートのACCRINT関数の使い方|定期利付債の経過利息

スポンサーリンク

「決算期をまたいで社債を売買したんだけど、経過利息っていくら乗せればいいんだっけ?」と聞かれたとき、サッと数字を出せると経理や財務の現場で頼りにされますよね。債券を途中売買する際に必要な経過利息の計算は、スプレッドシートのACCRINT関数を使えば一発で答えが出せますよ。

この記事では、スプレッドシートのACCRINT関数の使い方を、構文から実務の活用例・basis別の結果比較・ACCRINTM関数との使い分け・ダーティプライス計算・FAQまで、同僚に教える感覚で解説します。定期利付債(クーポン債)の途中売買や期末の未収利息計上にぜひ活用してくださいね。

  1. スプレッドシートのACCRINT関数とは?
    1. 経過利息(Accrued Interest)とは
    2. どんな業務シーンで使うか
  2. ACCRINT関数の構文と引数
    1. 日数計算基準(basis)の設定値
    2. 計算方法(calc_method)の使い分け
  3. ACCRINT関数の基本的な使い方
    1. 半年払い社債の経過利息を求める
    2. 年1回払い利付国債の経過利息を求める
    3. 四半期払い社債(frequency=4)の経過利息を求める
    4. basis指定で結果がどう変わるか
  4. 経過利息の意味をつかむ
    1. 「日割り利息」として読む
    2. 購入価格への反映(Dirty Priceの考え方)
    3. 手計算とACCRINT結果を検算する
  5. ACCRINTM(満期一括払い)との使い分け
    1. 2つの関数の違いを整理
    2. 実務での使い分け(目論見書での見分け方)
  6. 途中売買時の受渡金額を計算する
    1. ダーティプライス計算の完全例
    2. 期末未収利息の仕訳イメージ
  7. よくあるエラーと対処法
    1. #NUM!エラー
    2. #VALUE!エラー
    3. #NAME?エラー
    4. 結果が想定より大きい・小さい
  8. Excelとの互換性
  9. 関連する財務関数
  10. ACCRINT関数に関するよくある質問(FAQ)
    1. Q. ACCRINTとACCRINTMはどう使い分けますか?
    2. Q. frequency に 12(月1回)は指定できますか?
    3. Q. basis は何を選べばよいですか?
    4. Q. calc_method を FALSE にすべきケースは?
    5. Q. ACCRINTの結果と取引明細書の経過利息が合わないのはなぜ?
    6. Q. 半年払いと年1回払いで経過日数が同じなら結果も同じですか?
    7. Q. Excel と Google スプレッドシートで結果が違うことはありますか?
    8. Q. 期末の未収利息計上にも使えますか?
  11. まとめ

スプレッドシートのACCRINT関数とは?

スプレッドシートのACCRINT関数は、定期的に利息を支払う利付債について、発行日から決済日までの経過利息(Accrued Interest)を計算する財務関数です。

経過利息とは、前回の利払日(または発行日)から次回の利払日までの間で、保有期間に応じて日割りで発生している未払い利息のことです。債券を利払日以外の日に売買するとき、買い手は売り手に対して「売り手が保有していた期間分の利息」を上乗せして支払うのが商習慣になっているんですよ。

ACCRINT関数は、この経過利息を額面・利率・保有期間から自動計算してくれる関数です。社債・利付国債・地方債の途中売買や、期末の未収収益計上の場面でよく使いますよ。

経過利息(Accrued Interest)とは

経過利息は、債券保有期間に応じて発生する「日割りの未払い利息」のことです。クーポン(利息)は半年ごとや年1回などまとめて支払われますが、利払日と利払日の間でも利息は毎日少しずつ積み上がっています。

途中売買時には「売り手の保有期間分の利息」を買い手が立て替えて支払い、次の利払日で買い手がクーポンを丸ごと受け取って差し引き精算する、という仕組みになっていますよ。

どんな業務シーンで使うか

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)の設定値

basisは「分子の経過日数」と「分母の年間日数」をどう数えるかを決める引数です。

1年の日数計算主な用途
0(省略時)30日/360日(米国NASD方式)米国社債の伝統的方式
1実際の日数/実際の日数日本国債・社債で標準
2実際の日数/360日米国短期金融商品
3実際の日数/365日一部の社債・スワップ
430日/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%の半分に近い金額が経過利息として発生している計算ですよ。

四半期払い社債(frequency=4)の経過利息を求める

米ドル建て社債では四半期払い(frequency=4)の銘柄も多いので、こちらも見ておきましょう。額面50万円・年利4%・四半期払い・2026年4月1日発行で、2026年5月15日に決済するケースです。

=ACCRINT(DATE(2026,4,1), DATE(2026,7,1), DATE(2026,5,15), 0.04, 500000, 4, 1)

結果は 約2,411円 になります。発行から44日経過なので、500,000 × 0.04 × 44/365 ≒ 2,411円という日割り計算と一致しますよ。

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関数の計算結果ですよ。

手計算とACCRINT結果を検算する

ACCRINTの結果が正しいかどうか不安なときは、簡易な手計算で検算してみましょう。検算の手順は3ステップです。

  1. 経過日数を数える(決済日 − 発行日 または 直近利払日)
  2. 額面 × 年利 × 経過日数 ÷ 年間日数(basis=1なら365)で概算する
  3. ACCRINT結果と突き合わせる

たとえば半年払い社債(額面100万円・年利3%・basis=1)で発行4/1・決済7/31の場合、経過日数は121日、概算は 1,000,000 × 0.03 × 121/365 ≒ 9,945円 でACCRINT結果と一致します。

basisを変えると分母(年間日数)や分子(経過日数の数え方)が変わるので、検算式も合わせて変えてくださいね。30/360方式(basis=0や4)では「経過月数を30日換算」して数えるので、4月1日から7月31日なら「3か月+30日 = 120日」として扱います。

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と判断すれば大丈夫です。

迷ったときは引数の数も目印になります。frequency(頻度)の指定が必要なら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関数で一瞬で算出できるわけですよ。

スプレッドシート上では次のように組み合わせると便利です。

=B6*B8/100 + ACCRINT(B2, B3, B4, B5, B6, B7, 1)

B6に額面、B8にクリーンプライス率(例: 99.50)を入れておけば、受渡金額が一発で出ますよ。

期末未収利息の仕訳イメージ

期末決算で未収利息を計上する場合も同じ考え方です。期末時点の決済日でACCRINTを計算すれば、「発行日から期末までに発生している未収利息」がそのまま計上額として使えます。

仕訳イメージは次のとおりです。

借方貸方
未収収益(B/S資産) 9,945受取利息(P/L収益) 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 を指定し直してみてください。

頻度(frequency)と実際の利払い回数がズレているケースもあります。半年払いなのに frequency=1 を指定すると、内部計算でクーポン期間配分が変わって結果がブレますよ。

Excelとの互換性

ACCRINT関数はExcelとGoogleスプレッドシートで同じ計算結果を返します。Excelファイル(.xlsx)をスプレッドシートで開いても関数はそのまま動作しますよ。

スプレッドシートでは引数名が日本語で表示されます。Excelの英語表記(issuefirst_interestsettlementrateredemptionfrequencybasiscalc_method)と見た目は違いますが、動作は完全に同じです。

ACCRINTM関数も同様にExcel・スプレッドシート間で互換性があります。両方の環境で同じ分析ファイルを使えるので、チーム内で経過利息の計算ロジックを統一しやすいですよ。

関連する財務関数

ACCRINT関数は、同じ債券分析シリーズの関数と組み合わせて使う場面が多い関数です。それぞれの位置づけを整理しておきましょう。

関数用途
ACCRINT関数定期利付債の経過利息
ACCRINTM関数満期一括払い債の経過利息
YIELD関数定期利付債の利回り
PRICE関数定期利付債の理論価格(クリーンプライス)
DURATION関数定期利付債の加重平均回収期間

実務でよくある流れは、「PRICE関数で理論クリーンプライスを計算 → ACCRINT関数で経過利息を計算 → 合算してダーティプライスを出す」という組み合わせですよ。

YIELD関数で利回りを逆算したり、DURATION関数で金利リスクを測ったりと、財務関数シリーズはセットで使うと威力を発揮します。

ACCRINT関数に関するよくある質問(FAQ)

Q. ACCRINTとACCRINTMはどう使い分けますか?

対象債券の利払方式で判断します。定期利払債(年1/2/4回のクーポンあり)ならACCRINT、満期一括払い債(ゼロクーポン・CDなど)ならACCRINTMです。目論見書に「年2回利払い」とあればACCRINT、「満期時に一括償還」とあればACCRINTMと覚えてくださいね。

Q. frequency に 12(月1回)は指定できますか?

できません。frequencyは 1(年1回)/ 2(半年)/ 4(四半期)の3種類のみです。12を指定すると #NUM! エラーになりますよ。月1回払いの債券はACCRINT関数では正確にカバーできないので、手計算かカスタム関数で対応してくださいね。

Q. basis は何を選べばよいですか?

日本の国債・社債なら 1(実際/実際)が基本です。米国短期金融商品では 2(実際/360日)が一般的ですよ。最終的には目論見書や社債要項に記載された日数計算基準に従うのが安全です。迷ったら basis=1 から試して、結果が取引明細書と合うか確認してくださいね。

Q. calc_method を FALSE にすべきケースは?

直近利払日後の途中売買で、起算点を「直近利払日」にしたい場合だけです。通常はTRUE(既定)で問題なく、99%のケースは省略でOKですよ。FALSEを使う場面はかなり限定的なので、迷ったら省略してください。

Q. ACCRINTの結果と取引明細書の経過利息が合わないのはなぜ?

basisの不一致がほぼ原因です。日本社債で basis=0(30/360)を使うと、実日数ベースの取引明細書の数字と数日分ズレますよ。目論見書記載の方式に変更して再計算してみてください。それでも合わない場合は、起算点(calc_methodの設定)や経過日数の数え方も確認してくださいね。

Q. 半年払いと年1回払いで経過日数が同じなら結果も同じですか?

ほぼ同じですが、basisとfrequencyにより内部のクーポン期間配分が変わるため、わずかにズレることがあります。日割り計算の基本式は同じですが、ACCRINT関数の内部処理ではクーポン区間ごとに按分しているので、頻度違いで微差が出るんですよ。

Q. Excel と Google スプレッドシートで結果が違うことはありますか?

ありません。同じ引数を与えれば完全に同じ結果が返ります。引数の順序・名称も共通なので、Excelで作った財務モデルをそのままスプレッドシートに移しても問題なく動きますよ。

Q. 期末の未収利息計上にも使えますか?

使えます。決済日に期末日(例: 3/31)を指定すれば、「発行日から期末までに発生した未収利息」が得られますよ。仕訳は「未収収益/受取利息」で計上し、翌期の利払日に消し込みます。監査対応用にACCRINT結果をシートに残しておくと検算がスムーズですよ。

まとめ

スプレッドシートのACCRINT関数は、定期利付債の経過利息を計算する財務関数です。ポイントをまとめておきます。

  • 引数は発行日・初回利払日・決済日・利率・額面・頻度の6つが必須。basisとcalc_methodは省略可
  • 頻度(frequency)は 1, 2, 4 のいずれか(年1回/半年/四半期)のみ
  • 返す値は「発行日から決済日までに発生した利息額」。日割り計算が基本
  • ダーティプライス = クリーンプライス + ACCRINT で受渡金額を計算できる
  • 日本の債券なら basis=1(実際/実際) が目安
  • ACCRINTM関数とは別物。定期利払い債ならACCRINT、満期一括払い債ならACCRINTM
  • Excel・スプレッドシート間で完全互換。関数名・引数順序も共通

債券の途中売買や期末の未収利息計上では、経過利息の計算がどうしても必要になります。ACCRINT関数を使いこなせるようになると、取引明細書の検算や仕訳額の計算がグッとラクになりますよ。

PRICE関数YIELD関数DURATION関数とあわせて、財務関数シリーズを一通りチェックしておくと、債券分析の基礎が整いますね。

タイトルとURLをコピーしました