<?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>COUPDAYBS関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/coupdaybs%e9%96%a2%e6%95%b0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 07 May 2026 12:42:39 +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>COUPDAYBS関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ExcelのCOUPDAYBS関数の使い方｜直前利払日から受渡日までの日数を計算する</title>
		<link>https://mashukabu.com/excel-coupdaybs-function/</link>
					<comments>https://mashukabu.com/excel-coupdaybs-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 07 May 2026 12:42:39 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[COUPDAYBS関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[利払日]]></category>
		<category><![CDATA[経過利息]]></category>
		<category><![CDATA[経過日数]]></category>
		<category><![CDATA[財務関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6558</guid>

					<description><![CDATA[ExcelのCOUPDAYBS関数で直前の利払日から受渡日までの日数を計算する方法を解説。経過利息計算の分子として使う基礎関数の構文・実例・COUPDAYS/COUPDAYSNCとの関係・ACCRINT連携・エラー対処までまとめます。]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">ExcelのCOUPDAYBS関数の使い方｜直前利払日から受渡日までの日数を計算する</h1>



<p class="wp-block-paragraph">債券を満期前に売買するとき、「直前の利払日から受渡日まで何日経っているか」を求めたい場面があります。これは<strong>経過利息（発生利息）</strong>を計算するための基礎情報です。手計算で日数を数えるのは大変ですし、半年払いや四半期払いだと利払日が複雑になりますよね。</p>



<p class="wp-block-paragraph">ExcelのCOUPDAYBS関数を使えば、引数を4つ入れるだけで直前利払日から受渡日までの日数が一発で出ます。ACCRINT関数やPRICE関数とも内部で同じロジックを共有しており、債券業務の経過利息計算に欠かせない関数です。</p>



<p class="wp-block-paragraph">この記事では、COUPDAYBS関数の構文・実例・経過利息の計算方法を解説します。COUPDAYSやCOUPDAYSNCとの関係も同僚に教える感覚で整理しました。</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><li><a href="#toc1" tabindex="0">ExcelのCOUPDAYBS関数とは？</a><ol><li><a href="#toc2" tabindex="0">COUPDAYBS関数が必要な場面</a></li><li><a href="#toc3" tabindex="0">COUPDAYBS関数で扱える債券</a></li></ol></li><li><a href="#toc4" tabindex="0">COUPDAYBS関数の構文と引数</a><ol><li><a href="#toc5" tabindex="0">settlement と maturity の関係</a></li><li><a href="#toc6" tabindex="0">frequency 引数の選び方</a></li><li><a href="#toc7" tabindex="0">basis 引数の選び方</a></li></ol></li><li><a href="#toc8" tabindex="0">COUPDAYBS関数の基本的な使い方</a><ol><li><a href="#toc9" tabindex="0">例1: 半年払い国債の経過日数</a></li><li><a href="#toc10" tabindex="0">例2: 年1回払い社債の経過日数</a></li><li><a href="#toc11" tabindex="0">例3: 四半期払い債券の経過日数</a></li><li><a href="#toc12" tabindex="0">引数をセル参照にする書き方</a></li></ol></li><li><a href="#toc13" tabindex="0">経過利息の計算式とCOUPDAYBSの役割</a><ol><li><a href="#toc14" tabindex="0">経過利息の計算例</a></li></ol></li><li><a href="#toc15" tabindex="0">COUPDAYBS・COUPDAYS・COUPDAYSNCの関係</a><ol><li><a href="#toc16" tabindex="0">三関数の恒等式</a></li><li><a href="#toc17" tabindex="0">具体例で確認する</a></li><li><a href="#toc18" tabindex="0">直前・次の利払日も知りたいとき</a></li></ol></li><li><a href="#toc19" tabindex="0">ACCRINT関数・PRICE関数との連携</a><ol><li><a href="#toc20" tabindex="0">ACCRINT関数との関係</a></li><li><a href="#toc21" tabindex="0">PRICE関数との関係</a></li><li><a href="#toc22" tabindex="0">関連する財務関数の全体像</a></li></ol></li><li><a href="#toc23" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc24" tabindex="0">#NUM! エラー</a></li><li><a href="#toc25" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc26" tabindex="0">#NAME? エラー</a></li><li><a href="#toc27" tabindex="0">結果が想定と違う場合</a></li></ol></li><li><a href="#toc28" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">ExcelのCOUPDAYBS関数（読み方：クーポン・デイズ・ビフォア・セトルメント）は財務関数の一つです。<strong>直前の利払日から受渡日までの日数を返してくれます</strong>。</p>



<p class="wp-block-paragraph">関数名は「COUPon DAYs Before Settlement」の略です。直訳すると「受渡日より前のクーポン期間の日数」となります。クーポン（定期利息）が付く債券で、利払日と受渡日の関係を日数で取り出すための関数です。</p>



<h3 class="wp-block-heading"><span id="toc2">COUPDAYBS関数が必要な場面</span></h3>



<p class="wp-block-paragraph">債券は通常、半年や1年ごとに利息（クーポン）を受け取ります。投資家が満期前に債券を売買する場合、売主には「直前の利払日から売却日までの利息」を受け取る権利があります。これが<strong>経過利息（発生利息）</strong>です。</p>



<p class="wp-block-paragraph">購入者は債券価格に加えてこの経過利息を売主に支払う仕組みです。COUPDAYBS関数は、その計算に必要な「経過した日数」を返してくれます。</p>



<h3 class="wp-block-heading"><span id="toc3">COUPDAYBS関数で扱える債券</span></h3>



<p class="wp-block-paragraph">定期的にクーポンを支払う債券が対象になります。</p>



<ul class="wp-block-list"><li>利付国債（10年債・5年債など）</li><li>利付社債</li><li>地方債</li><li>半年払い債券</li><li>四半期払い債券</li></ul>



<p class="wp-block-paragraph">割引証券（TB・CP・ゼロクーポン債）や満期一括利払い債は対象外です。これらには<a href="https://mashukabu.com/excel-yielddisc-function/">YIELDDISC関数</a>や<a href="https://mashukabu.com/excel-yieldmat-function/">YIELDMAT関数</a>を使ってくださいね。</p>



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



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



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



<p class="wp-block-paragraph">引数は4つで、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>満期日（償還日）。settlementより後の日付</td></tr><tr><td>frequency</td><td>必須</td><td>年間利払回数（1=年1回・2=半年1回・4=四半期1回）</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">settlement と maturity の関係</span></h3>



<p class="wp-block-paragraph">settlementは実際に代金を払って証券を受け取る日です。約定日（取引が成立した日）とは別物なので注意してください。maturityはsettlementより後でなければ#NUM!エラーになります。</p>



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



<p class="wp-block-paragraph">年間の利払回数を指定します。指定できる値は3つだけです。</p>



<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>



<p class="wp-block-paragraph">3（4か月ごと）や12（毎月払い）は指定できません。#NUM!エラーになります。</p>



<h3 class="wp-block-heading"><span id="toc7">basis 引数の選び方</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>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>



<p class="wp-block-paragraph">実務では国債なら basis=1、日本国内の社債なら basis=3 を使うケースが多いですよ。</p>



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



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



<h3 class="wp-block-heading"><span id="toc9">例1: 半年払い国債の経過日数</span></h3>



<p class="wp-block-paragraph">10年物国債（半年払い）を満期前に購入する場面です。</p>



<ul class="wp-block-list"><li>受渡日: 2026/5/6</li><li>満期日: 2030/11/6</li><li>frequency: 2（半年払い）</li><li>basis: 1（Actual/Actual）</li></ul>



<p class="wp-block-paragraph">セルへの入力例は次のとおりです。</p>



<pre class="wp-block-code"><code>=COUPDAYBS(DATE(2026,5,6), DATE(2030,11,6), 2, 1)</code></pre>



<p class="wp-block-paragraph">結果は <strong>181</strong> が返ります。直前の利払日2025/11/6から受渡日2026/5/6までの実日数が181日であることを示します。</p>



<h3 class="wp-block-heading"><span id="toc10">例2: 年1回払い社債の経過日数</span></h3>



<p class="wp-block-paragraph">年1回払い（frequency=1）の社債で、受渡日が利払日からかなり経過しているケースです。</p>



<ul class="wp-block-list"><li>受渡日: 2026/5/6</li><li>満期日: 2029/9/15</li><li>frequency: 1（年1回払い）</li><li>basis: 1</li></ul>



<pre class="wp-block-code"><code>=COUPDAYBS(DATE(2026,5,6), DATE(2029,9,15), 1, 1)</code></pre>



<p class="wp-block-paragraph">結果は <strong>233</strong> です。直前の利払日2025/9/15から受渡日2026/5/6までの実日数233日が返ります。</p>



<h3 class="wp-block-heading"><span id="toc11">例3: 四半期払い債券の経過日数</span></h3>



<p class="wp-block-paragraph">四半期払い（frequency=4）の債券で、受渡日が利払日の直後にあたるケースです。</p>



<ul class="wp-block-list"><li>受渡日: 2026/5/6</li><li>満期日: 2028/3/15</li><li>frequency: 4（四半期払い）</li><li>basis: 1</li></ul>



<pre class="wp-block-code"><code>=COUPDAYBS(DATE(2026,5,6), DATE(2028,3,15), 4, 1)</code></pre>



<p class="wp-block-paragraph">結果は <strong>52</strong> です。直前の利払日2026/3/15から受渡日2026/5/6までの52日が返ります。</p>



<h3 class="wp-block-heading"><span id="toc12">引数をセル参照にする書き方</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/6</td></tr><tr><td>B3</td><td>満期日</td><td>2030/11/6</td></tr><tr><td>B4</td><td>frequency</td><td>2</td></tr><tr><td>B5</td><td>basis</td><td>1</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">数式は <code>=COUPDAYBS(B2, B3, B4, B5)</code> です。</p>



<p class="wp-block-paragraph">受渡日（B2）を変えると経過日数が即座に再計算されます。日付ごとの経過利息推移を確認したいときに便利ですよ。</p>



<h2 class="wp-block-heading"><span id="toc13">経過利息の計算式とCOUPDAYBSの役割</span></h2>



<p class="wp-block-paragraph">COUPDAYBS関数は経過利息計算の「分子」を提供する関数です。経過利息の計算式は次のとおりです。</p>



<pre class="wp-block-code"><code>経過利息 = 額面 × 年利率 ÷ frequency × (COUPDAYBS ÷ COUPDAYS)</code></pre>



<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>債券の額面金額（face value）</td></tr><tr><td>年利率</td><td>クーポン利率（年率）</td></tr><tr><td>frequency</td><td>年間利払回数</td></tr><tr><td>COUPDAYBS</td><td>直前利払日から受渡日までの日数（分子）</td></tr><tr><td>COUPDAYS</td><td>クーポン期間全体の日数（分母）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc14">経過利息の計算例</span></h3>



<p class="wp-block-paragraph">額面1,000,000円・年率1.5%・半年払いの国債を、受渡日2026/5/6に購入するケースです。</p>



<ul class="wp-block-list"><li>額面: 1,000,000円</li><li>年率: 1.5%</li><li>frequency: 2</li><li>受渡日: 2026/5/6</li><li>満期日: 2030/11/6</li><li>basis: 1</li></ul>



<p class="wp-block-paragraph">経過日数とクーポン期間日数を取り出します。</p>



<pre class="wp-block-code"><code>=COUPDAYBS(DATE(2026,5,6), DATE(2030,11,6), 2, 1)
=COUPDAYS(DATE(2026,5,6), DATE(2030,11,6), 2, 1)</code></pre>



<p class="wp-block-paragraph">それぞれ <strong>181</strong> と <strong>365</strong> が返ります（半年=181日のケース）。経過利息の数式に当てはめます。</p>



<pre class="wp-block-code"><code>=1000000 * 0.015 / 2 * (COUPDAYBS(DATE(2026,5,6),DATE(2030,11,6),2,1) / COUPDAYS(DATE(2026,5,6),DATE(2030,11,6),2,1))</code></pre>



<p class="wp-block-paragraph">結果は <strong>7,500円</strong> です。購入者は債券価格に加えて、この7,500円を売主に支払うことになります。</p>



<p class="wp-block-paragraph">ACCRINT関数を使えばこの計算は一発でできますが、内部ではCOUPDAYBSと同じロジックが動いています。仕組みを理解しておくと、ACCRINTの結果を検算する際にも役立ちますよ。</p>



<h2 class="wp-block-heading"><span id="toc15">COUPDAYBS・COUPDAYS・COUPDAYSNCの関係</span></h2>



<p class="wp-block-paragraph">COUPDAYBSと似た名前の関数が2つあります。3つをセットで理解すると、債券のクーポン期間が見えるようになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>返す値</th><th>用途</th></tr></thead><tbody><tr><td>COUPDAYBS</td><td>直前利払日〜受渡日の日数</td><td>経過利息の分子</td></tr><tr><td>COUPDAYS</td><td>クーポン期間全体の日数</td><td>経過利息の分母</td></tr><tr><td>COUPDAYSNC</td><td>受渡日〜次の利払日の日数</td><td>残り日数</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc16">三関数の恒等式</span></h3>



<p class="wp-block-paragraph">3つの関数の関係を式で表すと次のようになります。</p>



<pre class="wp-block-code"><code>COUPDAYBS + COUPDAYSNC = COUPDAYS</code></pre>



<p class="wp-block-paragraph">「経過した日数」＋「残りの日数」＝「クーポン期間全体の日数」という素直な関係です。クーポン期間を時間軸でイメージするとわかりやすいですよ。</p>



<h3 class="wp-block-heading"><span id="toc17">具体例で確認する</span></h3>



<p class="wp-block-paragraph">半年払い国債（受渡日2026/5/6・満期日2030/11/6・frequency=2・basis=1）で確認します。</p>



<pre class="wp-block-code"><code>=COUPDAYBS(DATE(2026,5,6), DATE(2030,11,6), 2, 1)
=COUPDAYS(DATE(2026,5,6), DATE(2030,11,6), 2, 1)
=COUPDAYSNC(DATE(2026,5,6), DATE(2030,11,6), 2, 1)</code></pre>



<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>COUPDAYBS</td><td>181</td><td>経過日数（2025/11/6→2026/5/6）</td></tr><tr><td>COUPDAYS</td><td>365</td><td>クーポン期間全体（2025/11/6→2026/11/6）</td></tr><tr><td>COUPDAYSNC</td><td>184</td><td>残り日数（2026/5/6→2026/11/6）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">検算すると 181 + 184 = 365 で恒等式が成立します。</p>



<h3 class="wp-block-heading"><span id="toc18">直前・次の利払日も知りたいとき</span></h3>



<p class="wp-block-paragraph">具体的な利払日（日付）が知りたい場合はCOUPPCD関数とCOUPNCD関数を使います。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>返す値</th></tr></thead><tbody><tr><td>COUPPCD</td><td>直前の利払日（previous coupon date）</td></tr><tr><td>COUPNCD</td><td>次の利払日（next coupon date）</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>=COUPPCD(DATE(2026,5,6), DATE(2030,11,6), 2, 1)
=COUPNCD(DATE(2026,5,6), DATE(2030,11,6), 2, 1)</code></pre>



<p class="wp-block-paragraph">それぞれ <strong>2025/11/6</strong> と <strong>2026/11/6</strong> が返ります。日付として直接取り出したいケースに便利ですよ。</p>



<h2 class="wp-block-heading"><span id="toc19">ACCRINT関数・PRICE関数との連携</span></h2>



<p class="wp-block-paragraph">COUPDAYBSは単独でも使えますが、他の財務関数と組み合わせると本領を発揮します。</p>



<h3 class="wp-block-heading"><span id="toc20">ACCRINT関数との関係</span></h3>



<p class="wp-block-paragraph">ACCRINT関数は経過利息（金額）を直接返す関数です。内部ではCOUPDAYBSと同じロジックを使っています。</p>



<pre class="wp-block-code"><code>=ACCRINT(issue, first_interest, settlement, rate, par, frequency, [basis], [calc_method])</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>返す値</th></tr></thead><tbody><tr><td>COUPDAYBS</td><td>経過した日数（数値）</td></tr><tr><td>ACCRINT</td><td>経過利息の金額（円）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ACCRINTを使えば経過利息額が一発で出ますが、引数の発行日や初回利払日まで把握しておく必要があります。COUPDAYBS+COUPDAYSの組み合わせなら受渡日と満期日だけで済むため、シンプルな計算には向いています。</p>



<h3 class="wp-block-heading"><span id="toc21">PRICE関数との関係</span></h3>



<p class="wp-block-paragraph">PRICE関数は債券のクリーン価格（経過利息抜きの価格）を返します。市場で「ダーティ価格（経過利息込みの価格）」を求めたい場合があります。そのときはPRICEの結果に経過利息を足してください。</p>



<pre class="wp-block-code"><code>ダーティ価格 = クリーン価格（PRICE） + 額面 × 年利率 ÷ frequency × (COUPDAYBS ÷ COUPDAYS)</code></pre>



<p class="wp-block-paragraph">債券の取引明細書では「価格」と「経過利息」が分けて記載されています。これはクリーン価格とダーティ価格の関係を反映したものですよ。</p>



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



<p class="wp-block-paragraph">利付債・割引債・満期一括利払い債で使う関数を整理します。</p>



<figure class="wp-block-table"><table><thead><tr><th>債券タイプ</th><th>価格関数</th><th>利回り関数</th><th>経過日数関数</th></tr></thead><tbody><tr><td>定期利払い債（クーポン付）</td><td>PRICE</td><td><a href="https://mashukabu.com/excel-yield-function/">YIELD</a></td><td><strong>COUPDAYBS</strong>（本記事）</td></tr><tr><td>割引証券（TB・CP）</td><td>PRICEDISC</td><td><a href="https://mashukabu.com/excel-yielddisc-function/">YIELDDISC</a></td><td>（該当なし）</td></tr><tr><td>満期一括利払い債</td><td><a href="https://mashukabu.com/excel-pricemat-function/">PRICEMAT</a></td><td><a href="https://mashukabu.com/excel-yieldmat-function/">YIELDMAT</a></td><td>（該当なし）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">COUPDAYBSは「定期利払い債（クーポン付債券）」専用の関数だと覚えておきましょう。</p>



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



<h3 class="wp-block-heading"><span id="toc24">#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>settlement ≧ maturity</td><td>受渡日が満期日より前になるよう修正</td></tr><tr><td>frequency が 1・2・4 以外</td><td>1、2、4 のいずれかを指定</td></tr><tr><td>basis が 0〜4 以外</td><td>0〜4の整数を指定</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">frequency に3（4か月ごと）や12（毎月払い）を指定するミスが多いです。Excelの仕様上、利払回数は1・2・4のみ対応しています。</p>



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



<p class="wp-block-paragraph">settlementやmaturityが日付として認識されていないことが原因です。文字列を直接入れると発生します。</p>



<pre class="wp-block-code"><code>誤: =COUPDAYBS(&quot;2026-05-06&quot;, &quot;2030-11-06&quot;, 2, 1)
正: =COUPDAYBS(DATE(2026,5,6), DATE(2030,11,6), 2, 1)</code></pre>



<p class="wp-block-paragraph">セル参照を使う場合も、参照先のセルが「日付型」になっているか確認してください。書式が「文字列」になっていると同じエラーが出ます。</p>



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



<p class="wp-block-paragraph">関数名のスペルミスが原因です。「COUPDAYB」「COUP_DAYBS」のような名前は存在しません。Excelの入力候補から選ぶようにしましょう。</p>



<h3 class="wp-block-heading"><span id="toc27">結果が想定と違う場合</span></h3>



<p class="wp-block-paragraph">basis引数の選択ミスで日数がずれるケースがあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>想定される違い</th><th>原因</th></tr></thead><tbody><tr><td>米国国債なのに日数が小さい</td><td>basis=0（30/360）を使っている可能性</td></tr><tr><td>日本国内債券で米国慣行の値になる</td><td>basis=1ではなくbasis=3を試す</td></tr><tr><td>30日と31日の月で日数が同じ</td><td>basis=0または4は月末を30日固定で扱う</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">basisを変えて結果を見比べると違いがすぐわかりますよ。</p>



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



<p class="wp-block-paragraph">ExcelのCOUPDAYBS関数は、定期利払い債券の「直前利払日から受渡日までの日数」を返す財務関数です。本記事のポイントを振り返ります。</p>



<ul class="wp-block-list"><li><strong>構文</strong>: <code>=COUPDAYBS(settlement, maturity, frequency, [basis])</code></li><li><strong>対象</strong>: 利付国債・利付社債・地方債など定期的にクーポンを支払う債券</li><li><strong>frequency</strong>: 1（年1回）・2（半年）・4（四半期）のみ有効</li><li><strong>恒等式</strong>: COUPDAYBS + COUPDAYSNC = COUPDAYS が常に成立</li><li><strong>経過利息</strong>: 額面 × 年利率 ÷ frequency × (COUPDAYBS ÷ COUPDAYS) で計算</li><li><strong>basis</strong>: 米国国債=1、日本国内債券=3が市場慣行</li><li><strong>連携先</strong>: ACCRINT関数やPRICE関数の内部ロジックでも使われる</li></ul>



<p class="wp-block-paragraph">債券の経過日数が求まったら、同シリーズの<a href="https://mashukabu.com/excel-yield-function/">YIELD関数</a>・<a href="https://mashukabu.com/excel-pricemat-function/">PRICEMAT関数</a>・<a href="https://mashukabu.com/excel-yielddisc-function/">YIELDDISC関数</a>・<a href="https://mashukabu.com/excel-received-function/">RECEIVED関数</a>もあわせて確認してみてください。証券種別ごとの関数使い分けを体系的に身につけられますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-coupdaybs-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのCOUPDAYBS関数の使い方｜利払日から決済日までの日数</title>
		<link>https://mashukabu.com/spreadsheet-coupdaybs-function/</link>
					<comments>https://mashukabu.com/spreadsheet-coupdaybs-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 22 Apr 2026 14:40:45 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[COUPDAYBS関数]]></category>
		<category><![CDATA[債券]]></category>
		<category><![CDATA[経理・財務]]></category>
		<category><![CDATA[経過利息]]></category>
		<category><![CDATA[財務関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6195</guid>

					<description><![CDATA[GoogleスプレッドシートのCOUPDAYBS関数を使えば、直前の利払日から決済日（受渡日）までの日数を簡単に求められます。債券の発生利息（経過利息）計算に必須の関数で、COUPDAYS・COUPDAYSNCとの使い分けを実例付きで解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">債券を満期前に売買するとき、「直前の利払日から今日まで何日分の利息が発生しているか」を計算するのが<strong>発生利息（経過利息）</strong>の計算です。この計算に欠かせないのがCOUPDAYBS関数です。スプレッドシートに引数を4つ入れるだけで、直前の利払日から決済日までの日数がすぐに出てきますよ。</p>



<p class="wp-block-paragraph">この記事では、スプレッドシートのCOUPDAYBS関数の使い方を、構文・実例・よくあるエラーの対処まで同僚に教える感覚で解説します。COUPDAYS関数やCOUPDAYSNC関数との使い分けも整理しているので、債券売買の経過利息計算に活用してください。</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">スプレッドシートのCOUPDAYBS関数とは？</a></li><li><a href="#toc2" tabindex="0">COUPDAYBS関数の構文と引数</a><ol><li><a href="#toc3" tabindex="0">日数計算方法（basis）の設定値</a></li></ol></li><li><a href="#toc4" tabindex="0">COUPDAYBS関数の基本的な使い方</a><ol><li><a href="#toc5" tabindex="0">半年払い債券の経過日数を求める</a></li><li><a href="#toc6" tabindex="0">発生利息を計算する</a></li><li><a href="#toc7" tabindex="0">年1回払い債券の経過日数を求める</a></li></ol></li><li><a href="#toc8" tabindex="0">COUPDAYS・COUPDAYSNCとの使い分け</a><ol><li><a href="#toc9" tabindex="0">具体例で確認する</a></li></ol></li><li><a href="#toc10" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc11" tabindex="0">#NUM!エラー</a></li><li><a href="#toc12" tabindex="0">#VALUE!エラー</a></li><li><a href="#toc13" tabindex="0">#NAME?エラー</a></li></ol></li><li><a href="#toc14" tabindex="0">Excelとの互換性</a></li><li><a href="#toc15" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">スプレッドシートのCOUPDAYBS関数は、<strong>直前の利払日（クーポン期間の開始日）から決済日（受渡日）までの日数を返す財務関数</strong>です。</p>



<p class="wp-block-paragraph">関数名のCOUPDAYBSは &#8220;Coupon Days Before Settlement&#8221;（決済日より前のクーポン期間の日数）を略したものです。</p>



<p class="wp-block-paragraph">債券は通常、発行後に複数回の利払い（クーポン支払い）があります。投資家が満期前に債券を売買する場合、売主は「直前の利払日から売却日までの利息」を受け取る権利があります。これが<strong>発生利息（経過利息）</strong>で、購入者は債券の価格に加えてこの経過利息を売主に支払います。</p>



<p class="wp-block-paragraph">COUPDAYBS関数は発生利息の分子にあたる「経過日数」を求めるために使われますよ。</p>



<pre class="wp-block-code"><code>発生利息 = 額面 × 年率利率 ÷ 利払い頻度 × (COUPDAYBS ÷ COUPDAYS)</code></pre>



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



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



<pre class="wp-block-code"><code>=COUPDAYBS(決済日, 満期日, 頻度, [日数計算方法])</code></pre>



<p class="wp-block-paragraph">英語表記だと <code>=COUPDAYBS(settlement, maturity, 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>頻度（frequency）</td><td>必須</td><td>年間の利払い回数。1=年1回、2=半年1回（半年払）、4=四半期払</td></tr><tr><td>日数計算方法（basis）</td><td>省略可</td><td>1年の日数計算方式（下表参照、省略時は0）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc3">日数計算方法（basis）の設定値</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>1年の日数計算</th></tr></thead><tbody><tr><td>0（省略時）</td><td>30日/360日（米国NASD方式）</td></tr><tr><td>1</td><td>実際の日数/実際の日数</td></tr><tr><td>2</td><td>実際の日数/360日</td></tr><tr><td>3</td><td>実際の日数/365日</td></tr><tr><td>4</td><td>30日/360日（ヨーロッパ方式）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">頻度（frequency）は1・2・4のいずれかしか指定できません。それ以外の値を入れると #NUM! エラーになりますよ。</p>



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



<h3 class="wp-block-heading"><span id="toc5">半年払い債券の経過日数を求める</span></h3>



<p class="wp-block-paragraph">年率5%・半年払い（frequency=2）の国債を、2026/4/22に購入する場合の経過日数を求めます。満期日は2028/10/22とします。</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/4/22</td></tr><tr><td>B3</td><td>満期日</td><td>2028/10/22</td></tr><tr><td>B4</td><td>頻度</td><td>2</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>=COUPDAYBS(B2, B3, B4, 1)</code></pre>



<p class="wp-block-paragraph">結果は <strong>183</strong> です。直前の利払日である2025/10/22から2026/4/22までの実際の日数が183日であることを示します（basis=1 の実日数計算）。</p>



<p class="wp-block-paragraph">DATE関数を使って直接指定することもできます。</p>



<pre class="wp-block-code"><code>=COUPDAYBS(DATE(2026,4,22), DATE(2028,10,22), 2, 1)</code></pre>



<h3 class="wp-block-heading"><span id="toc6">発生利息を計算する</span></h3>



<p class="wp-block-paragraph">上記の半年払い国債（額面100・年率5%）の発生利息を計算します。</p>



<pre class="wp-block-code"><code>経過日数（COUPDAYBS）  =COUPDAYBS(DATE(2026,4,22), DATE(2028,10,22), 2, 1)
クーポン期間日数（COUPDAYS）  =COUPDAYS(DATE(2026,4,22), DATE(2028,10,22), 2, 1)
発生利息  = 100 × 0.05 ÷ 2 × (COUPDAYBS ÷ COUPDAYS)</code></pre>



<pre class="wp-block-code"><code>=100 * 0.05 / 2 * (COUPDAYBS(DATE(2026,4,22),DATE(2028,10,22),2,1) / COUPDAYS(DATE(2026,4,22),DATE(2028,10,22),2,1))</code></pre>



<p class="wp-block-paragraph">結果は <strong>約2.50</strong>（額面100に対して）です。これが購入者が売主に支払う経過利息の目安になりますよ。</p>



<h3 class="wp-block-heading"><span id="toc7">年1回払い債券の経過日数を求める</span></h3>



<p class="wp-block-paragraph">年1回払い（frequency=1）の社債で決済日が2026/4/22、満期日が2029/9/15の場合です。</p>



<pre class="wp-block-code"><code>=COUPDAYBS(DATE(2026,4,22), DATE(2029,9,15), 1, 1)</code></pre>



<p class="wp-block-paragraph">結果は <strong>219</strong> です。直前の利払日2025/9/15から決済日2026/4/22までの実日数219日が経過利息の計算に使われますよ。</p>



<h2 class="wp-block-heading"><span id="toc8">COUPDAYS・COUPDAYSNCとの使い分け</span></h2>



<p class="wp-block-paragraph">COUPDAYBS関数と似た名前の関数が2つあります。3つをまとめて理解すると発生利息計算の全体像がつかめますよ。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>返す値</th><th>用途</th></tr></thead><tbody><tr><td>COUPDAYBS</td><td>直前の利払日〜決済日の日数</td><td>発生利息の分子（経過日数）</td></tr><tr><td>COUPDAYS</td><td>決済日を含むクーポン期間全体の日数</td><td>発生利息の分母（期間全体の日数）</td></tr><tr><td>COUPDAYSNC</td><td>決済日〜次の利払日の日数</td><td>決済日から次の利払いまでの残り日数</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">3つの関係を式で表すと次のようになります。</p>



<pre class="wp-block-code"><code>COUPDAYBS + COUPDAYSNC = COUPDAYS</code></pre>



<p class="wp-block-paragraph">つまり「経過した日数」＋「残りの日数」＝「クーポン期間全体の日数」という関係になっていますよ。</p>



<h3 class="wp-block-heading"><span id="toc9">具体例で確認する</span></h3>



<p class="wp-block-paragraph">決済日2026/4/22、満期日2028/10/22、半年払い（frequency=2）、basis=1 の場合：</p>



<pre class="wp-block-code"><code>=COUPDAYBS(DATE(2026,4,22), DATE(2028,10,22), 2, 1)   → 183（経過日数）
=COUPDAYS(DATE(2026,4,22), DATE(2028,10,22), 2, 1)    → 366（期間全体）
=COUPDAYSNC(DATE(2026,4,22), DATE(2028,10,22), 2, 1)  → 183（残り日数）</code></pre>



<p class="wp-block-paragraph">183 + 183 = 366 と一致しますね。この例では決済日がちょうどクーポン期間の中間にあたるため、経過日数と残り日数が同じになっていますよ。</p>



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



<h3 class="wp-block-heading"><span id="toc11">#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>頻度が1・2・4以外</td><td>1、2、4 のいずれかを指定する</td></tr><tr><td>basis が 0〜4 以外</td><td>0, 1, 2, 3, 4 のいずれかを指定する</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">特に頻度（frequency）は整数の 1・2・4 のみ有効です。3（4か月ごと）や12（毎月払い）などは使えませんよ。</p>



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



<p class="wp-block-paragraph">引数に数値や日付以外の文字列が入っている場合に発生します。日付を直接書くときは <code>DATE(2026,4,22)</code> のようにDATE関数を使うと確実ですよ。セル参照で日付を渡す場合も、そのセルが「日付型」になっているかを確認してくださいね。</p>



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



<p class="wp-block-paragraph">関数名のスペルミスが原因です。「COUPDAYB」「COUP_DAYBS」などは存在しない関数名です。入力候補から選ぶようにしましょう。</p>



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



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



<p class="wp-block-paragraph">スプレッドシートでは引数名が日本語（「決済日」「満期日」「頻度」「日数計算方法」）で表示されます。Excelの英語表記（<code>settlement</code>、<code>maturity</code>、<code>frequency</code>、<code>basis</code>）と見た目は異なりますが、動作に影響はありません。</p>



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



<p class="wp-block-paragraph">スプレッドシートのCOUPDAYBS関数は、直前の利払日から決済日までの日数を返す財務関数です。ポイントをまとめておきます。</p>



<ul class="wp-block-list"><li>引数は<strong>決済日・満期日・頻度</strong>の3つが必須。日数計算方法（basis）は省略可</li><li>頻度（frequency）は<strong>1（年1回）・2（半年払い）・4（四半期払い）</strong>のみ有効</li><li><strong>COUPDAYBS + COUPDAYSNC = COUPDAYS</strong> の関係になる</li><li>発生利息の計算式は <strong>額面 × 年率利率 ÷ 頻度 × (COUPDAYBS ÷ COUPDAYS)</strong></li><li>日付には <strong>DATE関数を使う</strong>と文字列とのトラブルを防げる</li><li>Excelとの互換性があり、.xlsxファイルをそのまま開いても動作する</li></ul>



<p class="wp-block-paragraph">債券の中途売買で経過利息を確認したいときや、ACCRINT関数と組み合わせて発生利息を自動計算する表を作るときにぜひ活用してみてください。クーポン関連の財務関数は<a href="https://mashukabu.com/spreadsheet-coupdays-function/">COUPDAYS関数</a>・<a href="https://mashukabu.com/spreadsheet-coupdaysnc-function/">COUPDAYSNC関数</a>・<a href="https://mashukabu.com/spreadsheet-coupncd-function/">COUPNCD関数</a>・<a href="https://mashukabu.com/spreadsheet-couppcd-function/">COUPPCD関数</a>と合わせて使うと、債券の利払いスケジュール管理に役立ちますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-coupdaybs-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
