<?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>ODDLYIELD関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/oddlyield%E9%96%A2%E6%95%B0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Jun 2026 15:16:27 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

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

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



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



<p class="wp-block-paragraph">この記事では、ODDLYIELD関数の構文・引数・計算例と、YIELD・<a href="https://mashukabu.com/excel-oddfyield-function/">ODDFYIELD関数</a>との使い分けを解説します。<a href="https://mashukabu.com/excel-oddlprice-function/">ODDLPRICE関数</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のODDLYIELD関数とは？</a><ol><li><a href="#toc2" tabindex="0">端数最終期間（Odd Last Period）とは</a></li><li><a href="#toc3" tabindex="0">ODDLYIELD が必要な場面</a></li></ol></li><li><a href="#toc4" tabindex="0">ODDLYIELD関数の構文と引数</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">pr と redemption の違い</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">ODDLYIELD関数の基本的な使い方</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">ODDLYIELD・YIELD・ODDFYIELD の使い分け</a><ol><li><a href="#toc15" tabindex="0">ODDFYIELD との引数の違い</a></li><li><a href="#toc16" tabindex="0">YIELD 関数との引数の違い</a></li></ol></li><li><a href="#toc17" tabindex="0">ODDLPRICE との往復チェック</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">銘柄スクリーニング</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のODDLYIELD関数とは？</span></h2>



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



<p class="wp-block-paragraph">関数名の「ODD」は「端数・変則」を意味し、「L」は「Last（最後）」、「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">しかし実務では、次のようなケースで最終期間だけ標準長と異なる債券が登場します。</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">ODDLYIELD はどちらの端数にも対応しています。</p>



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



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



<p class="wp-block-paragraph">価格はすでにマーケットでわかっていて、そこから現在の利回りを逆算したい場面で使う関数です。</p>



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



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



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



<p class="wp-block-paragraph">引数は8つで、basis のみ省略可能です。<a href="https://mashukabu.com/excel-oddlprice-function/">ODDLPRICE関数</a>と引数の数も並びもほぼ同じで、第5引数が <code>yld</code>（利回り）から <code>pr</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>受渡日（証券の購入が完了する日）</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>pr</td><td>必須</td><td>額面100あたりの証券価格（市場価格）</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か月ではない場合に、ODDLYIELD が活躍するわけですね。</p>



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



<ul class="wp-block-list"><li><strong>pr（価格）</strong>: 市場で取引されている現時点の価格。額面100あたりの値で指定</li><li><strong>redemption（償還価格）</strong>: 満期日に支払われる元本。通常は 100</li></ul>



<p class="wp-block-paragraph">例えば pr が 99.5 の債券は、額面100の証券を市場で 99.5 で買えるという意味です。pr が redemption（100）を下回ると利回りはクーポン利率より高くなります。逆に pr が 100 を上回ると利回りはクーポン利率より低くなります。</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">ODDLYIELD関数の基本的な使い方</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/4/20</li><li>満期日: 2008/6/15</li><li>直前利払日: 2007/12/24</li><li>クーポン利率: 3.75%</li><li>価格: 99.875</li><li>償還価格: 100</li><li>frequency: 2（半年払い）</li><li>basis: 0（US 30/360）</li></ul>



<pre class="wp-block-code"><code>=ODDLYIELD(DATE(2008,4,20), DATE(2008,6,15), DATE(2007,12,24), 0.0375, 99.875, 100, 2, 0)</code></pre>



<p class="wp-block-paragraph">価格（99.875）がパー（100）よりわずかに低いため、利回りはクーポン利率（3.75%）よりやや高い値（約4.51%）になります。</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>価格: 100.5</li><li>償還価格: 100</li><li>frequency: 2（半年払い）</li><li>basis: 1（Actual/Actual）</li></ul>



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



