スプレッドシートのCOUPPCD関数の使い方|前の利払日

スポンサーリンク

債券を購入したとき、「前回の利払いはいつだったの?」という起点日を確認したいことがあります。COUPPCD 関数はまさにそのための関数で、決済日の直前にあたる利払日(前回クーポン支払い日)の日付を返してくれますよ。

この記事では、スプレッドシートの COUPPCD 関数の使い方を、構文・実例・よくあるエラーの対処まで同僚に教える感覚で解説します。発生利息の起点日確認や COUPNCD 関数との対比も整理しているので、債券の利払いスケジュール管理に活用してください。

スプレッドシートの COUPPCD 関数とは?

スプレッドシートの COUPPCD 関数は、決済日(受渡日)の直前(または同日)の利払日(前回クーポン支払い日)の日付を返す財務関数です。

関数名の COUPPCD は “Coupon Previous Coupon Date”(前回のクーポン日)を略したものです。

COUPPCD が特に役立つのは発生利息(経過利息)計算です。発生利息は「直前の利払日から決済日まで経過した利息」のことで、その計算の起点となる日付が COUPPCD の返す値ですよ。

発生利息 = 額面 × 年率利率 ÷ 頻度 × (COUPDAYBS ÷ COUPDAYS)

この式の「直前の利払日(COUPDAYBS の起点)」が COUPPCD です。COUPDAYBS 関数が日数を返すのに対して、COUPPCD は日付そのものを返します。

返される値はシリアル値(日付の数値)なので、セルに「日付」の表示形式を設定して使うのが基本です。

COUPPCD 関数の構文と引数

COUPPCD 関数の構文は次のとおりです。

=COUPPCD(決済日, 満期日, 頻度, [日数計算方法])

英語表記だと =COUPPCD(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日
430日/360日(ヨーロッパ方式)

結果はシリアル値で返ってくるため、セルの表示形式を「日付」に設定してください。表示形式を設定しないと整数(例: 46400)のような値が表示されますよ。

COUPPCD 関数の基本的な使い方

半年払い債券の直前の利払日を求める

年率5%・半年払い(frequency=2)の国債を、2026/4/22 に購入する場合の直前の利払日を求めます。満期日は 2028/10/22 とします。

セル項目
B2決済日2026/4/22
B3満期日2028/10/22
B4頻度2
=COUPPCD(B2, B3, B4)

結果は 2025/10/22 です(セルを日付形式に設定した場合)。直前の利払日が 2025年10月22日であることがわかります。この日から 2026/4/22 の決済日までの日数が発生利息の計算に使われますよ。

DATE 関数を使って直接指定することもできます。

=COUPPCD(DATE(2026,4,22), DATE(2028,10,22), 2)

COUPNCD と対比して確認する

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(次の利払日)

2025/10/22 ~ 2026/4/22(決済日)~ 2026/10/22 という位置関係が確認できます。決済日はこのクーポン期間のちょうど中間にあることがわかりますよ。

発生利息の起点日として使う

COUPPCD は COUPDAYBS と組み合わせて発生利息を確認するときに使います。

直前の利払日(起点):  =COUPPCD(DATE(2026,4,22), DATE(2028,10,22), 2)  → 2025/10/22
経過日数(COUPDAYBS): =COUPDAYBS(DATE(2026,4,22), DATE(2028,10,22), 2, 1)  → 183日
クーポン期間全体(COUPDAYS): =COUPDAYS(DATE(2026,4,22), DATE(2028,10,22), 2, 1)  → 366日
発生利息(額面100・年率5%):  = 100 × 0.05 ÷ 2 × (183 ÷ 366)  ≒ 2.50

「直前の利払日は 2025/10/22、そこから 183 日が経過しており、発生利息は約 2.50(額面100に対して)」という流れが確認できますよ。

年1回払い債券の直前の利払日を求める

年1回払い(frequency=1)の社債で決済日が 2026/4/22、満期日が 2029/9/15 の場合です。

=COUPPCD(DATE(2026,4,22), DATE(2029,9,15), 1)

結果は 2025/9/15 です。前回の利払いは 2025年9月15日で、そこから 2026/4/22 までの219日間が発生利息の経過期間ですよ。

COUP 系関数との関係

COUPPCD を軸に COUP 系関数の関係を整理します。

関数返す値COUPPCD との関係
COUPPCD直前の利払日(日付)発生利息計算の起点日
COUPNCD次の利払日(日付)COUPPCD から 1 期後
COUPDAYBS直前の利払日〜決済日の日数COUPPCD から決済日まで
COUPDAYSクーポン期間全体の日数COUPPCD から COUPNCD まで
COUPDAYSNC決済日〜次の利払日の日数決済日から COUPNCD まで
COUPPCD ←― COUPDAYBS ―→ 決済日 ←― COUPDAYSNC ―→ COUPNCD
↑←――――――――― COUPDAYS ―――――――――――――――→↑

COUPPCD と COUPNCD が「クーポン期間の両端」を定義し、COUPDAYBS・COUPDAYSNC・COUPDAYS がその期間内の日数を分割しているイメージですよ。

よくあるエラーと対処法

結果が日付ではなく数値で表示される

エラーではなく表示形式の問題です。COUPPCD はシリアル値(日付の数値)を返すため、セルの表示形式を「日付」に設定してください。

スプレッドシートでは「表示形式」→「数字」→「日付」を選ぶか、ショートカットで対応できますよ。

#NUM! エラー

以下のケースで発生します。

発生条件対処法
決済日 ≥ 満期日決済日が満期日より前になるよう修正する
頻度が1・2・4以外1、2、4 のいずれかを指定する
basis が 0〜4 以外0, 1, 2, 3, 4 のいずれかを指定する

#VALUE! エラー

引数に数値や日付以外の文字列が入っている場合に発生します。日付を直接書くときは DATE(2026,4,22) のように DATE 関数を使うと確実ですよ。

#NAME? エラー

関数名のスペルミスが原因です。「COUPREVDATE」「COUP_PCD」などは存在しない関数名です。

Excel との互換性

COUPPCD 関数は Excel と Google スプレッドシートで同じ計算結果を返します。Excel ファイル(.xlsx)をスプレッドシートで開いても関数はそのまま動作しますよ。

スプレッドシートでは引数名が日本語(「決済日」「満期日」「頻度」「日数計算方法」)で表示されます。Excel の英語表記(settlementmaturityfrequencybasis)と見た目は異なりますが、動作に影響はありません。

まとめ

スプレッドシートの COUPPCD 関数は、決済日直前の利払日(日付)を返す財務関数です。ポイントをまとめておきます。

  • 引数は決済日・満期日・頻度の3つが必須。日数計算方法(basis)は省略可
  • 頻度(frequency)は1(年1回)・2(半年払い)・4(四半期払い)のみ有効
  • 結果はシリアル値で返るため、セルの表示形式を「日付」に設定する
  • COUPNCD 関数が「次の利払日」、COUPPCD が「直前の利払日」
  • 発生利息計算の起点日として COUPDAYBS 関数COUPDAYS 関数 と組み合わせて使う
  • Excel との互換性があり、.xlsx ファイルをそのまま開いても動作する

購入した債券の前回利払い日を確認したいときや、発生利息の計算フローを一覧表で整理したいときにぜひ活用してみてください。クーポン関連の財務関数はCOUPNCD 関数COUPDAYBS 関数COUPDAYS 関数COUPDAYSNC 関数COUPNUM 関数と合わせて使うと、債券の利払いスケジュール管理に役立ちますよ。

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