ExcelのCOUPNCD関数の使い方|受渡日後の最初の利払日
債券を購入したとき、「次回の利息受取日はいつ?」をすぐに確認したいことがありますよね。利払いスケジュールを把握しておくと、資金繰り計画や投資判断の精度が上がります。
ExcelのCOUPNCD関数を使えば、受渡日後の最初の利払日(次回クーポン日)の日付を引数4つで一発で取り出せます。COUPDAYSNC関数が「次の利払日まで何日か(日数)」を返すのに対し、COUPNCD は「次の利払日はいつか(日付)」を返す関数です。
この記事では、COUPNCD関数の構文・実例・COUPPCD/COUPDAYSNCとの関係・エラー対処まで解説します。
ExcelのCOUPNCD関数とは?
ExcelのCOUPNCD関数(読み方:クーポン・エヌシーディー)は財務関数の一つです。受渡日後の最初の利払日の日付を返します。
関数名は「COUPon Next Coupon Date」の略です。「次のクーポン日」を意味します。債券を満期前に購入するとき、「いつ最初のクーポンが入るか」を日付で確認できる関数です。
COUPNCD関数が必要な場面
- 受渡日後の最初の利払日を日程表に記録したいとき
- 利払いまでの日数を COUPDAYSNC 関数と組み合わせて確認したいとき
- 直前の利払日(COUPPCD)と次の利払日(COUPNCD)でクーポン期間を把握したいとき
COUPNCD関数で扱える債券
定期的にクーポンを支払う利付債が対象です。
- 利付国債(10年債・5年債など)
- 利付社債
- 地方債
- 半年払い債券
- 四半期払い債券
割引証券(TB・CP)や満期一括利払い債は対象外です。それぞれYIELDDISC関数やYIELDMAT関数が対応しています。
COUPNCD関数の構文と引数
COUPNCD関数の構文は次のとおりです。
=COUPNCD(settlement, maturity, frequency, [basis])
引数は4つで、basisのみ省略可能です。COUPDAYBS・COUPDAYS・COUPDAYSNCとまったく同じ引数構成です。
| 引数 | 必須/省略 | 意味 |
|---|---|---|
| settlement | 必須 | 受渡日(証券の購入が完了する日) |
| maturity | 必須 | 満期日(償還日)。settlementより後の日付 |
| frequency | 必須 | 年間利払回数(1=年1回・2=半年1回・4=四半期1回) |
| basis | 省略可 | 日数計算基準(0〜4の整数。既定は0) |
COUPNCD関数の戻り値について
COUPNCD関数は「日付のシリアル値」を返します。セルの書式が「数値」のままだと大きな数字が表示されるので、書式を「日付」に変更するか、TEXT関数で整形してください。
=TEXT(COUPNCD(DATE(2026,5,7), DATE(2030,11,7), 2, 1), "yyyy/mm/dd")
frequency 引数の選び方
| 値 | 利払頻度 | 主な対象 |
|---|---|---|
| 1 | 年1回払い | 一部の社債・外国債 |
| 2 | 半年払い | 国債・多くの社債 |
| 4 | 四半期払い | 地方債・一部社債 |
3(4か月ごと)や12(毎月払い)は指定できません。#NUM! エラーになります。
basis 引数の選び方
| 値 | 名称 | 主な対象 |
|---|---|---|
| 0(既定) | US 30/360 (NASD) | 米国社債 |
| 1 | Actual/Actual | 米国国債(実日数計算) |
| 2 | Actual/360 | 米国マネーマーケット |
| 3 | Actual/365 | 日本国内債券 |
| 4 | European 30/360 | 欧州社債 |
国債なら basis=1、日本国内の社債なら basis=3 が市場慣行です。
COUPNCD関数の基本的な使い方
実例で動きを確認しましょう。
例1: 半年払い国債の次回利払日
10年物国債(半年払い)を受渡日に購入した場面です。
- 受渡日: 2026/5/7
- 満期日: 2030/11/7
- frequency: 2(半年払い)
- basis: 1(Actual/Actual)
=COUPNCD(DATE(2026,5,7), DATE(2030,11,7), 2, 1)
結果は 2026/11/7 が返ります(セルを日付書式にした場合)。受渡日の半年後がそのまま次の利払日になります。
例2: 年1回払い社債の次回利払日
- 受渡日: 2026/5/7
- 満期日: 2029/9/15
- frequency: 1(年1回払い)
- basis: 1
=COUPNCD(DATE(2026,5,7), DATE(2029,9/15), 1, 1)
結果は 2026/9/15 です。満期日の月日(9月15日)がそのまま次の利払日の基準になっています。
例3: 四半期払い債券の次回利払日
- 受渡日: 2026/5/7
- 満期日: 2028/3/15
- frequency: 4(四半期払い)
- basis: 1
=COUPNCD(DATE(2026,5,7), DATE(2028,3,15), 4, 1)
結果は 2026/6/15 です。四半期払いの場合、利払い月は満期日の月(3月)から3か月ごとの周期になります(3月・6月・9月・12月)。受渡日2026/5/7の次は2026/6/15です。
引数をセル参照にする書き方
| セル | 内容 | 値 |
|---|---|---|
| B2 | 受渡日 | 2026/5/7 |
| B3 | 満期日 | 2030/11/7 |
| B4 | frequency | 2 |
| B5 | basis | 1 |
数式は =COUPNCD(B2, B3, B4, B5) です。セルB6に日付書式で表示されます。
COUPNCD・COUPPCD・COUPDAYSNCの関係
COUPNCD と組み合わせてよく使う関数をまとめます。
| 関数 | 返す値 | 形式 |
|---|---|---|
| COUPNCD | 次の利払日 | 日付 |
| COUPPCD | 直前の利払日 | 日付 |
| COUPDAYSNC | 受渡日〜次の利払日の日数 | 数値(日数) |
| COUPDAYBS | 直前利払日〜受渡日の日数 | 数値(日数) |
COUPNCD と COUPDAYSNC の関係
COUPNCD - settlement = COUPDAYSNC
COUPNCD(日付)から受渡日(settlement)を引いた日数が、COUPDAYSNC の戻り値と一致します。数値で欲しいなら COUPDAYSNC、日付で欲しいなら COUPNCD を使うと覚えておきましょう。
具体例で確認する
半年払い国債(受渡日2026/5/7・満期日2030/11/7・frequency=2・basis=1)で確認します。
=COUPNCD(DATE(2026,5,7), DATE(2030,11,7), 2, 1) → 2026/11/7(シリアル値: 46,0xx)
=COUPDAYSNC(DATE(2026,5,7), DATE(2030,11,7), 2, 1) → 184
=COUPPCD(DATE(2026,5,7), DATE(2030,11,7), 2, 1) → 2025/11/7
COUPNCD(2026/11/7)- settlement(2026/5/7)= 184日 → COUPDAYSNC の 184 と一致します。
COUP系関数の全体マップ
| 関数 | 返す値の種類 | 方向 |
|---|---|---|
| COUPPCD | 直前の利払日(日付) | 過去 |
| COUPDAYBS | 直前利払日〜受渡日(日数) | 過去 |
| COUPDAYS | クーポン期間全体(日数) | 全体 |
| COUPDAYSNC | 受渡日〜次の利払日(日数) | 未来 |
| COUPNCD | 次の利払日(日付) | 未来 |
| COUPNUM | 残りの利払回数 | 未来 |
実務での活用例
利払いスケジュール表の自動生成
複数の債券を保有している場合、受渡日と満期日を入力するだけで次回利払日が自動表示される管理表を作れます。
| 銘柄 | 受渡日 | 満期日 | frequency | 次回利払日 |
|---|---|---|---|---|
| 国債A | 2026/5/7 | 2030/11/7 | 2 | =COUPNCD(B2,C2,D2,1) |
| 社債B | 2026/3/15 | 2029/9/15 | 1 | =COUPNCD(B3,C3,D3,1) |
| 地方債C | 2026/4/1 | 2028/3/15 | 4 | =COUPNCD(B4,C4,D4,1) |
次の利払日までの残日数と金額を同時確認
=COUPDAYSNC(B2, C2, D2, 1) → 次回利払日まで何日
=COUPNCD(B2, C2, D2, 1) → 次回利払日はいつ
=1000000 * 0.015 / 2 → 次回クーポン受取額(半年分)
この3つを並べると「何日後にいくら入るか」が一目でわかる管理シートが作れます。
関連する財務関数の全体像
| 債券タイプ | 価格関数 | 利回り関数 | 利払日関数 |
|---|---|---|---|
| 定期利払い債(クーポン付) | PRICE | YIELD | COUPPCD / COUPNCD / COUPNUM |
| 割引証券(TB・CP) | PRICEDISC | YIELDDISC | (該当なし) |
| 満期一括利払い債 | PRICEMAT | YIELDMAT | (該当なし) |
よくあるエラーと対処法
結果が大きな数字になる(日付が表示されない)
COUPNCD は日付のシリアル値を返します。セルの書式が「標準」や「数値」だと大きな整数(例: 46342)が表示されます。セルを選択して「日付」書式に変更するか、TEXT関数を使ってください。
=TEXT(COUPNCD(DATE(2026,5,7), DATE(2030,11,7), 2, 1), "yyyy/mm/dd")
#NUM! エラー
| 原因 | 対処法 |
|---|---|
| settlement ≧ maturity | 受渡日が満期日より前になるよう修正 |
| frequency が 1・2・4 以外 | 1、2、4 のいずれかを指定 |
| basis が 0〜4 以外 | 0〜4の整数を指定 |
#VALUE! エラー
settlementやmaturityが日付として認識されていないことが原因です。
誤: =COUPNCD("2026-05-07", "2030-11-07", 2, 1)
正: =COUPNCD(DATE(2026,5,7), DATE(2030,11,7), 2, 1)
#NAME? エラー
「COUPNCD」のスペルミスが原因です。「COUPONCD」「COUP_NCD」は存在しません。Excelの入力候補から選ぶと安全です。
まとめ
ExcelのCOUPNCD関数は、受渡日後の最初の利払日(次回クーポン日)の日付を返す財務関数です。本記事のポイントを振り返ります。
- 構文:
=COUPNCD(settlement, maturity, frequency, [basis]) - 戻り値: 次の利払日の日付(シリアル値)→ セルを日付書式にして使う
- 対象: 利付国債・利付社債・地方債など定期的にクーポンを支払う債券
- frequency: 1(年1回)・2(半年)・4(四半期)のみ有効
- COUPDAYSNCとの関係: COUPNCD − settlement = COUPDAYSNC(日付版 vs 日数版)
- COUPPCD との使い分け: 直前の利払日は COUPPCD、次の利払日は COUPNCD
- basis: basis=1(国債/Actual/Actual)、basis=3(国内社債/Actual/365)が市場慣行
同シリーズのCOUPDAYBS関数・COUPDAYS関数・COUPDAYSNC関数・YIELD関数・PRICEMAT関数・YIELDDISC関数・RECEIVED関数もあわせて確認してみてください。COUP系関数を体系的に身につければ、債券管理シートの自動化がぐっと楽になりますよ。
