「この債券を今日買ったら、次のクーポン(利息)はいつもらえるの?」という疑問にスパッと答えてくれる関数が COUPNCD です。決済日・満期日・頻度を入れるだけで、次の利払日の日付が返ってきますよ。
この記事では、スプレッドシートの COUPNCD 関数の使い方を、構文・実例・よくあるエラーの対処まで同僚に教える感覚で解説します。COUPPCD 関数や COUPDAYSNC 関数との使い分けも整理しているので、債券の利払いスケジュール管理に活用してください。
スプレッドシートの COUPNCD 関数とは?
スプレッドシートの COUPNCD 関数は、決済日(受渡日)の後に来る最初の利払日(クーポン支払い日)の日付を返す財務関数です。
関数名の COUPNCD は “Coupon Next Coupon Date”(次のクーポン日)を略したものです。
債券を購入した後、最初にクーポン(利息)を受け取る日がいつかを知りたいときに使います。たとえば「2026/4/22 に購入した半年払い国債の次の利払日は?」という疑問に対して、COUPNCD 関数が具体的な日付を返してくれますよ。
返される値はシリアル値(日付の数値)なので、セルに「日付」の表示形式を設定して使うのが基本です。
COUPNCD は COUP 系関数ファミリーの一員で、次のような位置づけになっています。
| 関数 | 返す値 | 関係 |
|---|---|---|
| COUPPCD | 直前の利払日(日付) | COUPNCD より1期前 |
| COUPNCD | 次の利払日(日付) | COUPPCD より1期後 |
| COUPDAYBS | 直前の利払日〜決済日の日数 | COUPPCD から決済日まで |
| COUPDAYSNC | 決済日〜次の利払日の日数 | 決済日から COUPNCD まで |
| COUPDAYS | クーポン期間全体の日数 | COUPPCD から COUPNCD まで |
COUPNCD 関数の構文と引数
COUPNCD 関数の構文は次のとおりです。
=COUPNCD(決済日, 満期日, 頻度, [日数計算方法])
英語表記だと =COUPNCD(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日(ヨーロッパ方式) |
結果はシリアル値で返ってくるため、セルの表示形式を「日付」に設定してください。表示形式を設定しないと整数(例: 46766)のような値が表示されますよ。
COUPNCD 関数の基本的な使い方
半年払い債券の次の利払日を求める
年率5%・半年払い(frequency=2)の国債を、2026/4/22 に購入する場合の次の利払日を求めます。満期日は 2028/10/22 とします。
| セル | 項目 | 値 |
|---|---|---|
| B2 | 決済日 | 2026/4/22 |
| B3 | 満期日 | 2028/10/22 |
| B4 | 頻度 | 2 |
=COUPNCD(B2, B3, B4)
結果は 2026/10/22 です(セルを日付形式に設定した場合)。次の利払日が 2026年10月22日であることがわかりますよ。
DATE 関数を使って直接指定することもできます。
=COUPNCD(DATE(2026,4,22), DATE(2028,10,22), 2)
年1回払い債券の次の利払日を求める
年1回払い(frequency=1)の社債で決済日が 2026/4/22、満期日が 2029/9/15 の場合です。
=COUPNCD(DATE(2026,4,22), DATE(2029,9,15), 1)
結果は 2026/9/15 です。年1回払いなので、次の利払日は満期日と同じ月日の2026年9月15日になりますよ。
四半期払い債券の次の利払日を求める
四半期払い(frequency=4)の社債で決済日が 2026/4/22、満期日が 2028/1/15 の場合です。
=COUPNCD(DATE(2026,4,22), DATE(2028,1,15), 4)
結果は 2026/7/15 です。四半期ごとの利払いなので、次の利払日は約3か月後の2026年7月15日になりますよ。
次の利払日まで何日かを COUPDAYSNC と組み合わせて確認する
COUPNCD で求めた次の利払日と COUPDAYSNC で求めた日数を並べると、利払いスケジュールをより直感的に把握できます。
次の利払日: =COUPNCD(DATE(2026,4,22), DATE(2028,10,22), 2) → 2026/10/22
次の利払日まで: =COUPDAYSNC(DATE(2026,4,22), DATE(2028,10,22), 2, 1) → 183日
「次の利払日は 2026/10/22、そこまで 183 日ある」という情報が一目でわかりますよ。
COUPPCD との使い分け
COUPNCD と対になる関数が COUPPCD(直前の利払日) です。
| 関数 | 返す値 |
|---|---|
| COUPPCD | 決済日の直前(または同日)の利払日 |
| COUPNCD | 決済日の直後の利払日 |
=COUPPCD(DATE(2026,4,22), DATE(2028,10,22), 2) → 2025/10/22(直前の利払日)
=COUPNCD(DATE(2026,4,22), DATE(2028,10,22), 2) → 2026/10/22(次の利払日)
2つの日付の差が COUPDAYS(クーポン期間の日数)と一致します。
=COUPNCD(...) - COUPPCD(...) ≒ COUPDAYS(...)
COUPPCD は発生利息計算の起点(経過日数の開始日)として、COUPNCD は次回クーポン受取日の確認として、それぞれ用途が異なりますよ。
よくあるエラーと対処法
結果が日付ではなく数値で表示される
エラーではなく表示形式の問題です。COUPNCD はシリアル値(日付の数値)を返すため、セルの表示形式を「日付」に設定してください。
スプレッドシートでは、セルを選択して「表示形式」→「数字」→「日付」を選ぶか、ショートカットで対応できますよ。
#NUM! エラー
以下のケースで発生します。
| 発生条件 | 対処法 |
|---|---|
| 決済日 ≥ 満期日 | 決済日が満期日より前になるよう修正する |
| 頻度が1・2・4以外 | 1、2、4 のいずれかを指定する |
| basis が 0〜4 以外 | 0, 1, 2, 3, 4 のいずれかを指定する |
#VALUE! エラー
引数に数値や日付以外の文字列が入っている場合に発生します。日付を直接書くときは DATE(2026,4,22) のように DATE 関数を使うと確実ですよ。
#NAME? エラー
関数名のスペルミスが原因です。「COUPNEXTDATE」「COUP_NCD」などは存在しない関数名です。
Excel との互換性
COUPNCD 関数は Excel と Google スプレッドシートで同じ計算結果を返します。Excel ファイル(.xlsx)をスプレッドシートで開いても関数はそのまま動作しますよ。
スプレッドシートでは引数名が日本語(「決済日」「満期日」「頻度」「日数計算方法」)で表示されます。Excel の英語表記(settlement、maturity、frequency、basis)と見た目は異なりますが、動作に影響はありません。
まとめ
スプレッドシートの COUPNCD 関数は、決済日の後に来る次の利払日(日付)を返す財務関数です。ポイントをまとめておきます。
- 引数は決済日・満期日・頻度の3つが必須。日数計算方法(basis)は省略可
- 頻度(frequency)は1(年1回)・2(半年払い)・4(四半期払い)のみ有効
- 結果はシリアル値で返るため、セルの表示形式を「日付」に設定する
- COUPPCD 関数が「直前の利払日」、COUPNCD が「次の利払日」
- 2つの差がCOUPDAYS 関数(クーポン期間の日数)と一致する
- Excel との互換性があり、.xlsx ファイルをそのまま開いても動作する
購入した債券の次のクーポン受取日を素早く確認したいときや、COUPDAYSNC 関数と組み合わせて残り日数も並べて管理したいときにぜひ活用してみてください。クーポン関連の財務関数はCOUPDAYBS 関数・COUPDAYS 関数・COUPPCD 関数・COUPNUM 関数と合わせて使うと、債券の利払いスケジュール管理に役立ちますよ。
