スプレッドシートのODDFPRICE関数の使い方|不定期初回利払いの債券価格を計算

スポンサーリンク

「発行日から最初の利払い日までの期間が、通常の利払い間隔と違う債券の価格、どうやって計算する?」——そんな場面で使うのが ODDFPRICE 関数です。

新発債では、発行日と最初の利払い日がうまく揃わないケースがよくあります。通常の PRICE 関数ではこの「不定期の初回利払い期間」を正確に扱えませんが、ODDFPRICE 関数を使えば適切な価格が計算できますよ。

この記事では、スプレッドシートの ODDFPRICE 関数の使い方を、構文・計算例・よくあるエラーの対処まで同僚に教える感覚で解説します。ODDFYIELD・ODDLPRICE との使い分けも整理しているので、債券分析や財務モデリングの実務にぜひ活用してください。

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

スプレッドシートの ODDFPRICE 関数は、初回利払い期間が不定期(通常と異なる)な債券の、額面100あたりの価格を計算する財務関数です。

関数名の ODDFPRICE は “Odd First Period Price”(不定期初回期間の価格)を略したものです。

不定期初回利払い期間(Odd First Period)とは

通常の債券は、各利払い期間がほぼ等しい長さです。たとえば半年払いの債券なら、各利払い期間は約6か月です。

しかし、新発債(新しく発行される債券)では、発行日と最初の利払い日がキリよく揃わないことがあります。

状況説明
短い初回期間(Short First Period)発行日から最初の利払い日までが、通常の利払い間隔より短い
長い初回期間(Long First Period)発行日から最初の利払い日までが、通常の利払い間隔より長い

この「初回だけ期間が違う債券」の価格を計算するのが ODDFPRICE です。

ODDFPRICE 関数の構文と引数

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

=ODDFPRICE(決済日, 満期日, 発行日, 初回利払日, 利率, 最終利回り, 償還価格, 頻度, [日数計算方法])

英語表記だと =ODDFPRICE(settlement, maturity, issue, first_coupon, rate, yield, redemption, frequency, [day_count_convention]) となります。

引数省略説明
決済日(settlement)必須債券の受渡日(購入が完了する日)。DATE 関数での指定を推奨
満期日(maturity)必須債券の満期日
発行日(issue)必須債券の発行日。決済日以前であること
初回利払日(first_coupon)必須最初の利払いが行われる日
利率(rate)必須年間クーポンレート。小数で指定(例: 5% → 0.05)
最終利回り(yield)必須年間最終利回り。小数で指定(例: 4% → 0.04)
償還価格(redemption)必須額面100あたりの償還価格(通常は100)
頻度(frequency)必須年間利払い回数(1=年1回、2=半年払い、4=四半期払い)
日数計算方法(day_count_convention)省略可0=US/30/360(デフォルト)、1=Actual/Actual、2=Actual/360、3=Actual/365、4=欧州/30/360

引数が多いですが、構造は「いつ・どんな条件の債券か」を順番に指定するだけです。

日数計算方法(day_count_convention)の選び方

日数基準主な使用場面
0US/30/360米国社債(デフォルト)
1Actual/Actual米国国債・欧州国債
2Actual/360ユーロ建て短期証券
3Actual/365英国国債
4欧州/30/360欧州社債

省略すると 0(US/30/360)が適用されます。

ODDFPRICE 関数の基本的な使い方

短い初回利払い期間の債券価格を求める

2024/3/1 に発行され、通常は6か月払いで最初の利払いが 2024/6/1(つまり通常の9か月でなく3か月という短い初回期間)の社債の価格を求めます。

セル項目
B2決済日2024/4/1
B3満期日2029/3/1
B4発行日2024/3/1
B5初回利払日2024/6/1
B6利率(クーポン)0.05(5%)
B7最終利回り0.04(4%)
B8償還価格100
B9頻度(半年払い)2
=ODDFPRICE(B2, B3, B4, B5, B6, B7, B8, B9)

クーポン率 5%・利回り 4% で、クーポン率が利回りを上回るためプレミアム(額面超え)価格が返ります。

DATE 関数を使って直接指定する

=ODDFPRICE(
  DATE(2024,4,1),   
  DATE(2029,3,1),   
  DATE(2024,3,1),   
  DATE(2024,6,1),   
  0.05,             
  0.04,             
  100,              
  2                 
)

日付を直接入力する場合は、DATE 関数を使うと確実ですよ。

日数計算方法を指定する場合

Actual/Actual 基準(米国国債向け)で計算する場合は第9引数に 1 を指定します。

=ODDFPRICE(DATE(2024,4,1), DATE(2029,3,1), DATE(2024,3,1), DATE(2024,6,1), 0.05, 0.04, 100, 2, 1)

関連関数との使い分け

ODDFPRICE と組み合わせて使う関連関数を整理します。

ODDF 系 4 関数

関数対象期間返す値主な用途
ODDFPRICE不定期初回利払い価格初回期間が不定期な債券の価格を求める
ODDFYIELD不定期初回利払い利回り初回期間が不定期な債券の利回りを求める
ODDLPRICE不定期最終利払い価格最終期間が不定期な債券の価格を求める
ODDLYIELD不定期最終利払い利回り最終期間が不定期な債券の利回りを求める

「F=First(初回)、L=Last(最終)、PRICE=価格、YIELD=利回り」と覚えると整理しやすいですよ。

通常の PRICE 関数との違い

状況使う関数
全期間が均等な利払い期間の債券PRICE 関数
初回利払い期間だけが不定期な債券ODDFPRICE 関数
最終利払い期間だけが不定期な債券ODDLPRICE 関数

よくあるエラーと対処法

#NUM! エラー

最も多いエラーです。以下のケースで発生します。

発生条件対処法
決済日 ≥ 満期日決済日が満期日より前になるよう修正する
初回利払日 ≤ 発行日初回利払日は発行日より後に設定する
初回利払日 ≤ 決済日初回利払日は決済日より後に設定する
利率 ≤ 0クーポンレートは0より大きい小数で指定する
最終利回り < 0利回りは0以上の小数で指定する
償還価格 ≤ 0償還価格は0より大きい値で指定する
頻度が 1・2・4 以外年間利払い回数は 1・2・4 のいずれかを指定する

#VALUE! エラー

引数に日付・数値として解釈できない値が入っている場合に発生します。日付を直接入力するときは DATE(2024,4,1) のように DATE 関数を使うと確実ですよ。

#NAME? エラー

関数名のスペルミスが原因です。ODDFPRICODD_F_PRICEODDF PRICE などは存在しない関数名です。

Excel との互換性

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

ただし、日数計算方法の選択によっては計算結果が異なるケースがあるため、重要な計算の場合は結果を確認してください。

まとめ

スプレッドシートの ODDFPRICE 関数は、初回利払い期間が通常と異なる(不定期な)債券の価格を計算する財務関数です。ポイントをまとめておきます。

  • 引数は 決済日・満期日・発行日・初回利払日・利率・最終利回り・償還価格・頻度の8つ(日数計算方法は省略可)
  • 新発債など発行日と最初の利払い日がうまく揃わない債券の価格計算に使う
  • 頻度は 1(年1回)・2(半年払い)・4(四半期払い) のみ指定可能
  • 初回期間の利回り計算には ODDFYIELD 関数 を使う
  • 最終期間が不定期な債券には ODDLPRICE 関数 を使う
  • Excel・LibreOffice Calc との互換性があり、.xlsx ファイルをそのまま開いても動作する

債券分析ツールや財務モデルの中で、新発債の価格評価が必要なときに ODDFPRICE を活用してください。

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