<?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>ODDFYIELD &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/oddfyield/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Jun 2026 15:15:40 +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>ODDFYIELD &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【Excel】ODDFYIELD関数の使い方｜初回利払いが半端な債券の利回りを計算する</title>
		<link>https://mashukabu.com/excel-oddfyield/</link>
					<comments>https://mashukabu.com/excel-oddfyield/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 09 May 2026 23:16:55 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[ODDFYIELD]]></category>
		<category><![CDATA[債券]]></category>
		<category><![CDATA[利回り計算]]></category>
		<category><![CDATA[財務関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6738</guid>

					<description><![CDATA[ExcelのODDFYIELD関数の使い方を解説します。発行日から最初の利払い日までが端数期間（不定期）になる社債・国債の年間利回りを計算する関数で、9つの引数の意味、日付順制約、frequencyやbasisの選び方、Microsoft公式サンプルを使った計算例、よくあるエラーと対処、YIELD・ODDFPRICE・YIELDMATとの使い分けまでまとめて整理しました。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「発行日が10月15日なのに最初の利払い日は翌年3月1日」――こんな少し変則的な社債や国債の利回りを計算したいとき、通常のYIELD関数では正しい値が出ません。そこで使うのが <strong>ODDFYIELD関数</strong> です。</p>



<p class="wp-block-paragraph">ただ、ODDFYIELD関数は引数がなんと9つもあります。日付の指定順や frequency、basis の選び方で迷う方が多いのが実情です。引数の順序を一つでも間違えると、すぐに #NUM! エラーが返ってきます。</p>



<p class="wp-block-paragraph">この記事では、ODDFYIELD関数の構文から、初回端数期間がある債券の意味、Microsoft公式サンプルを使った計算例、日付順制約や basis の選び方、よくあるエラーと関連関数との使い分けまでをまとめて整理します。</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のODDFYIELD関数とは？</a></li><li><a href="#toc2" tabindex="0">ODDFYIELD関数の書き方（構文と引数）</a></li><li><a href="#toc3" tabindex="0">frequency引数（利払い頻度）の選び方</a></li><li><a href="#toc4" tabindex="0">basis引数（日数計算方法）の選び方</a></li><li><a href="#toc5" tabindex="0">実用例：Microsoft公式サンプルで利回りを計算する</a></li><li><a href="#toc6" tabindex="0">日付順制約（最重要ポイント）</a></li><li><a href="#toc7" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc8" tabindex="0">ODDFYIELD関数と関連関数の使い分け</a><ol><li><a href="#toc9" tabindex="0">使い分けの判断フロー</a></li></ol></li><li><a href="#toc10" tabindex="0">関連記事</a></li><li><a href="#toc11" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">ExcelのODDFYIELD関数（読み方：オッド・エフ・イールド）は、<strong>初回利払い期間が不定期（端数期間）になっている証券の年間利回りを返す財務関数</strong>です。関数名は「<strong>Odd First Yield</strong>（最初の利払いが不規則な利回り）」の略で、文字通り「最初だけ半端な債券」の利回り計算に特化しています。</p>



<p class="wp-block-paragraph">通常の固定利付債では、発行日から半年なり1年なりの一定間隔で利息が支払われます。ところが、たとえば「10月15日発行で、最初の利払いは翌年3月1日」のような債券だと、発行日から最初の利払い日までが定期的な周期になりません。この最初の半端な期間を <strong>初回端数期間（Odd First Period）</strong> と呼びます。</p>



<p class="wp-block-paragraph">このような債券の利回りを定期利払いの YIELD関数で計算してしまうと、初回の半端な期間が考慮されず、本来の年間利回りからズレた値が出てしまいます。ODDFYIELD関数は、初回端数期間を正しく扱った上で年間利回り（％換算前の小数）を返してくれる関数です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>ODDFYIELD関数は Excel 2007 以降で利用できます。Microsoft 365、Excel for Mac、Google スプレッドシートでも同名で同じ動作をします。日本の証券実務では「不定期利払い債」と呼ばれることもあり、特に新発の社債や仕組債で見られます。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc2">ODDFYIELD関数の書き方（構文と引数）</span></h2>



<p class="wp-block-paragraph">ODDFYIELD関数の構文は次のとおりです。</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">引数は9つ（うち basis は省略可）と多めですが、それぞれの意味を押さえれば難しくありません。</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>満期日（最後に元本が償還される日）</td></tr><tr><td>issue</td><td>必須</td><td>発行日</td></tr><tr><td>first_coupon</td><td>必須</td><td>最初の利払い日</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>年間利払い回数（<strong>1</strong>＝年1回、<strong>2</strong>＝半年払い、<strong>4</strong>＝四半期払い）</td></tr><tr><td>basis</td><td>省略可</td><td>日数計算方法（0〜4。省略時は 0＝US 30/360）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">戻り値は年間利回りを小数で返します。たとえば 0.0772 が返ってきたら、年間利回り 7.72% を意味します。セルの表示形式を「パーセンテージ」にしておくと読みやすいです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>引数が多いので、セルにあらかじめラベル付きで値を並べて、関数からはセル参照で渡すのがおすすめです。後で条件を変えてシミュレーションする際にも便利で、引数の取り違えも防げます。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc3">frequency引数（利払い頻度）の選び方</span></h2>



<p class="wp-block-paragraph">frequency は年間に何回利息が支払われるかを指定します。指定できる値は3つだけです。</p>



<figure class="wp-block-table"><table><thead><tr><th>frequency</th><th>利払い頻度</th><th>代表的な債券</th></tr></thead><tbody><tr><td>1</td><td>年1回</td><td>欧州系社債、ユーロ債の一部</td></tr><tr><td>2</td><td>半年に1回（年2回）</td><td>米国国債、日本国債、多くの社債</td></tr><tr><td>4</td><td>四半期に1回（年4回）</td><td>一部の仕組債、変動利付債</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">日本や米国の標準的な利付債は半年払い（frequency=2）が圧倒的多数です。迷ったらまず2を入れて、目論見書や条件決定通知で利払い回数を確認しましょう。1, 2, 4 以外を指定すると <strong>#NUM! エラー</strong> が返ります。</p>



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



<p class="wp-block-paragraph">basis は、利息計算で1年や1か月をどう数えるかを指定する引数です。証券の種類によって慣習が異なるので、目論見書の「日数計算方式」欄を確認するのが確実です。</p>



<figure class="wp-block-table"><table><thead><tr><th>basis</th><th>日数計算方法</th><th>主な用途</th></tr></thead><tbody><tr><td>0（または省略）</td><td>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>短期金融商品、CD</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">basis に5以上や負の値を指定すると <strong>#NUM! エラー</strong> になります。実務では「とりあえず 0 で省略」というケースが多いですが、米国国債のように Actual/Actual（basis=1）を使うべき商品もあるので注意してください。</p>



<h2 class="wp-block-heading"><span id="toc5">実用例：Microsoft公式サンプルで利回りを計算する</span></h2>



<p class="wp-block-paragraph">Microsoft 公式ドキュメントの ODDFYIELD関数のサンプル値を使って、実際に計算してみます。次のような社債を想定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>値</th></tr></thead><tbody><tr><td>受渡日（settlement）</td><td>2008/11/11</td></tr><tr><td>満期日（maturity）</td><td>2021/3/1</td></tr><tr><td>発行日（issue）</td><td>2008/10/15</td></tr><tr><td>最初の利払い日（first_coupon）</td><td>2009/3/1</td></tr><tr><td>年間クーポンレート（rate）</td><td>5.75%（0.0575）</td></tr><tr><td>債券価格（pr）</td><td>84.50</td></tr><tr><td>償還価格（redemption）</td><td>100</td></tr><tr><td>利払い頻度（frequency）</td><td>2（半年払い）</td></tr><tr><td>日数計算（basis）</td><td>0（US 30/360）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">シートのセル B2:B10 に上から順にこれらの値を入れたとします。日付はそのまま日付として、利率は 0.0575 として入力します。利回りを求める数式は次のようになります。</p>



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



<p class="wp-block-paragraph">このとき、戻り値はおよそ <strong>0.0772</strong>、つまり <strong>年間利回り 7.72%</strong> となります。クーポンレートは 5.75% ですが、額面100の債券を 84.50 の割引価格で買っているため、利回りはクーポンレートよりも高くなる、というイメージです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>発行日（2008/10/15）から最初の利払い日（2009/3/1）までが約4.5か月で、半年払いの「半年」と一致しないため、これは初回端数期間ありの債券です。通常のYIELD関数で計算すると、この4.5か月分が考慮されず、利回りがやや低めに出てしまいます。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc6">日付順制約（最重要ポイント）</span></h2>



<p class="wp-block-paragraph">ODDFYIELD関数で最も間違いやすいのが日付の順序です。次の不等式を <strong>必ず</strong> 満たす必要があります。</p>



<pre class="wp-block-code"><code>maturity &gt; first_coupon &gt; settlement &gt; issue</code></pre>



<p class="wp-block-paragraph">つまり「発行日 → 受渡日 → 最初の利払い日 → 満期日」の順に時系列で並んでいないとなりません。一つでも順序が崩れると即 #NUM! エラーになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>日付</th><th>意味</th><th>順序</th></tr></thead><tbody><tr><td>issue（発行日）</td><td>債券が発行された日</td><td>一番古い</td></tr><tr><td>settlement（受渡日）</td><td>投資家に証券が引き渡された日</td><td>2番目</td></tr><tr><td>first_coupon（最初の利払い日）</td><td>最初に利息が支払われた日</td><td>3番目</td></tr><tr><td>maturity（満期日）</td><td>元本が償還される日</td><td>一番未来</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>日付順違反は #NUM! エラーになるので、ぱっと見ではどの引数が悪いのかわからない場合があります。引数が多いODDFYIELDでは、各日付セルに「●●日（○年○月○日）」とコメントを付けておくと、後から見直したときに混乱しません。</p></blockquote>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#NUM!</code></td><td>日付順違反（maturity > first_coupon > settlement > issue を満たさない）</td><td>4つの日付の前後関係を見直す</td></tr><tr><td><code>#NUM!</code></td><td>rate < 0、pr ≤ 0、redemption ≤ 0</td><td>利率と価格は正の値を指定</td></tr><tr><td><code>#NUM!</code></td><td>frequency が 1, 2, 4 以外</td><td>1（年1回）、2（半年）、4（四半期）のいずれかを指定</td></tr><tr><td><code>#NUM!</code></td><td>basis が 0 〜 4 の範囲外</td><td>0〜4 の整数（または省略）を指定</td></tr><tr><td><code>#VALUE!</code></td><td>引数に日付として認識できない文字列が入っている</td><td>DATE関数で日付を作るか、セルの書式を「日付」にする</td></tr><tr><td><code>#VALUE!</code></td><td>引数に数値として認識できない値が入っている</td><td>数値型かどうかを確認</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">特に多いのが、目論見書の表記をそのままコピーして文字列のまま渡してしまうケースです。日付は <code>=DATE(2008,11,11)</code> のように DATE関数で作るか、セルの書式設定で「日付」型にしておくのが確実です。</p>



<h2 class="wp-block-heading"><span id="toc8">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>ODDFYIELD</td><td>初回端数期間あり・定期利払い証券</td><td>年間利回り</td></tr><tr><td>ODDFPRICE</td><td>初回端数期間あり・定期利払い証券</td><td>額面100あたりの価格</td></tr><tr><td>YIELD</td><td>通常の定期利払い証券</td><td>年間利回り</td></tr><tr><td>PRICE</td><td>通常の定期利払い証券</td><td>額面100あたりの価格</td></tr><tr><td>YIELDMAT</td><td>満期時に利息が一括支払われる証券</td><td>年間利回り</td></tr><tr><td>PRICEMAT</td><td>満期時に利息が一括支払われる証券</td><td>額面100あたりの価格</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc9">使い分けの判断フロー</span></h3>



<ol class="wp-block-list"><li>利息は <strong>満期に一括</strong> で支払われるか？ → はい：YIELDMAT / PRICEMAT</li><li><strong>初回利払い期間が半端</strong> か？ → はい：ODDFYIELD / ODDFPRICE</li><li>それ以外（普通の定期利払い） → YIELD / PRICE</li></ol>



<p class="wp-block-paragraph">ODDFYIELDで価格から利回りを計算したら、逆に利回りから価格を求めるのは ODDFPRICE関数です。価格と利回りはちょうど裏返しの関係になっていて、引数の構成もほぼ同じです。</p>



<p class="wp-block-paragraph">なお、最終利払いだけが端数期間になる債券には ODDLYIELD関数（Odd Last Yield）を使います。発行直後だけが半端なら ODDFYIELD、満期直前だけが半端なら ODDLYIELD、と覚えておくと整理しやすいです。</p>



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



<p class="wp-block-paragraph">債券の価格・利回り計算をさらに深めたい方は、次の記事もあわせてご覧ください。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-yield-function/">ExcelのYIELD関数の使い方｜定期利払い債券の利回りを1関数で計算</a>：初回端数期間のない通常の定期利払い債の利回りを求める基本の関数です。</li><li><a href="https://mashukabu.com/excel-price-function/">ExcelのPRICE関数の使い方｜国債・社債の理論価格を1関数で算出</a>：利回りから債券の理論価格を逆算する関数で、ODDFYIELDとペアになる考え方を整理できます。</li><li><a href="https://mashukabu.com/excel-yieldmat/">【Excel】YIELDMAT関数の使い方｜満期一括払い債券の利回りを計算する</a>：利息が満期に一括で支払われる債券の利回りを計算する関数です。</li></ul>



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



<p class="wp-block-paragraph">ExcelのODDFYIELD関数は、初回利払い期間が半端な債券の年間利回りを正確に計算できる関数です。要点を整理すると次のとおりです。</p>



<ul class="wp-block-list"><li><strong>構文</strong>: <code>=ODDFYIELD(settlement, maturity, issue, first_coupon, rate, pr, redemption, frequency, [basis])</code></li><li><strong>対象</strong>: 初回利払い期間が定期周期と異なる「初回端数期間あり」の債券</li><li><strong>日付順制約</strong>: <code>maturity > first_coupon > settlement > issue</code> を満たすこと</li><li><strong>frequency</strong>: 1（年1回）/ 2（半年）/ 4（四半期）から選択</li><li><strong>basis</strong>: 0〜4。迷ったら 0（省略）でOK、米国国債なら 1（Actual/Actual）</li></ul>



<p class="wp-block-paragraph">引数が9個と多いので、セルに値を並べてラベルを付けてから関数で参照する方法をおすすめします。日付順違反による #NUM! エラーが最も多いトラブルなので、計算前に必ず4つの日付の前後関係を確認しましょう。</p>



<p class="wp-block-paragraph">普通の定期利払い債なら YIELD関数、満期一括払いなら YIELDMAT関数、というように、債券のタイプに応じて関数を選び分けるのが基本です。価格から利回りへ変換するのが ODDFYIELD、利回りから価格へ逆算するのが ODDFPRICE、というペア関係も押さえておくと、債券分析がぐっとスムーズになります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-oddfyield/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