<p class="wp-block-paragraph">価格がパーをわずかに上回っているため、利回りはクーポン利率（3%）より少し低い値になります。</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>99.8</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>=ODDLYIELD(B2,B3,B4,B5,B6,B7,B8,B9)</code> です。価格（B6）を変更すれば利回りが連動して再計算されます。日本国内債券を扱うときは basis を 3（Actual/365）にする慣行があるので覚えておきましょう。</p>



<h2 class="wp-block-heading"><span id="toc14">ODDLYIELD・YIELD・ODDFYIELD の使い分け</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-yield-function/">YIELD</a></td><td>なし（標準）</td><td>全クーポン期間が均等な債券</td></tr><tr><td><a href="https://mashukabu.com/excel-oddfyield-function/">ODDFYIELD</a></td><td>最初の利払期間のみ端数</td><td>発行日〜第1クーポン日が不規則</td></tr><tr><td><strong>ODDLYIELD</strong></td><td>最後の利払期間のみ端数</td><td>最終クーポン日〜満期が不規則</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">実務でODDLYIELDが必要になる場面は限定的ですが、コール条項の発動や満期日変更がある債券では必須の関数です。</p>



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



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



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



<p class="wp-block-paragraph">ODDLYIELD は <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">YIELD 関数との引数の違い</span></h3>



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



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



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



<h2 class="wp-block-heading"><span id="toc17">ODDLPRICE との往復チェック</span></h2>



<p class="wp-block-paragraph">ODDLYIELD は <a href="https://mashukabu.com/excel-oddlprice-function/">ODDLPRICE関数</a> の逆関数です。利回りと価格を双方向で計算できるため、計算結果の妥当性検証に便利ですよ。</p>



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



<h3 class="wp-block-heading"><span id="toc18">逆算検証の手順</span></h3>



<p class="wp-block-paragraph">価格→利回り、利回り→価格の往復で計算精度を確認できます。</p>



<ol class="wp-block-list"><li>ODDLYIELD で価格 pr から利回り yld を求める</li><li>その yld を ODDLPRICE に渡して価格 pr&#8217; を逆算する</li><li>pr と pr&#8217; がほぼ一致すれば計算は妥当</li></ol>



<p class="wp-block-paragraph">数式で書くとこうなります。</p>



<pre class="wp-block-code"><code>ODDLYIELD(..., pr, ..., basis) → yld
ODDLPRICE(..., yld, ..., basis) → pr'</code></pre>



<p class="wp-block-paragraph">両者の引数（settlement / maturity / last_interest / rate / redemption / frequency / basis）は同じ値を渡してください。</p>



<h3 class="wp-block-heading"><span id="toc19">誤差の許容範囲</span></h3>



<p class="wp-block-paragraph">Excel の財務関数は内部で反復計算を行っているため、わずかな丸め誤差が出ることがあります。実務では <code>|pr - pr'| < 0.001</code>（1bps程度）以内に収まれば一致と見なしてOKです。誤差がそれを超える場合は、引数のどれかが食い違っている可能性が高いので入力値を見直しましょう。</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">コーラブル債（発行体が満期前に償還できる債券）でコール条項が発動されると、当初予定より早い日が満期日になります。最終クーポン期間が標準より短くなるため、ODDLYIELD で利回りを計算します。</p>



<p class="wp-block-paragraph">市場で取引されている価格から「この銘柄を今買うとどれだけの利回りが得られるか」を即座に判定したいときに役立ちます。</p>



<h3 class="wp-block-heading"><span id="toc22">満期延長後の既発債の評価</span></h3>



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



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



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



<h3 class="wp-block-heading"><span id="toc24">銘柄スクリーニング</span></h3>



<p class="wp-block-paragraph">複数の端数最終期間債券を並べて利回り比較したいケースでも便利です。市場価格を入力するだけで、各銘柄の利回りが横並びで確認できますよ。</p>



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



