「この債券はあと何回利息を受け取れるの?」という疑問に一発で答えてくれるのが COUPNUM 関数です。決済日・満期日・頻度を入れるだけで、満期までに残っている利払い(クーポン)の回数が整数で返ってきますよ。
この記事では、スプレッドシートの COUPNUM 関数の使い方を、構文・実例・よくあるエラーの対処まで同僚に教える感覚で解説します。残存利払い回数を把握したいときや、債券の利払いスケジュール表を作るときにぜひ活用してください。
スプレッドシートの COUPNUM 関数とは?
スプレッドシートの COUPNUM 関数は、決済日から満期日の間に残っているクーポン(利払い)の回数を返す財務関数です。
関数名の COUPNUM は “Coupon Number”(クーポン数)を略したものです。
債券を購入した後、満期日までに何回利息を受け取れるかを確認したいときに使います。たとえば「2026/4/22 に購入した半年払い国債(満期 2028/10/22)は、あと何回クーポンがもらえるか?」という疑問に対して、COUPNUM 関数が回数を整数で返してくれますよ。
結果は切り上げ処理(ceiling)された整数になります。決済日から満期日までの期間が端数になる場合も、常に「次の利払日以降の回数」が返されます。
COUPNUM 関数の構文と引数
COUPNUM 関数の構文は次のとおりです。
=COUPNUM(決済日, 満期日, 頻度, [日数計算方法])
英語表記だと =COUPNUM(settlement, maturity, frequency, [basis]) となります。
| 引数 | 省略 | 説明 |
|---|---|---|
| 決済日(settlement) | 必須 | 証券の受渡日(購入が完了する日)。DATE 関数での指定を推奨 |
| 満期日(maturity) | 必須 | 証券の満期日。決済日より後の日付を指定する |
| 頻度(frequency) | 必須 | 年間の利払い回数。1=年1回、2=半年払い、4=四半期払い |
| 日数計算方法(basis) | 省略可 | 1年の日数計算方式(下表参照、省略時は0) |
日数計算方法(basis)の設定値
| 値 | 1年の日数計算 |
|---|---|
| 0(省略時) | 30日/360日(米国NASD方式) |
| 1 | 実際の日数/実際の日数 |
| 2 | 実際の日数/360日 |
| 3 | 実際の日数/365日 |
| 4 | 30日/360日(ヨーロッパ方式) |
COUPNUM では basis の値が結果に影響することはほとんどありません。利払い回数のカウントは日数計算方式ではなく「決済日から満期日の間に何回利払い日があるか」で決まるためですよ。
COUPNUM 関数の基本的な使い方
半年払い債券の残存利払い回数を求める
年率5%・半年払い(frequency=2)の国債を、2026/4/22 に購入する場合の残存利払い回数を求めます。満期日は 2028/10/22 とします。
| セル | 項目 | 値 |
|---|---|---|
| B2 | 決済日 | 2026/4/22 |
| B3 | 満期日 | 2028/10/22 |
| B4 | 頻度 | 2 |
=COUPNUM(B2, B3, B4)
結果は 5 です。購入後の利払い日は 2026/10/22、2027/4/22、2027/10/22、2028/4/22、2028/10/22 の5回ですよ。
DATE 関数を使って直接指定することもできます。
=COUPNUM(DATE(2026,4,22), DATE(2028,10,22), 2)
年1回払い債券の残存利払い回数を求める
年1回払い(frequency=1)の社債で決済日が 2026/4/22、満期日が 2029/9/15 の場合です。
=COUPNUM(DATE(2026,4,22), DATE(2029,9,15), 1)
結果は 4 です。利払い日は 2026/9/15、2027/9/15、2028/9/15、2029/9/15 の4回(満期日含む)ですよ。
四半期払い債券の残存利払い回数を求める
四半期払い(frequency=4)の社債で決済日が 2026/4/22、満期日が 2028/1/15 の場合です。
=COUPNUM(DATE(2026,4,22), DATE(2028,1,15), 4)
結果は 7 です。利払い日は 2026/7/15、2026/10/15、2027/1/15、2027/4/15、2027/7/15、2027/10/15、2028/1/15 の7回ですよ。
受取総利息額を概算する
COUPNUM と利率・頻度を組み合わせると、残存期間中の受取総利息額(概算)を計算できます。
額面 × 年率利率 ÷ 頻度 × COUPNUM
上記の半年払い国債(額面1,000万円・年率5%)の場合:
=10000000 * 0.05 / 2 * COUPNUM(DATE(2026,4,22), DATE(2028,10,22), 2)
結果は 1,250,000 円 です。5回 × 25万円(1回あたりのクーポン)= 125万円が、満期まで受け取れる利息の合計目安になりますよ。ただしこれは税引き前の概算値で、実際の受取額は源泉徴収後になります。
残存利払い回数の確認リストを作る
複数の債券を管理する場合、COUPNUM を一列に並べると比較が楽になります。
| 銘柄 | 決済日 | 満期日 | 頻度 | 残存回数 |
|---|---|---|---|---|
| 国債A | 2026/4/22 | 2028/10/22 | 2 | =COUPNUM(B2,C2,D2) → 5 |
| 社債B | 2026/4/22 | 2029/9/15 | 1 | =COUPNUM(B3,C3,D3) → 4 |
| 社債C | 2026/4/22 | 2028/1/15 | 4 | =COUPNUM(B4,C4,D4) → 7 |
このように一覧化すると、どの債券があと何回利息を受け取れるかが一目でわかりますよ。
よくあるエラーと対処法
#NUM! エラー
以下のケースで発生します。
| 発生条件 | 対処法 |
|---|---|
| 決済日 ≥ 満期日 | 決済日が満期日より前になるよう修正する |
| 頻度が1・2・4以外 | 1、2、4 のいずれかを指定する |
| basis が 0〜4 以外 | 0, 1, 2, 3, 4 のいずれかを指定する |
頻度(frequency)は1・2・4のみ有効です。月次払い(12)や隔月払い(6)などは使えませんよ。
#VALUE! エラー
引数に数値や日付以外の文字列が入っている場合に発生します。日付を直接書くときは DATE(2026,4,22) のように DATE 関数を使うと確実ですよ。
#NAME? エラー
関数名のスペルミスが原因です。「COUPONNUM」「COUP_NUM」などは存在しない関数名です。入力候補から選ぶようにしましょう。
Excel との互換性
COUPNUM 関数は Excel と Google スプレッドシートで同じ計算結果を返します。Excel ファイル(.xlsx)をスプレッドシートで開いても関数はそのまま動作しますよ。
スプレッドシートでは引数名が日本語(「決済日」「満期日」「頻度」「日数計算方法」)で表示されます。Excel の英語表記(settlement、maturity、frequency、basis)と見た目は異なりますが、動作に影響はありません。
まとめ
スプレッドシートの COUPNUM 関数は、決済日から満期日の間に残っている利払い(クーポン)の回数を返す財務関数です。ポイントをまとめておきます。
- 引数は決済日・満期日・頻度の3つが必須。日数計算方法(basis)は省略可
- 頻度(frequency)は1(年1回)・2(半年払い)・4(四半期払い)のみ有効
- 結果は切り上げ処理された整数(次の利払日以降の回数)
額面 × 利率 ÷ 頻度 × COUPNUMで残存期間の受取総利息の概算が出せる- Excel との互換性があり、.xlsx ファイルをそのまま開いても動作する
購入した債券の残存利払い回数を確認したいときや、複数の債券を一覧比較するときにぜひ活用してみてください。クーポン関連の財務関数はCOUPNCD 関数・COUPPCD 関数・COUPDAYBS 関数・COUPDAYS 関数と合わせて使うと、債券の利払いスケジュール管理に役立ちますよ。
