<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ODDLPRICE関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/oddlprice%e9%96%a2%e6%95%b0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Sat, 16 May 2026 21:33:28 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>ODDLPRICE関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ExcelのODDLPRICE関数の使い方｜最後の利払期間が端数の証券の価格</title>
		<link>https://mashukabu.com/excel-oddlprice-function/</link>
					<comments>https://mashukabu.com/excel-oddlprice-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 07 May 2026 14:28:52 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[ODDLPRICE関数]]></category>
		<category><![CDATA[端数利払期間]]></category>
		<category><![CDATA[証券価格]]></category>
		<category><![CDATA[財務関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6613</guid>

					<description><![CDATA[ExcelのODDLPRICE関数は、最後の利払期間が端数（短期・長期）になっている証券の価格を計算する財務関数です。構文・引数・使用例をわかりやすく解説。ODDFPRICE・PRICE関数との使い分けや、最終期間端数が発生する実務ケース（早期償還・コール条項・債券交換）も紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">債券の最後の利払期間が通常より短かったり長かったりする場合、標準の<a href="https://mashukabu.com/excel-price-function/">PRICE関数</a>では正確な価格が計算できません。このような端数最終期間（Odd Last Period）を持つ証券に対応した関数が ODDLPRICE です。</p>



<p class="wp-block-paragraph">ExcelのODDLPRICE関数を使えば、満期前最終期間が標準クーポン長と異なる証券の理論価格を計算できます。コール条項が発動した債券や、満期日を後ろ倒しした債券などで活躍しますよ。</p>



<p class="wp-block-paragraph">この記事では、ODDLPRICE関数の構文・引数・計算例と、PRICE・<a href="https://mashukabu.com/excel-oddfprice-function/">ODDFPRICE関数</a>との使い分けを解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのODDLPRICE関数とは？</a><ol><li><a href="#toc2" tabindex="0">端数最終期間（Odd Last Period）とは</a></li><li><a href="#toc3" tabindex="0">ODDLPRICE が必要な場面</a></li></ol></li><li><a href="#toc4" tabindex="0">ODDLPRICE関数の構文と引数</a><ol><li><a href="#toc5" tabindex="0">各引数の日付関係</a></li><li><a href="#toc6" tabindex="0">last_interest（直前利払日）とは</a></li><li><a href="#toc7" tabindex="0">rate と yld の違い</a></li><li><a href="#toc8" tabindex="0">basis 引数の選び方</a></li><li><a href="#toc9" tabindex="0">frequency 引数の選び方</a></li></ol></li><li><a href="#toc10" tabindex="0">ODDLPRICE関数の基本的な使い方</a><ol><li><a href="#toc11" tabindex="0">例1: 短端数（短い最終クーポン期間）</a></li><li><a href="#toc12" tabindex="0">例2: 長端数（長い最終クーポン期間）</a></li><li><a href="#toc13" tabindex="0">例3: セル参照を使った書き方</a></li></ol></li><li><a href="#toc14" tabindex="0">ODDLPRICE・PRICE・ODDFPRICE の使い分け</a><ol><li><a href="#toc15" tabindex="0">ODDFPRICE との引数の違い</a></li><li><a href="#toc16" tabindex="0">PRICE 関数との引数の違い</a></li></ol></li><li><a href="#toc17" tabindex="0">計算の仕組み（概要）</a><ol><li><a href="#toc18" tabindex="0">短端数の計算ロジック</a></li><li><a href="#toc19" tabindex="0">長端数の計算ロジック</a></li></ol></li><li><a href="#toc20" tabindex="0">実務での活用例</a><ol><li><a href="#toc21" tabindex="0">コール条項発動債の価格確認</a></li><li><a href="#toc22" tabindex="0">満期日を後ろ倒しした既発債の評価</a></li><li><a href="#toc23" tabindex="0">シンキングファンド方式の債券</a></li><li><a href="#toc24" tabindex="0">ODDLYIELD との組み合わせ</a></li></ol></li><li><a href="#toc25" tabindex="0">関連する財務関数の全体像</a></li><li><a href="#toc26" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc27" tabindex="0">#NUM! エラー</a></li><li><a href="#toc28" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc29" tabindex="0">結果が異常値（負の価格・極端に大きい値）になる場合</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのODDLPRICE関数とは？</span></h2>



<p class="wp-block-paragraph">ExcelのODDLPRICE関数（読み方：オッド・エル・プライス）は財務関数の一つです。<strong>最後の利払期間が端数（短端数または長端数）になっている証券の価格を、額面100円あたりで返します</strong>。</p>



<p class="wp-block-paragraph">関数名の「ODD」は「端数・変則」を意味し、「L」は「Last（最後）」、「PRICE」は「価格」を表します。つまり「最後の利払期間が端数の場合の価格計算」ですね。</p>



<h3 class="wp-block-heading"><span id="toc2">端数最終期間（Odd Last Period）とは</span></h3>



<p class="wp-block-paragraph">通常の債券は、各利払期間の長さがほぼ均一です。たとえば半年払い債券なら、各クーポン期間は約6か月になります。</p>



<p class="wp-block-paragraph">しかし実務では、次のようなケースで最終期間だけ標準長と異なる債券が登場します。</p>



<ul class="wp-block-list"><li><strong>短端数（Short Last Period）</strong>: 最終クーポン期間が標準期間より短い<ul><li>例: 半年払い債で最終クーポン日が9月15日、満期日が翌1月10日（約4か月）</li></ul></li><li><strong>長端数（Long Last Period）</strong>: 最終クーポン期間が標準期間より長い<ul><li>例: 半年払い債で最終クーポン日が9月15日、満期日が翌年8月10日（約11か月）</li></ul></li></ul>



<p class="wp-block-paragraph">ODDLPRICE はどちらの端数にも対応しています。</p>



<h3 class="wp-block-heading"><span id="toc3">ODDLPRICE が必要な場面</span></h3>



<ul class="wp-block-list"><li>コール条項が発動して満期日が前倒しになった債券の価格確認</li><li>満期日を後ろ倒しに変更した既発債の評価</li><li>シンキングファンド方式で最終償還日が個別調整される債券</li><li>私募債や新興市場債券で満期日が標準サイクルと合わないケース</li></ul>



<h2 class="wp-block-heading"><span id="toc4">ODDLPRICE関数の構文と引数</span></h2>



<p class="wp-block-paragraph">ODDLPRICE関数の構文は次のとおりです。</p>



<pre class="wp-block-code"><code>=ODDLPRICE(settlement, maturity, last_interest, rate, yld, redemption, frequency, [basis])</code></pre>



<p class="wp-block-paragraph">引数は8つで、basis のみ省略可能です。<a href="https://mashukabu.com/excel-oddfprice-function/">ODDFPRICE関数</a>（9引数）と比べて、<code>issue</code> と <code>first_coupon</code> の代わりに <code>last_interest</code>（直前利払日）が1つだけ指定されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略</th><th>意味</th></tr></thead><tbody><tr><td>settlement</td><td>必須</td><td>受渡日（証券の購入が完了する日）</td></tr><tr><td>maturity</td><td>必須</td><td>満期日（償還日）。settlement より後の日付</td></tr><tr><td>last_interest</td><td>必須</td><td>直前利払日（最終利払期間の開始日）。settlement より前の日付</td></tr><tr><td>rate</td><td>必須</td><td>証券の年間クーポン利率（小数で指定。5%なら 0.05）</td></tr><tr><td>yld</td><td>必須</td><td>証券の年間利回り（小数で指定。4%なら 0.04）</td></tr><tr><td>redemption</td><td>必須</td><td>額面100円あたりの償還価格（通常は 100）</td></tr><tr><td>frequency</td><td>必須</td><td>年間利払回数（1=年1回・2=半年払い・4=四半期払い）</td></tr><tr><td>basis</td><td>省略可</td><td>日数計算基準（0〜4の整数。既定は0）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc5">各引数の日付関係</span></h3>



<p class="wp-block-paragraph">引数の日付間には次の制約があります。</p>



<pre class="wp-block-code"><code>last_interest &lt; settlement &lt; maturity</code></pre>



<p class="wp-block-paragraph">時系列で並べるとこうなります。</p>



<pre class="wp-block-code"><code>[直前利払日] ―→ [受渡日] ―→ [満期日]
last_interest   settlement   maturity</code></pre>



<p class="wp-block-paragraph">つまり「直前利払日と満期日の間に受渡日がある」状態です。この順序を守らないと <code>#NUM!</code> エラーになります。</p>



<h3 class="wp-block-heading"><span id="toc6">last_interest（直前利払日）とは</span></h3>



<p class="wp-block-paragraph"><code>last_interest</code> は「最後から2番目の利払日」、つまり<strong>最終クーポン期間の開始日</strong>を指します。</p>



<p class="wp-block-paragraph">たとえば半年払いで満期が2027年1月10日、最後から2番目の利払日が2026年7月10日なら、<code>last_interest</code> は 2026/7/10 を指定します。最終クーポン期間（2026/7/10〜2027/1/10）の長さがちょうど6か月ではない場合に、ODDLPRICE が使えるわけですね。</p>



<h3 class="wp-block-heading"><span id="toc7">rate と yld の違い</span></h3>



<ul class="wp-block-list"><li><strong>rate（クーポン利率）</strong>: 証券に定められた年間の利率。満期まで変わらない</li><li><strong>yld（利回り）</strong>: 市場での要求利回り。価格を変動させる要因</li></ul>



<p class="wp-block-paragraph">rate > yld なら価格はパー（100）より高く、rate < yld なら低くなります。</p>



<h3 class="wp-block-heading"><span id="toc8">basis 引数の選び方</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>名称</th><th>主な対象</th></tr></thead><tbody><tr><td>0（既定）</td><td>US 30/360 (NASD)</td><td>米国社債</td></tr><tr><td>1</td><td>Actual/Actual</td><td>米国国債</td></tr><tr><td>2</td><td>Actual/360</td><td>米国マネーマーケット</td></tr><tr><td>3</td><td>Actual/365</td><td>日本国内債券</td></tr><tr><td>4</td><td>European 30/360</td><td>欧州社債</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc9">frequency 引数の選び方</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>利払頻度</th><th>主な対象</th></tr></thead><tbody><tr><td>1</td><td>年1回払い</td><td>一部の社債・外国債</td></tr><tr><td>2</td><td>半年払い</td><td>国債・多くの社債</td></tr><tr><td>4</td><td>四半期払い</td><td>地方債・一部社債</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc10">ODDLPRICE関数の基本的な使い方</span></h2>



<p class="wp-block-paragraph">実例で動きを確認しましょう。</p>



<h3 class="wp-block-heading"><span id="toc11">例1: 短端数（短い最終クーポン期間）</span></h3>



<p class="wp-block-paragraph">Microsoft公式リファレンスのサンプル値です。</p>



<ul class="wp-block-list"><li>受渡日: 2008/2/7</li><li>満期日: 2008/6/15</li><li>直前利払日: 2007/10/15</li><li>クーポン利率: 3.75%</li><li>利回り: 4.05%</li><li>償還価格: 100</li><li>frequency: 2（半年払い）</li><li>basis: 0（US 30/360）</li></ul>



<pre class="wp-block-code"><code>=ODDLPRICE(DATE(2008,2,7), DATE(2008,6,15), DATE(2007,10,15), 0.0375, 0.0405, 100, 2, 0)</code></pre>



<p class="wp-block-paragraph">クーポン利率（3.75%）が利回り（4.05%）を下回るため、価格はパー（100）よりわずかに低い値（約99.88）になります。</p>



<h3 class="wp-block-heading"><span id="toc12">例2: 長端数（長い最終クーポン期間）</span></h3>



<ul class="wp-block-list"><li>受渡日: 2026/5/7</li><li>満期日: 2027/3/15</li><li>直前利払日: 2025/9/15（次回の予定利払日2026/3/15を超えて満期まで継続）</li><li>クーポン利率: 3%</li><li>利回り: 2.5%</li><li>償還価格: 100</li><li>frequency: 2（半年払い）</li><li>basis: 1（Actual/Actual）</li></ul>



<pre class="wp-block-code"><code>=ODDLPRICE(DATE(2026,5,7), DATE(2027,3,15), DATE(2025,9,15), 0.03, 0.025, 100, 2, 1)</code></pre>



<p class="wp-block-paragraph">クーポン利率（3%）が利回り（2.5%）を上回るため、価格はパー（100）より高くなります。</p>



<h3 class="wp-block-heading"><span id="toc13">例3: セル参照を使った書き方</span></h3>



<p class="wp-block-paragraph">実務では引数をセル参照にすると、複数銘柄の価格比較が楽になります。</p>



<figure class="wp-block-table"><table><thead><tr><th>セル</th><th>内容</th><th>値</th></tr></thead><tbody><tr><td>B2</td><td>受渡日</td><td>2026/5/7</td></tr><tr><td>B3</td><td>満期日</td><td>2027/1/10</td></tr><tr><td>B4</td><td>直前利払日</td><td>2026/7/10</td></tr><tr><td>B5</td><td>クーポン利率</td><td>0.025</td></tr><tr><td>B6</td><td>利回り</td><td>0.022</td></tr><tr><td>B7</td><td>償還価格</td><td>100</td></tr><tr><td>B8</td><td>frequency</td><td>2</td></tr><tr><td>B9</td><td>basis</td><td>3</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">数式は <code>=ODDLPRICE(B2,B3,B4,B5,B6,B7,B8,B9)</code> です。利回り（B6）を変更すれば価格が連動して再計算されます。日本国内債券を扱うときは basis を 3（Actual/365）にする慣行があるので覚えておきましょう。</p>



<h2 class="wp-block-heading"><span id="toc14">ODDLPRICE・PRICE・ODDFPRICE の使い分け</span></h2>



<p class="wp-block-paragraph">端数利払期間の有無と位置によって、使う関数が変わります。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>端数の位置</th><th>補足</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-price-function/">PRICE</a></td><td>なし（標準）</td><td>全クーポン期間が均等な債券</td></tr><tr><td><a href="https://mashukabu.com/excel-oddfprice-function/">ODDFPRICE</a></td><td>最初の利払期間のみ端数</td><td>発行日〜第1クーポン日が不規則</td></tr><tr><td><strong>ODDLPRICE</strong></td><td>最後の利払期間のみ端数</td><td>最終クーポン日〜満期が不規則</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">実務でODDLPRICEが必要になる場面は限定的ですが、コール条項の発動や満期日変更がある債券では必須の関数です。両端が端数の場合は、まれですがアナリティカルな計算が必要になります。</p>



<h3 class="wp-block-heading"><span id="toc15">ODDFPRICE との引数の違い</span></h3>



<p class="wp-block-paragraph">ODDFPRICE は引数が9つです。</p>



<pre class="wp-block-code"><code>=ODDFPRICE(settlement, maturity, issue, first_coupon, rate, yld, redemption, frequency, [basis])</code></pre>



<p class="wp-block-paragraph">ODDLPRICE は <code>issue</code>（発行日）と <code>first_coupon</code>（最初の利払日）が不要で、代わりに <code>last_interest</code>（直前利払日）を1つ指定します。最終期間の起点は last_interest、終点は maturity なので、引数が1つ少なく済みます。</p>



<h3 class="wp-block-heading"><span id="toc16">PRICE 関数との引数の違い</span></h3>



<p class="wp-block-paragraph">PRICE 関数は引数が7つです。</p>



<pre class="wp-block-code"><code>=PRICE(settlement, maturity, rate, yld, redemption, frequency, [basis])</code></pre>



<p class="wp-block-paragraph">ODDLPRICE は <code>last_interest</code> が追加された8引数です。この引数があることで、最終期間の長さを正確に計算できます。</p>



<h2 class="wp-block-heading"><span id="toc17">計算の仕組み（概要）</span></h2>



<p class="wp-block-paragraph">ODDLPRICE の計算は PRICE と基本的な考え方は同じで、将来のキャッシュフローを利回りで割り引いて合計します。違いは最終期間の扱いです。</p>



<h3 class="wp-block-heading"><span id="toc18">短端数の計算ロジック</span></h3>



<p class="wp-block-paragraph">短端数（最終クーポン期間が1標準期間より短い）の場合、最終クーポンは期間に比例した金額になります。</p>



<pre class="wp-block-code"><code>最終クーポン額 ≒ 標準クーポン額 × (実際の日数 / 標準クーポン期間の日数)</code></pre>



<p class="wp-block-paragraph">満期日に支払われるのは「最終クーポン額 + 償還額」で、この合計を受渡日まで割り引いた現在価値が価格に反映されます。</p>



<h3 class="wp-block-heading"><span id="toc19">長端数の計算ロジック</span></h3>



<p class="wp-block-paragraph">長端数（最終クーポン期間が1標準期間より長い）の場合、最終クーポンは複数のサブ期間に分割して計算されます。たとえば1.5期間分の長さなら、1標準期間分のクーポンに加えて、半端な部分のクーポンが上乗せされます。この処理は PRICE 関数では対応できません。</p>



<h2 class="wp-block-heading"><span id="toc20">実務での活用例</span></h2>



<h3 class="wp-block-heading"><span id="toc21">コール条項発動債の価格確認</span></h3>



<p class="wp-block-paragraph">コーラブル債（発行体が満期前に償還できる債券）でコール条項が発動されると、当初予定より早い日が満期日になります。最終クーポン期間が標準より短くなるため、ODDLPRICE で価格を計算します。</p>



<h3 class="wp-block-heading"><span id="toc22">満期日を後ろ倒しした既発債の評価</span></h3>



<p class="wp-block-paragraph">既存債券の満期日を交渉で延長した場合、最終クーポン期間が長端数になります。延長後の理論価格を ODDLPRICE で算出することで、保有債券の評価額を更新できますよ。</p>



<h3 class="wp-block-heading"><span id="toc23">シンキングファンド方式の債券</span></h3>



<p class="wp-block-paragraph">減債基金方式の債券で最終償還日が個別調整される場合、ODDLPRICE が役立ちます。償還スケジュールごとに価格を再計算したいときに使ってください。</p>



<h3 class="wp-block-heading"><span id="toc24">ODDLYIELD との組み合わせ</span></h3>



<p class="wp-block-paragraph">価格がわかっていて利回りを求めたい場合は ODDLYIELD 関数（ODDLPRICE の逆関数）を使います。</p>



<pre class="wp-block-code"><code>ODDLPRICE → 利回りを入力して価格を算出
ODDLYIELD → 価格を入力して利回りを算出</code></pre>



<h2 class="wp-block-heading"><span id="toc25">関連する財務関数の全体像</span></h2>



<p class="wp-block-paragraph">端数利払期間を扱う関数は ODDLPRICE 以外にもあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>用途</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-oddfprice-function/">ODDFPRICE</a></td><td>第1期間端数の証券の価格</td></tr><tr><td><a href="https://mashukabu.com/excel-oddfyield-function/">ODDFYIELD</a></td><td>第1期間端数の証券の利回り</td></tr><tr><td><strong>ODDLPRICE</strong></td><td>最終期間端数の証券の価格</td></tr><tr><td>ODDLYIELD</td><td>最終期間端数の証券の利回り</td></tr><tr><td><a href="https://mashukabu.com/excel-price-function/">PRICE</a></td><td>標準（端数なし）の証券の価格</td></tr><tr><td><a href="https://mashukabu.com/excel-yield-function/">YIELD</a></td><td>標準（端数なし）の証券の利回り</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">クーポン日のスケジュール管理には COUP 系関数を使います。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>用途</th></tr></thead><tbody><tr><td>COUPPCD</td><td>直前の利払日</td></tr><tr><td><a href="https://mashukabu.com/excel-coupncd-function/">COUPNCD</a></td><td>次回の利払日</td></tr><tr><td><a href="https://mashukabu.com/excel-coupnum-function/">COUPNUM</a></td><td>残りのクーポン回数</td></tr><tr><td><a href="https://mashukabu.com/excel-coupdaybs-function/">COUPDAYBS</a></td><td>直前利払日から受渡日までの日数</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc26">よくあるエラーと対処法</span></h2>



<h3 class="wp-block-heading"><span id="toc27">#NUM! エラー</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>日付順制約違反（<code>last_interest < settlement < maturity</code> を満たさない）</td><td>各引数の日付を見直す。特に last_interest が settlement より前か確認</td></tr><tr><td>frequency が 1, 2, 4 以外</td><td>1（年1回）・2（半年）・4（四半期）のいずれかを指定</td></tr><tr><td>basis が 0〜4 以外</td><td>0〜4の整数を指定</td></tr><tr><td>rate が負の値</td><td>利率は0以上にする</td></tr><tr><td>yld が負の値</td><td>利回りは0以上にする</td></tr><tr><td>redemption が0以下</td><td>通常は100を指定</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc28">#VALUE! エラー</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>日付引数が日付として認識されない</td><td>DATE関数で指定するか、日付形式のセルを参照する</td></tr><tr><td>数値引数に文字列が入っている</td><td>rate・yld・redemption などを数値に変換</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc29">結果が異常値（負の価格・極端に大きい値）になる場合</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>frequency と市場慣行が合わない</td><td>半年払い債なら 2、四半期払い債なら 4 を指定</td></tr><tr><td>basis と市場慣行が合わない</td><td>日本国内債券なら 3、米国国債なら 1 が一般的</td></tr><tr><td>rate / yld の単位ミス（%表記と小数表記の混同）</td><td>5%なら 0.05、4.05%なら 0.0405 のように小数で指定</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">特に日付順制約の <code>#NUM!</code> は実務でつまずきやすいポイントです。エラーが出たら最初にこの順序を疑ってみてくださいね。</p>



<p class="wp-block-paragraph">ODDLPRICE関数を使えば、最終期間が不定期な債券の価格計算も正確に行えます。コール条項発動債や満期日変更債に出会ったら、PRICE関数ではなく ODDLPRICE で対応してください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-oddlprice-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのODDLPRICE関数の使い方｜不定期最終利払いの価格を計算</title>
		<link>https://mashukabu.com/spreadsheet-oddlprice-function/</link>
					<comments>https://mashukabu.com/spreadsheet-oddlprice-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 22 Apr 2026 14:41:14 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[ODDLPRICE関数]]></category>
		<category><![CDATA[債券]]></category>
		<category><![CDATA[経理・財務]]></category>
		<category><![CDATA[財務関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6211</guid>

					<description><![CDATA[GoogleスプレッドシートのODDLPRICE関数を使えば、最終利払い期間が通常と異なる（不定期）債券の価格を計算できます。構文・引数・計算例・ODDFPRICE・ODDLYIELDとの使い分け・よくあるエラー対処まで解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「満期前の最後の利払い期間だけ端数になる債券って、いくらで取引すれば適正価格になるの？」——そんな場面で使うのが ODDLPRICE 関数です。</p>



<p class="wp-block-paragraph">通常の PRICE 関数は、全期間の利払いが均等に揃った債券を前提にしています。満期と直前の利払い日がキリよく揃わない債券では、そのまま使うと正しい価格が出せませんよ。</p>



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




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートの ODDLPRICE 関数とは？</a><ol><li><a href="#toc2" tabindex="0">不定期最終利払い期間（Odd Last Period）とは</a></li></ol></li><li><a href="#toc3" tabindex="0">ODDLPRICE 関数の構文と引数</a><ol><li><a href="#toc4" tabindex="0">日数計算方法（basis）の選び方</a></li><li><a href="#toc5" tabindex="0">日付順の制約</a></li></ol></li><li><a href="#toc6" tabindex="0">ODDLPRICE 関数の基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">Microsoft 公式サンプルで計算する</a></li><li><a href="#toc8" tabindex="0">DATE 関数を使って直接指定する</a></li><li><a href="#toc9" tabindex="0">利回りがクーポン率を下回る場合（プレミアム債）</a></li></ol></li><li><a href="#toc10" tabindex="0">関連関数との使い分け</a><ol><li><a href="#toc11" tabindex="0">ODDF / ODDL 系 4 関数</a></li><li><a href="#toc12" tabindex="0">ODDLPRICE と ODDLYIELD の関係</a></li><li><a href="#toc13" tabindex="0">通常の PRICE 関数との違い</a></li></ol></li><li><a href="#toc14" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc15" tabindex="0">#NUM! エラー</a></li><li><a href="#toc16" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc17" tabindex="0">#NAME? エラー</a></li></ol></li><li><a href="#toc18" tabindex="0">Excel との互換性</a></li><li><a href="#toc19" tabindex="0">まとめ</a></li><li><a href="#toc20" tabindex="0">よくある質問</a><ol><li><a href="#toc21" tabindex="0">Q. ODDLPRICE関数とODDFPRICE関数の違いは何ですか？</a></li><li><a href="#toc22" tabindex="0">Q. ODDLPRICE関数で#NUM!エラーが出ます</a></li><li><a href="#toc23" tabindex="0">Q. スプレッドシートのODDLPRICE関数はExcelと同じですか？</a></li><li><a href="#toc24" tabindex="0">Q. ODDLPRICE関数とODDLYIELD関数の関係を教えてください</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートの ODDLPRICE 関数とは？</span></h2>



<p class="wp-block-paragraph">スプレッドシートの ODDLPRICE 関数は、<strong>最終利払い期間が不定期（通常と異なる）な債券の、額面100あたりの価格を計算する財務関数</strong>です。</p>



<p class="wp-block-paragraph">関数名の ODDLPRICE は &#8220;Odd Last Period Price&#8221;（不定期最終期間の価格）を略したもので、利回り（YIELD）から理論価格を求めるときに使います。</p>



<h3 class="wp-block-heading"><span id="toc2">不定期最終利払い期間（Odd Last Period）とは</span></h3>



<p class="wp-block-paragraph">通常の債券は、各利払い期間がほぼ等しい長さです。たとえば半年払いの債券なら、各利払い期間は約6か月ですね。</p>



<p class="wp-block-paragraph">しかし、既存債券の満期日を途中で変更した場合などでは、<strong>直前の利払い日から満期日までの期間</strong>が通常のサイクルと揃わないことがあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>状況</th><th>説明</th></tr></thead><tbody><tr><td><strong>短い最終期間</strong>（Short Last Period）</td><td>直前利払日から満期日までが、通常の利払い間隔より短い</td></tr><tr><td><strong>長い最終期間</strong>（Long Last Period）</td><td>直前利払日から満期日までが、通常の利払い間隔より長い</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">この「最終だけ期間が違う債券」を、利回りから理論価格に変換するのが ODDLPRICE です。</p>



<h2 class="wp-block-heading"><span id="toc3">ODDLPRICE 関数の構文と引数</span></h2>



<p class="wp-block-paragraph">ODDLPRICE 関数の構文は次のとおりです。</p>



<pre class="wp-block-code"><code>=ODDLPRICE(決済日, 満期日, 直前利払日, 利率, 利回り, 償還価格, 頻度, [日数計算方法])</code></pre>



<p class="wp-block-paragraph">英語表記だと <code>=ODDLPRICE(settlement, maturity, last_interest, rate, yld, redemption, frequency, [basis])</code> となります。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>省略</th><th>説明</th></tr></thead><tbody><tr><td>決済日（settlement）</td><td>必須</td><td>債券の受渡日（購入が完了する日）。DATE 関数での指定を推奨</td></tr><tr><td>満期日（maturity）</td><td>必須</td><td>債券の満期日</td></tr><tr><td>直前利払日（last_interest）</td><td>必須</td><td>最後から2番目の利払い日（＝最終利払い期間の開始日）</td></tr><tr><td>利率（rate）</td><td>必須</td><td>年間クーポンレート。小数で指定（例: 3.75% → 0.0375）</td></tr><tr><td>利回り（yld）</td><td>必須</td><td>年間利回り。小数で指定（例: 4.05% → 0.0405）</td></tr><tr><td>償還価格（redemption）</td><td>必須</td><td>額面100あたりの償還価格（通常は100）</td></tr><tr><td>頻度（frequency）</td><td>必須</td><td>年間利払い回数（1=年1回、2=半年払い、4=四半期払い）</td></tr><tr><td>日数計算方法（basis）</td><td>省略可</td><td>0=US/30/360（デフォルト）、1=Actual/Actual、2=Actual/360、3=Actual/365、4=欧州/30/360</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ODDFPRICE と似た構成ですが、<strong>「発行日」「初回利払日」ではなく「直前利払日」を1つだけ指定する点</strong> が違います。最終期間だけが不定期なので、期間の起点となる直前の利払い日だけわかれば計算できるわけですね。</p>



<h3 class="wp-block-heading"><span id="toc4">日数計算方法（basis）の選び方</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>日数基準</th><th>主な使用場面</th></tr></thead><tbody><tr><td>0</td><td>US/30/360</td><td>米国社債（デフォルト）</td></tr><tr><td>1</td><td>Actual/Actual</td><td>米国国債・欧州国債</td></tr><tr><td>2</td><td>Actual/360</td><td>ユーロ建て短期証券</td></tr><tr><td>3</td><td>Actual/365</td><td>英国国債</td></tr><tr><td>4</td><td>欧州/30/360</td><td>欧州社債</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">省略すると 0（US/30/360）が適用されます。</p>



<h3 class="wp-block-heading"><span id="toc5">日付順の制約</span></h3>



<p class="wp-block-paragraph">ODDLPRICE では、以下の日付順を必ず満たす必要があります。</p>



<pre class="wp-block-code"><code>満期日 &gt; 決済日 &gt; 直前利払日</code></pre>



<p class="wp-block-paragraph">この順序を守らないと <code>#NUM!</code> エラーになります。日付入力でエラーが出たときは、まずこの順序を疑ってみてください。</p>



<h2 class="wp-block-heading"><span id="toc6">ODDLPRICE 関数の基本的な使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc7">Microsoft 公式サンプルで計算する</span></h3>



<p class="wp-block-paragraph">Microsoft 公式ドキュメントで紹介されている、半年払いの社債サンプルです。</p>



<figure class="wp-block-table"><table><thead><tr><th>セル</th><th>項目</th><th>値</th></tr></thead><tbody><tr><td>B2</td><td>決済日</td><td>2008/2/7</td></tr><tr><td>B3</td><td>満期日</td><td>2008/6/15</td></tr><tr><td>B4</td><td>直前利払日</td><td>2007/10/15</td></tr><tr><td>B5</td><td>利率（クーポン）</td><td>0.0375（3.75%）</td></tr><tr><td>B6</td><td>利回り</td><td>0.0405（4.05%）</td></tr><tr><td>B7</td><td>償還価格</td><td>100</td></tr><tr><td>B8</td><td>頻度（半年払い）</td><td>2</td></tr><tr><td>B9</td><td>日数計算方法</td><td>0（US/30/360）</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>=ODDLPRICE(B2, B3, B4, B5, B6, B7, B8, B9)</code></pre>



<p class="wp-block-paragraph"><strong>結果: 約 99.88（額面100に対して99.88）</strong></p>



<p class="wp-block-paragraph">利回り 4.05% がクーポン率 3.75% を上回っている（ディスカウント）ので、価格は額面100を少し下回る 99.88 が返ってきますよ。</p>



<h3 class="wp-block-heading"><span id="toc8">DATE 関数を使って直接指定する</span></h3>



<pre class="wp-block-code"><code>=ODDLPRICE(
  DATE(2008,2,7),
  DATE(2008,6,15),
  DATE(2007,10,15),
  0.0375,
  0.0405,
  100,
  2,
  0
)</code></pre>



<p class="wp-block-paragraph">日付を直接入力する場合は、DATE 関数を使うと確実です。文字列で &#8220;2008/2/7&#8221; と書くと、ロケール設定によっては <code>#VALUE!</code> エラーになることがありますよ。</p>



<h3 class="wp-block-heading"><span id="toc9">利回りがクーポン率を下回る場合（プレミアム債）</span></h3>



<p class="wp-block-paragraph">次は同じ条件で、利回りだけをクーポン率より下げた例です。</p>



<pre class="wp-block-code"><code>=ODDLPRICE(DATE(2008,2,7), DATE(2008,6,15), DATE(2007,10,15), 0.0375, 0.0300, 100, 2, 0)</code></pre>



<p class="wp-block-paragraph"><strong>結果: 約 100.28（額面100に対して100.28）</strong></p>



<p class="wp-block-paragraph">利回り 3.00% がクーポン率 3.75% を下回る（プレミアム債）なので、価格は額面100を上回る 100.28 が返ってきます。利回りと価格が逆方向に動く関係がわかりやすいサンプルですね。</p>



<h2 class="wp-block-heading"><span id="toc10">関連関数との使い分け</span></h2>



<p class="wp-block-paragraph">ODDLPRICE と組み合わせて使う関連関数を整理します。</p>



<h3 class="wp-block-heading"><span id="toc11">ODDF / ODDL 系 4 関数</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>対象期間</th><th>返す値</th><th>主な用途</th></tr></thead><tbody><tr><td><strong>ODDLPRICE</strong></td><td>不定期<strong>最終</strong>利払い</td><td>価格</td><td>最終期間が不定期な債券の価格を求める</td></tr><tr><td><strong>ODDLYIELD</strong></td><td>不定期<strong>最終</strong>利払い</td><td>利回り</td><td>最終期間が不定期な債券の利回りを求める</td></tr><tr><td><strong>ODDFPRICE</strong></td><td>不定期<strong>初回</strong>利払い</td><td>価格</td><td>初回期間が不定期な債券の価格を求める</td></tr><tr><td><strong>ODDFYIELD</strong></td><td>不定期<strong>初回</strong>利払い</td><td>利回り</td><td>初回期間が不定期な債券の利回りを求める</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「F=First（初回）、L=Last（最終）、PRICE=価格、YIELD=利回り」と覚えると整理しやすいですよ。</p>



<p class="wp-block-paragraph">初回期間が不定期な債券の価格・利回り計算については、<a href="spreadsheet-oddfprice-function">スプレッドシートのODDFPRICE関数の使い方</a> と <a href="spreadsheet-oddfyield-function">スプレッドシートのODDFYIELD関数の使い方</a> も合わせて参考にしてください。</p>



<h3 class="wp-block-heading"><span id="toc12">ODDLPRICE と ODDLYIELD の関係</span></h3>



<p class="wp-block-paragraph">ODDLPRICE と ODDLYIELD は<strong>逆関数ペア</strong>の関係です。</p>



<figure class="wp-block-table"><table><thead><tr><th>入力</th><th>出力</th><th>関数</th></tr></thead><tbody><tr><td>利回り →</td><td>価格</td><td>ODDLPRICE</td></tr><tr><td>価格 →</td><td>利回り</td><td>ODDLYIELD</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">同じ債券条件で ODDLPRICE の結果を ODDLYIELD に入れ直すと、元の利回りに戻ります。計算内部では同じ現在価値モデルを使い、ODDLYIELD はニュートン法で利回りを反復的に逆算しています。</p>



<h3 class="wp-block-heading"><span id="toc13">通常の PRICE 関数との違い</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>状況</th><th>使う関数</th></tr></thead><tbody><tr><td>全期間が均等な利払い期間の債券</td><td>PRICE 関数</td></tr><tr><td>初回利払い期間だけが不定期な債券</td><td>ODDFPRICE 関数</td></tr><tr><td>最終利払い期間だけが不定期な債券</td><td><strong>ODDLPRICE 関数</strong></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">債券の価格を出すときは、「満期日＝直前利払日＋通常間隔」で揃っているかを最初にチェックしましょう。揃っていなければ PRICE ではなく ODDLPRICE が正解です。</p>



<h2 class="wp-block-heading"><span id="toc14">よくあるエラーと対処法</span></h2>



<h3 class="wp-block-heading"><span id="toc15">#NUM! エラー</span></h3>



<p class="wp-block-paragraph">最も多いエラーです。以下のケースで発生します。</p>



<figure class="wp-block-table"><table><thead><tr><th>発生条件</th><th>対処法</th></tr></thead><tbody><tr><td>決済日 ≥ 満期日</td><td>決済日が満期日より前になるよう修正する</td></tr><tr><td>直前利払日 ≥ 決済日</td><td>直前利払日は決済日より前に設定する</td></tr><tr><td>利率 < 0</td><td>クーポンレートは 0 以上の小数で指定する</td></tr><tr><td>利回り < 0</td><td>利回りは 0 以上の小数で指定する</td></tr><tr><td>償還価格 ≤ 0</td><td>償還価格は 0 より大きい値で指定する</td></tr><tr><td>頻度が 1・2・4 以外</td><td>年間利払い回数は 1・2・4 のいずれかを指定する</td></tr><tr><td>日数計算方法が 0〜4 以外</td><td>basis は 0〜4 の整数を指定する</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc16">#VALUE! エラー</span></h3>



<p class="wp-block-paragraph">引数に日付・数値として解釈できない値が入っている場合に発生します。日付を直接入力するときは <code>DATE(2008,2,7)</code> のように DATE 関数を使うと確実ですよ。文字列の &#8220;2008/2/7&#8221; はロケール依存で失敗することがあります。</p>



<h3 class="wp-block-heading"><span id="toc17">#NAME? エラー</span></h3>



<p class="wp-block-paragraph">関数名のスペルミスが原因です。<code>ODDLPRIC</code>・<code>ODD_L_PRICE</code>・<code>ODDL PRICE</code> などは存在しない関数名です。正しくは <code>ODDLPRICE</code>（アンダースコアやスペースなし）ですよ。</p>



<h2 class="wp-block-heading"><span id="toc18">Excel との互換性</span></h2>



<p class="wp-block-paragraph">ODDLPRICE 関数は、<strong>Microsoft 365 / Excel 2019 以降・Google スプレッドシート・LibreOffice Calc</strong> で同じ計算結果を返します。Excel ファイル（.xlsx）をスプレッドシートで開いてもそのまま動作しますよ。</p>



<p class="wp-block-paragraph">内部計算は日数基準（basis）に従って準期間（quasi-period）を割り出し、各キャッシュフローを現在価値に割り引く方式です。プラットフォームごとの微小な丸め差が出るケースがあるので、厳密な一致が必要な場合は basis を明示して結果を確認してください。</p>



<h2 class="wp-block-heading"><span id="toc19">まとめ</span></h2>



<p class="wp-block-paragraph">スプレッドシートの ODDLPRICE 関数は、最終利払い期間が通常と異なる（不定期な）債券の価格を計算する財務関数です。ポイントをまとめておきます。</p>



<ul class="wp-block-list"><li>引数は <strong>決済日・満期日・直前利払日・利率・利回り・償還価格・頻度</strong> の7つ（日数計算方法は省略可）</li><li>年間利回り（小数）から<strong>額面100あたりの理論価格</strong> を返す関数で、ODDLYIELD の逆関数ペア</li><li>既存債券の満期日変更などで<strong>直前利払日と満期日の間隔が通常と異なる債券</strong>の価格計算に使う</li><li>頻度は <strong>1（年1回）・2（半年払い）・4（四半期払い）</strong> のみ指定可能</li><li>日付順制約 <strong>満期日 > 決済日 > 直前利払日</strong> を守らないと <code>#NUM!</code> エラー</li><li>初回期間が不定期な債券には <a href="https://mashukabu.com/spreadsheet-oddfprice-function/">スプレッドシートのODDFPRICE関数</a> を使う</li><li>Microsoft 365 / Excel 2019 以降・LibreOffice Calc との互換性があり、.xlsx ファイルをそのまま開いても動作する</li></ul>



<p class="wp-block-paragraph">債券分析ツールや財務モデルの中で、満期直前の期間調整が必要な債券の価格評価に ODDLPRICE を活用してください。</p>



<h2 class="wp-block-heading"><span id="toc20">よくある質問</span></h2>



<h3 class="wp-block-heading"><span id="toc21">Q. ODDLPRICE関数とODDFPRICE関数の違いは何ですか？</span></h3>



<p class="wp-block-paragraph">ODDLPRICE関数は「最終利払い期間が不定期な債券」の価格を計算します。一方、ODDFPRICE関数は「初回利払い期間が不定期な債券」の価格を計算します。満期直前の端数期間を扱う場合はODDLPRICE、新発債で発行日と最初の利払い日がズレている場合はODDFPRICEを使い分けてください。</p>



<h3 class="wp-block-heading"><span id="toc22">Q. ODDLPRICE関数で#NUM!エラーが出ます</span></h3>



<p class="wp-block-paragraph">日付の順序（満期日 > 決済日 > 直前利払日）が守られていないと<code>#NUM!</code>エラーが発生します。各引数の日付をDATE関数で入力し、順序が正しいか確認してください。利率や利回りが0以下になっていないかもあわせて確認してください。</p>



<h3 class="wp-block-heading"><span id="toc23">Q. スプレッドシートのODDLPRICE関数はExcelと同じですか？</span></h3>



<p class="wp-block-paragraph">はい、Microsoft 365 / Excel 2019 以降と同じ引数・計算仕様で動作します。.xlsxファイルをGoogleスプレッドシートで開いてもそのまま機能します。日数計算方法（basis）の選択によっては微小な丸め差が出る場合があります。</p>



<h3 class="wp-block-heading"><span id="toc24">Q. ODDLPRICE関数とODDLYIELD関数の関係を教えてください</span></h3>



<p class="wp-block-paragraph">ODDLPRICE関数は「利回り → 価格」を求め、ODDLYIELD関数は「価格 → 利回り」を求めます。両者は逆関数ペアの関係です。市場価格から利回りを分析する場合はODDLYIELD、想定利回りから理論価格を算出する場合はODDLPRICEを使ってください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-oddlprice-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
