ExcelのCOUPNCD関数の使い方|受渡日後の最初の利払日

スポンサーリンク

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のみ省略可能です。COUPDAYBSCOUPDAYSCOUPDAYSNCとまったく同じ引数構成です。

引数必須/省略意味
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)米国社債
1Actual/Actual米国国債(実日数計算)
2Actual/360米国マネーマーケット
3Actual/365日本国内債券
4European 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
B4frequency2
B5basis1

数式は =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次回利払日
国債A2026/5/72030/11/72=COUPNCD(B2,C2,D2,1)
社債B2026/3/152029/9/151=COUPNCD(B3,C3,D3,1)
地方債C2026/4/12028/3/154=COUPNCD(B4,C4,D4,1)

次の利払日までの残日数と金額を同時確認

=COUPDAYSNC(B2, C2, D2, 1)   → 次回利払日まで何日
=COUPNCD(B2, C2, D2, 1)      → 次回利払日はいつ
=1000000 * 0.015 / 2          → 次回クーポン受取額(半年分)

この3つを並べると「何日後にいくら入るか」が一目でわかる管理シートが作れます。

関連する財務関数の全体像

債券タイプ価格関数利回り関数利払日関数
定期利払い債(クーポン付)PRICEYIELDCOUPPCD / COUPNCD / COUPNUM
割引証券(TB・CP)PRICEDISCYIELDDISC(該当なし)
満期一括利払い債PRICEMATYIELDMAT(該当なし)

よくあるエラーと対処法

結果が大きな数字になる(日付が表示されない)

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系関数を体系的に身につければ、債券管理シートの自動化がぐっと楽になりますよ。

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