<p class="wp-block-paragraph">端数利払期間を扱う関数は ODDLYIELD 以外にもあります。</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><a href="https://mashukabu.com/excel-oddlprice-function/">ODDLPRICE</a></td><td>最終期間端数の証券の価格</td></tr><tr><td><strong>ODDLYIELD</strong></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><a href="https://mashukabu.com/excel-couppcd-function/">COUPPCD</a></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>pr が0以下</td><td>価格は正の値にする</td></tr><tr><td>redemption が0以下</td><td>通常は100を指定</td></tr><tr><td>反復計算が収束しない</td><td>入力値が現実離れしていないか確認</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・pr・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 / pr の単位ミス（%表記と小数表記の混同）</td><td>5%なら 0.05、4.51%なら 0.0451 のように小数で指定</td></tr><tr><td>価格が現実離れしている</td><td>額面100あたりの値か確認（10000 などは誤入力）</td></tr></tbody></table></figure>



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



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

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



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



<p class="wp-block-paragraph">この記事では、スプレッドシートの ODDLYIELD 関数の使い方を、構文・計算例・よくあるエラーの対処まで同僚に教える感覚で解説します。ODDLPRICE・ODDFYIELD との使い分けも整理しているので、債券分析や財務モデリングの実務にぜひ活用してください。</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">スプレッドシートの ODDLYIELD 関数とは？</a><ol><li><a href="#toc2" tabindex="0">不定期最終利払い期間（Odd Last Period）とは</a></li></ol></li><li><a href="#toc3" tabindex="0">ODDLYIELD 関数の構文と引数</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">ODDLYIELD 関数の基本的な使い方</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">ODDLYIELD と ODDLPRICE の関係</a></li><li><a href="#toc13" tabindex="0">通常の YIELD 関数との違い</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></li></ol>
    </div>
  </div>

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



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



<p class="wp-block-paragraph">関数名の ODDLYIELD は &#8220;Odd Last Period Yield&#8221;（不定期最終期間の利回り）を略したもので、市場で観測された価格から利回りを逆算するときに使います。</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">この「最終だけ期間が違う債券」を、観測された価格から利回りに変換するのが ODDLYIELD です。</p>



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



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



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



<p class="wp-block-paragraph">英語表記だと <code>=ODDLYIELD(settlement, maturity, last_interest, rate, pr, 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>価格（pr）</td><td>必須</td><td>額面100あたりの市場価格（例: 額面100に対して99.875で取引なら99.875）</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">ODDLPRICE とほぼ同じ構成ですが、<strong>第5引数が「利回り」ではなく「価格」</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">ODDLYIELD では、以下の日付順を必ず満たす必要があります。</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">ODDLYIELD 関数の基本的な使い方</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/4/20</td></tr><tr><td>B3</td><td>満期日</td><td>2008/6/15</td></tr><tr><td>B4</td><td>直前利払日</td><td>2007/12/24</td></tr><tr><td>B5</td><td>利率（クーポン）</td><td>0.0375（3.75%）</td></tr><tr><td>B6</td><td>価格</td><td>99.875</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>=ODDLYIELD(B2, B3, B4, B5, B6, B7, B8, B9)</code></pre>



<p class="wp-block-paragraph"><strong>結果: 約 0.0452（= 4.52%）</strong></p>



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



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



<pre class="wp-block-code"><code>=ODDLYIELD(
  DATE(2008,4,20),
  DATE(2008,6,15),
  DATE(2007,12,24),
  0.0375,
  99.875,
  100,
  2,
  0
)</code></pre>



<p class="wp-block-paragraph">日付を直接入力する場合は、DATE 関数を使うと確実です。文字列で &#8220;2008/4/20&#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>=ODDLYIELD(DATE(2008,4,20), DATE(2008,6,15), DATE(2007,12,24), 0.0375, 100.25, 100, 2, 0)</code></pre>



<p class="wp-block-paragraph"><strong>結果: 約 0.0126（= 1.26%）</strong></p>



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



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



<p class="wp-block-paragraph">ODDLYIELD と組み合わせて使う関連関数を整理します。</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>ODDLYIELD</strong></td><td>不定期<strong>最終</strong>利払い</td><td>利回り</td><td>最終期間が不定期な債券の利回りを求める</td></tr><tr><td><strong>ODDLPRICE</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><tr><td><strong>ODDFPRICE</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-oddfyield-function">スプレッドシートのODDFYIELD関数の使い方</a> と <a href="spreadsheet-oddfprice-function">スプレッドシートのODDFPRICE関数の使い方</a> も合わせて参考にしてください。</p>



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



<p class="wp-block-paragraph">ODDLYIELD と ODDLPRICE は<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>ODDLYIELD</td></tr><tr><td>利回り →</td><td>価格</td><td>ODDLPRICE</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">同じ債券条件で ODDLPRICE の結果を ODDLYIELD に入れ直すと、元の利回りに戻ります。計算内部では同じ現在価値モデルを使い、ODDLYIELD はニュートン法で利回りを反復的に逆算しています。ODDLPRICE 側の詳細は <a href="spreadsheet-oddlprice-function">スプレッドシートのODDLPRICE関数の使い方</a> で解説しているので、ペアで確認しておきましょう。</p>



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



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



<p class="wp-block-paragraph">債券の利回りを出すときは、「満期日＝直前利払日＋通常間隔」で揃っているかを最初にチェックしましょう。揃っていなければ YIELD ではなく ODDLYIELD が正解です。</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,4,20)</code> のように DATE 関数を使うと確実ですよ。文字列の &#8220;2008/4/20&#8221; はロケール依存で失敗することがあります。</p>



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



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



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



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



