「この短期社債、利息は満期に一括で受け取るんだけど、途中で売るときの経過利息ってどう計算するんだっけ?」と迷ったことはありませんか。満期払い債(利息を満期時に一括支払いする債券)の経過利息は、スプレッドシートのACCRINTM関数を使えば一発で計算できますよ。
この記事では、スプレッドシートのACCRINTM関数の使い方を、構文から実務の活用例・ACCRINT関数との使い分けまで、同僚に教える感覚で解説します。CD(譲渡性預金)や短期社債の経過利息計算にぜひ活用してくださいね。
スプレッドシートのACCRINTM関数とは?
スプレッドシートのACCRINTM関数は、発行日から満期日まで利息を支払わず、満期時に一括で利息を受け取る債券について、発行日から決済日までの経過利息を計算する財務関数です。
関数名の末尾の「M」は「Maturity(満期)」を意味します。通常のACCRINT関数が「定期的にクーポンを支払う利付債」向けなのに対し、ACCRINTM関数は「満期時に利息を一括払いする満期払い債」専用ですよ。
この満期払い方式が使われる代表的な金融商品には、CD(譲渡性預金)・割引短期国債・一部の短期社債などがあります。これらを途中売買したとき、買い手は売り手に対して「発行日から売買日までの経過利息分」を支払うのが商習慣です。ACCRINTM関数はその金額を自動計算してくれるんですよ。
ACCRINTM関数の構文と引数
ACCRINTM関数の構文は次のとおりです。
=ACCRINTM(発行日, 決済日, 利率, [額面], [日数計算基準])
英語表記だと =ACCRINTM(issue, settlement, rate, [par], [day_count_convention]) となります。
| 引数 | 省略 | 説明 |
|---|---|---|
| 発行日(issue) | 必須 | 債券の発行日。DATE関数での指定を推奨 |
| 決済日(settlement) | 必須 | 経過利息を計算する基準日(受渡日) |
| 利率(rate) | 必須 | 債券の年利率(例: 0.03 = 年3%) |
| 額面(par) | 省略可 | 債券の額面金額(省略時は1000) |
| 日数計算基準(basis) | 省略可 | 1年の日数計算方式(下表参照、省略時は0) |
ACCRINT関数と比べると、引数が大幅にシンプルですね。「初回利払日」も「頻度」も不要で、発行日・決済日・利率の3つだけで計算できます。満期払い債は定期利払いがないので、利払い頻度を指定する必要がないんですよ。
日数計算基準(basis)の設定値
| 値 | 1年の日数計算 |
|---|---|
| 0(省略時) | 30日/360日(米国NASD方式) |
| 1 | 実際の日数/実際の日数 |
| 2 | 実際の日数/360日 |
| 3 | 実際の日数/365日 |
| 4 | 30日/360日(ヨーロッパ方式) |
日本のCD(譲渡性預金)や短期社債では basis=1(実際/実際) が一般的です。対象商品の目論見書や商品説明書に記載された計算方式に合わせて指定してくださいね。
ACCRINTM関数の基本的な使い方
CDの経過利息を求める
額面100万円・年利0.5%・2026年4月1日発行・2026年10月1日満期のCD(譲渡性預金)を、2026年7月31日に売買するケースで経過利息を計算してみましょう。
| セル | 項目 | 値 |
|---|---|---|
| B2 | 発行日 | 2026/4/1 |
| B3 | 決済日(売買日) | 2026/7/31 |
| B4 | 年利率 | 0.005 |
| B5 | 額面 | 1000000 |
=ACCRINTM(B2, B3, B4, B5, 1)
結果は 約1,657円 になります。発行日(4/1)から決済日(7/31)までの121日分が、年利0.5%・額面100万円に対する経過利息として計算されますよ(1,000,000 × 0.005 × 121/365 ≒ 1,657)。
直接日付を入れる場合はDATE関数を使います。
=ACCRINTM(DATE(2026,4,1), DATE(2026,7,31), 0.005, 1000000, 1)
短期社債の経過利息を求める
額面500万円・年利1.2%・2026年1月10日発行・2026年7月10日満期の短期社債を、2026年4月10日(発行から90日後)に売買する例です。
=ACCRINTM(DATE(2026,1,10), DATE(2026,4,10), 0.012, 5000000, 1)
結果は 約14,795円 になります。5,000,000 × 0.012 × 90/365 ≒ 14,795 という計算ですよ。
額面を省略した場合
額面引数を省略すると、ACCRINTM関数は額面を1000として計算します。
=ACCRINTM(DATE(2026,4,1), DATE(2026,7,31), 0.005, , 1)
結果は 約1.66 になります(1000 × 0.005 × 121/365 ≒ 1.66)。100万円の経過利息を出したい場合は、この値に1000を掛けるか、素直に額面を指定したほうが間違いがないですよ。
計算のしくみを理解する
基本公式は「日割り利息」
ACCRINTM関数が返す値は、次の式で計算されます。
経過利息 = 額面 × 年利率 × 経過日数 ÷ 1年の日数
たとえば、額面100万円・年利0.5%・経過121日(basis=1)の場合、1,000,000 × 0.005 × 121/365 ≒ 1,657円 です。
ACCRINT関数(定期利付債)と違い、ACCRINTM関数は利払い回数に関係なく、単純に日割り計算します。定期クーポンを加味した複雑な按分が不要なのが、満期払い債の特徴ですよ。
basisで結果がどう変わるか
同じ条件(額面100万円・利率0.5%・発行4/1・決済7/31)で、basisを変えると結果が少し変わります。
| basis | 結果の概算 | 特徴 |
|---|---|---|
| 0(30日/360日・米国) | 1,667円 | 月を30日固定で計算 |
| 1(実際/実際) | 1,657円 | 日本のCDで一般的 |
| 2(実際/360日) | 1,681円 | 分子は実日数・分母360日 |
| 3(実際/365日) | 1,657円 | 閏年も365日扱い |
| 4(30日/360日・欧州) | 1,667円 | 欧州方式 |
金額の差は小さく見えますが、額面が大きい取引では無視できない差になります。商品の目論見書や計算書に記載された基準に合わせて指定してくださいね。
ACCRINT(定期利付債)との使い分け
2つの関数の違いを整理
| 観点 | ACCRINTM関数 | ACCRINT関数 |
|---|---|---|
| 対象債券 | 満期一括払い債 | 定期利付債(クーポン債) |
| 利払方式 | 満期時に元本と利息を一括 | 年1/2/4回の定期利払い |
| 引数の数 | 3〜5個(シンプル) | 6〜8個 |
| 頻度指定 | なし | あり(1, 2, 4) |
| 初回利払日 | なし | あり(必須) |
| 主な用途 | CD・短期社債・割引短期債 | 社債・利付国債・地方債 |
実務での選び方
選び分けの基準はシンプルです。
- 途中でクーポン(定期利息)が支払われる → ACCRINT関数
- 満期まで利息が支払われず、満期に一括で受け取る → ACCRINTM関数
目論見書や商品概要書に「利払日:年2回」「利息:○月○日・○月○日」のような記載があればACCRINT、「償還時一括払い」「満期時受取」のような記載があればACCRINTMと判断すれば大丈夫ですよ。
引数の数で判断するのも簡単です。「初回利払日」や「頻度」が必要かどうかを考えると、自然にどちらを使うべきか分かりますよ。
途中売買時の受渡金額を計算する
ACCRINTM関数を使うと、満期払い債を途中売買するときの受渡金額を算出できます。
満期払い債の受渡金額 = 購入価格(クリーンプライス相当) + ACCRINTM(経過利息)
たとえば、額面100万円の短期社債を「額面の99.80%」で売買する場合:
| 項目 | 金額 |
|---|---|
| 額面 | 1,000,000円 |
| 購入価格(99.80%) | 998,000円 |
| 経過利息(ACCRINTM) | 1,657円 |
| 実際の受渡金額 | 999,657円 |
買い手が売り手に支払う1,657円が「売り手の保有期間分の利息の対価」です。次の受取時(満期)に買い手は利息の全額を受け取るので、差し引きすると発行日から売買日までの分を後で精算する形になっていますよ。
よくあるエラーと対処法
#NUM!エラー
以下のケースで発生します。
| 発生条件 | 対処法 |
|---|---|
| 発行日 ≥ 決済日 | 発行日が決済日より前になるよう修正する |
| 利率が0以下 | 正の利率を指定する |
| 額面が0以下 | 正の額面を指定する |
| basis が 0〜4 以外 | 0、1、2、3、4のいずれかに修正する |
#VALUE!エラー
引数に数値・日付以外の文字列が入っている場合に発生します。日付は DATE(2026,4,1) のようにDATE関数で指定するのが確実ですよ。セル参照で日付を渡す場合は、参照先のセルが日付書式になっているかも確認してください。
#NAME?エラー
関数名のスペルミスが原因です。「ACCRINTM」の打ち間違いや、ACCRINT(Mなし)と混同するケースがありますよ。入力中に候補から選ぶようにすると防げます。
結果がゼロ
発行日と決済日を逆に指定しているか、利率や額面に0が入っているケースが多いです。引数を一つずつ確認してみてください。
ACCRINT関数との混同
「ACCRINT関数でこの債券の経過利息を計算しようとしたら#NUM!エラーになる」という場合、対象商品が満期払い債でACCRINTM関数を使うべきだった、というケースがよくあります。ACCRINT関数の「初回利払日」「頻度」に何を入れればよいか分からないときは、ACCRINTM関数の方が適切な商品である可能性が高いですよ。
Excelとの互換性
ACCRINTM関数はExcelとGoogleスプレッドシートで同じ計算結果を返します。Excelファイル(.xlsx)をスプレッドシートで開いても関数はそのまま動作しますよ。
スプレッドシートでは引数名が日本語で表示されます。Excelの英語表記(issue、settlement、rate、par、basis)と見た目は違いますが、動作は完全に同じです。
ACCRINT関数も含め、経過利息系の財務関数はExcel・スプレッドシート間で完全に互換性があります。チーム内で同じ計算ロジックを使いたい場合も安心ですよ。
関連する財務関数
ACCRINTM関数は、同じ債券分析シリーズの関数と組み合わせて使う場面が多い関数です。それぞれの位置づけを整理しておきましょう。
| 関数 | 用途 |
|---|---|
| ACCRINTM関数 | 満期一括払い債の経過利息 |
| ACCRINT関数 | 定期利付債の経過利息 |
| YIELD関数 | 定期利付債の利回り |
| PRICE関数 | 定期利付債の理論価格 |
| DURATION関数 | 定期利付債の加重平均回収期間 |
| MDURATION関数 | 定期利付債の修正デュレーション(金利感応度) |
満期払い債を分析する場面では、ACCRINTM関数で経過利息を計算しつつ、ポートフォリオ全体の金利リスクを測る際はMDURATION関数を組み合わせることが多いですよ。ACCRINT関数との使い分けを覚えておくだけで、債券実務の計算がずいぶん整理されますね。
まとめ
スプレッドシートのACCRINTM関数は、満期時に利息を一括払いする債券の経過利息を計算する財務関数です。ポイントをまとめておきます。
- 引数は発行日・決済日・利率の3つが必須。額面とbasisは省略可
- 計算の基本は 額面 × 利率 × 経過日数 ÷ 年間日数 という日割り
- 定期クーポンがない分、ACCRINT関数より引数がシンプル
- 日本のCDや短期社債には basis=1(実際/実際) が目安
- 「途中でクーポンが支払われる」→ACCRINT、「満期まで利息ゼロ」→ACCRINTM
- Excel・スプレッドシート間で完全互換
CD・割引短期債・短期社債の途中売買や経過利息の計算では、ACCRINTM関数を覚えておくと素早く処理できます。ACCRINT関数と合わせて、どちらを使うべきかの判断軸を身につけておくと、債券実務の幅がぐっと広がりますよ。