<p class="wp-block-paragraph">内部計算はニュートン法による反復（最大100回）で利回りを逆算しているため、プラットフォームごとの微小な丸め差が出るケースがあります。実務で厳密な一致が必要な場合は、計算基準（basis）を明示して結果を確認してください。</p>



<h2 class="wp-block-heading"><span id="toc19">関連記事</span></h2>



<p class="wp-block-paragraph">債券の利回り・価格計算に使う関連関数も、あわせて確認しておくと実務での使い分けがスムーズになります。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-oddlprice-function/">スプレッドシートのODDLPRICE関数の使い方</a>：ODDLYIELD の逆関数ペアで、最終利払い期間が不定期な債券の価格を求めます。</li><li><a href="https://mashukabu.com/spreadsheet-oddfyield-function/">スプレッドシートのODDFYIELD関数の使い方</a>：初回利払い期間が不定期な債券の利回りを計算します。</li><li><a href="https://mashukabu.com/spreadsheet-yield-function/">スプレッドシートのYIELD関数の使い方</a>：全期間が均等な利払い間隔の債券の利回りを求める基本の関数です。</li><li><a href="https://mashukabu.com/spreadsheet-yieldmat-function/">スプレッドシートのYIELDMAT関数の使い方</a>：満期一括利払い債券の利回りを計算します。</li></ul>



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



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



<ul class="wp-block-list"><li>引数は <strong>決済日・満期日・直前利払日・利率・価格・償還価格・頻度</strong> の7つ（日数計算方法は省略可）</li><li>市場価格から<strong>年間利回り（小数）</strong> を逆算する関数で、ODDLPRICE の逆関数ペア</li><li>既存債券の満期日変更などで<strong>直前利払日と満期日の間隔が通常と異なる債券</strong>の利回り計算に使う</li><li>頻度は <strong>1（年1回）・2（半年払い）・4（四半期払い）</strong> のみ指定可能</li><li>日付順制約 <strong>満期日 > 決済日 > 直前利払日</strong> を守らないと <code>#NUM!</code> エラー</li><li>初回期間が不定期な債券には <strong>ODDFYIELD 関数</strong> を使う</li><li>Excel 2007 以降・LibreOffice Calc との互換性があり、.xlsx ファイルをそのまま開いても動作する</li></ul>



<p class="wp-block-paragraph">債券分析ツールや財務モデルの中で、満期直前の期間調整が必要な債券の利回り評価に ODDLYIELD を活用してください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-oddlyield-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
