<?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>MDURATION &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/mduration/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 07 May 2026 12:42:55 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>MDURATION &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ExcelのMDURATION関数の使い方｜修正デュレーションで金利感応度を計算</title>
		<link>https://mashukabu.com/excel-mduration-function/</link>
					<comments>https://mashukabu.com/excel-mduration-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 07 May 2026 12:42:55 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[MDURATION]]></category>
		<category><![CDATA[リスク管理]]></category>
		<category><![CDATA[修正デュレーション]]></category>
		<category><![CDATA[債券]]></category>
		<category><![CDATA[財務関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6568</guid>

					<description><![CDATA[ExcelのMDURATION関数で修正デュレーション（金利感応度）を計算する方法を、構文・実例・DURATION関数との違いまで詳しく解説。価格変動の一次近似式 ΔP/P ≈ -MDuration×Δy の使い方、よくあるエラーの対処法、債券ポートフォリオ管理での活用例も紹介します。]]></description>
										<content:encoded><![CDATA[
<p>ExcelのMDURATION関数は、債券の修正デュレーション（Modified Duration）を計算する財務関数です。修正デュレーションは「金利が1%変動したら債券価格が何%動くか」を表す金利感応度の指標。債券の価格変動を予測する実務計算で日常的に使われていますよ。</p>



<p>DURATION関数（マコーレー・デュレーション）とよく混同されますが、両者の使い分けは明確です。学術的な期間構造の分析にはDURATION、価格変動の予測やリスク管理にはMDURATIONを使います。実務ではほぼMDURATIONの方が出番が多いですよ。</p>



<p>ただ、業務で初めて触れる方からは「マコーレーと修正、結局どっちを使えばいいの？」「数式上は単純な変換なのに、なぜ別の関数があるの？」という疑問をよく聞きます。この記事ではMDURATION関数の構文と基本的な使い方を解説します。さらにDURATION関数との使い分けまで、Excelで実務に使える形で詳しく見ていきますよ。</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のMDURATION関数とは？修正デュレーションの考え方</a><ol><li><a href="#toc2" tabindex="0">マコーレーとの違いを表で先に押さえる</a></li></ol></li><li><a href="#toc3" tabindex="0">MDURATION関数の構文と引数</a><ol><li><a href="#toc4" tabindex="0">frequencyは 1, 2, 4 のみ有効</a></li><li><a href="#toc5" tabindex="0">basis引数（日数計算基準）の早見表</a></li></ol></li><li><a href="#toc6" tabindex="0">MDURATION関数の基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">例: 5年・半年クーポン・利率5%・利回り4%</a></li><li><a href="#toc8" tabindex="0">計算過程を確認する</a></li></ol></li><li><a href="#toc9" tabindex="0">修正デュレーションで価格変動を予測する</a><ol><li><a href="#toc10" tabindex="0">一次近似の公式</a></li><li><a href="#toc11" tabindex="0">実例：利回り0.5%上昇シナリオ</a></li><li><a href="#toc12" tabindex="0">Excelで複数シナリオを一覧する</a></li><li><a href="#toc13" tabindex="0">DV01（金利1bp変動の影響額）</a></li></ol></li><li><a href="#toc14" tabindex="0">DURATION関数とMDURATION関数の使い分け</a><ol><li><a href="#toc15" tabindex="0">使い分けフローチャート</a></li><li><a href="#toc16" tabindex="0">比較表（再掲・拡張版）</a></li><li><a href="#toc17" tabindex="0">よくある誤解</a></li></ol></li><li><a href="#toc18" tabindex="0">一次近似の限界とコンベクシティ</a><ol><li><a href="#toc19" tabindex="0">誤差の実例</a></li><li><a href="#toc20" tabindex="0">コンベクシティによる補正</a></li></ol></li><li><a href="#toc21" tabindex="0">実務での活用シーン</a><ol><li><a href="#toc22" tabindex="0">シーン1: 金利リスクの定量化</a></li><li><a href="#toc23" tabindex="0">シーン2: ポートフォリオの平均MDURATION</a></li><li><a href="#toc24" tabindex="0">シーン3: ALM（資産負債管理）</a></li><li><a href="#toc25" tabindex="0">シーン4: ヘッジ比率の算出</a></li></ol></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><li><a href="#toc30" tabindex="0">まとめ</a><ol><li><a href="#toc31" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのMDURATION関数とは？修正デュレーションの考え方</span></h2>



<p>ExcelのMDURATION関数は、<strong>修正デュレーション（Modified Duration）</strong> を計算する関数です。</p>



<p>修正デュレーションは、債券のマコーレー・デュレーションを <code>(1 + 利回り/年複利回数)</code> で割ったもの。<strong>金利が1%変動したときに債券価格が何%動くかの感応度</strong>を表します。単位は「年」ですが、これは時間そのものではなく「価格弾力性の指標」と理解するのがおすすめですよ。</p>



<p>たとえばMDurationが4.4年の債券は、利回りが1%上昇すれば価格が約4.4%下落します。逆に1%下落すれば約4.4%上昇する、という関係です。この一次近似（細かい曲線を直線で近似する数学手法）は債券リスク管理の基本ですよ。</p>



<h3 class="wp-block-heading"><span id="toc2">マコーレーとの違いを表で先に押さえる</span></h3>



<p>ExcelにはDURATION関数（マコーレー・デュレーション）も用意されていて、両者は引数構造が完全に同じです。違いは戻り値の意味と用途だけ。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>DURATION（マコーレー）</th><th>MDURATION（修正）</th></tr></thead><tbody><tr><td>戻り値</td><td>キャッシュフロー加重平均期間</td><td>金利1%変動時の価格変動率</td></tr><tr><td>主な用途</td><td>期間構造の分析・学術用途</td><td>価格変動の予測・リスク管理</td></tr><tr><td>大小関係</td><td>MDurationより必ず大きい</td><td>Macaulayより必ず小さい</td></tr><tr><td>実務での頻度</td><td>学術・解説で使う</td><td>業務ではこちらが主流</td></tr></tbody></table></figure>



<p>両者の数式関係はシンプルです。</p>



<pre class="wp-block-code"><code>Modified Duration = Macaulay Duration / (1 + y/n)</code></pre>



<ul class="wp-block-list"><li>y: 年率最終利回り（4%なら 0.04）</li><li>n: 年間利払回数（半年複利なら 2）</li></ul>



<p>たとえば利回り4%・半年複利の場合を考えてみましょう。Macaulay Durationを <code>1 + 0.04/2 = 1.02</code> で割った値が修正デュレーションになります。差は約2%程度ですが、この変換が「期間の指標」から「価格感応度の指標」へと意味を変えるのです。</p>



<p>詳しいマコーレー・デュレーションの考え方は<a href="https://mashukabu.com/excel-duration-function/">ExcelのDURATION関数の使い方</a>で解説しています。合わせて読んでみてください。</p>



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



<p>MDURATION関数の構文は次の通りです。</p>



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



<p>各引数の意味を表にまとめました。</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>coupon</td><td>必須</td><td>年利クーポンレート（5%なら0.05）</td></tr><tr><td>yld</td><td>必須</td><td>年間最終利回り（4%なら0.04）</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>



<p>引数構造はDURATION関数とまったく同じです。同じセルを参照して両関数を並べれば、マコーレーと修正の両方を一気に確認できますよ。</p>



<h3 class="wp-block-heading"><span id="toc4">frequencyは 1, 2, 4 のみ有効</span></h3>



<p>frequency引数は <strong>1、2、4 のいずれかのみ有効</strong> です。</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>半年に1回</td><td>米国社債・国債の標準</td></tr><tr><td>4</td><td>四半期に1回</td><td>一部社債</td></tr></tbody></table></figure>



<p>3、6、12 のような他の数値を指定すると <code>#NUM!</code> エラーになります。日本国債の半年クーポンは 2、米国財務省証券（Tノート、Tボンド）も 2 を指定するのが標準的ですよ。</p>



<h3 class="wp-block-heading"><span id="toc5">basis引数（日数計算基準）の早見表</span></h3>



<p>basis引数は債券の日数計算ルールを指定します。省略すると0（NASD 30/360）が使われます。</p>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>日数計算基準</th><th>主な用途</th></tr></thead><tbody><tr><td>0（既定）</td><td>NASD 30/360</td><td>米国社債の標準</td></tr><tr><td>1</td><td>実日数/実日数</td><td>日本国債、米国財務省証券</td></tr><tr><td>2</td><td>実日数/360</td><td>一部マネーマーケット</td></tr><tr><td>3</td><td>実日数/365</td><td>一部の社債</td></tr><tr><td>4</td><td>European 30/360</td><td>欧州社債</td></tr></tbody></table></figure>



<p>業務でどのbasisを使うかは、対象債券の発行体規約で決まっています。日本国債なら1、米国社債なら0が一般的ですよ。</p>



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



<p>実際にExcelでMDURATION関数を動かしてみましょう。DURATION記事と同じ条件の5年債を使うので、両者の関係も実感できますよ。</p>



<h3 class="wp-block-heading"><span id="toc7">例: 5年・半年クーポン・利率5%・利回り4%</span></h3>



<p>次のような条件の債券を考えます。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>値</th></tr></thead><tbody><tr><td>受渡日</td><td>2026/1/1</td></tr><tr><td>満期日</td><td>2031/1/1</td></tr><tr><td>クーポンレート</td><td>5%（年率）</td></tr><tr><td>最終利回り</td><td>4%（年率）</td></tr><tr><td>利払回数</td><td>半年に1回（frequency=2）</td></tr><tr><td>日数基準</td><td>NASD 30/360（basis=0）</td></tr></tbody></table></figure>



<p>Excelのセルに次のように入力します。</p>



<figure class="wp-block-table"><table><thead><tr><th>セル</th><th>入力値</th></tr></thead><tbody><tr><td>A1</td><td>2026/1/1</td></tr><tr><td>A2</td><td>2031/1/1</td></tr><tr><td>A3</td><td>0.05</td></tr><tr><td>A4</td><td>0.04</td></tr><tr><td>A5</td><td>2</td></tr></tbody></table></figure>



<p>数式は次のように書きます。</p>



<pre class="wp-block-code"><code>=MDURATION(A1, A2, A3, A4, A5, 0)</code></pre>



<p>DATE関数を使うとさらに分かりやすいです。</p>



<pre class="wp-block-code"><code>=MDURATION(DATE(2026,1,1), DATE(2031,1,1), 0.05, 0.04, 2, 0)</code></pre>



<p>結果は <strong>約 4.411 年</strong> になります。</p>



<h3 class="wp-block-heading"><span id="toc8">計算過程を確認する</span></h3>



<p>DURATION関数とMDURATION関数を並べて実行すると、関係性がはっきり見えます。</p>



<figure class="wp-block-table"><table><thead><tr><th>セル</th><th>数式</th><th>結果</th></tr></thead><tbody><tr><td>A6</td><td><code>=DURATION(A1,A2,A3,A4,A5,0)</code></td><td>4.499</td></tr><tr><td>A7</td><td><code>=MDURATION(A1,A2,A3,A4,A5,0)</code></td><td>4.411</td></tr><tr><td>A8</td><td><code>=A6/(1+A4/A5)</code></td><td>4.411</td></tr></tbody></table></figure>



<p>A7とA8の結果は完全に一致します。マコーレー 4.499 を 1.02 で割った値が修正デュレーション 4.411 です。Excelの内部でも同じ計算をしているわけですね。</p>



<h2 class="wp-block-heading"><span id="toc9">修正デュレーションで価格変動を予測する</span></h2>



<p>ここからがMDURATION関数の本領発揮です。修正デュレーションを使えば、利回り変化に対する価格変動を一次近似で予測できますよ。</p>



<h3 class="wp-block-heading"><span id="toc10">一次近似の公式</span></h3>



<p>修正デュレーションを使った価格変動予測の公式は次の通りです。</p>



<pre class="wp-block-code"><code>ΔP/P ≈ −Modified Duration × Δy</code></pre>



<ul class="wp-block-list"><li>ΔP/P: 価格変動率</li><li>Δy: 利回りの変化量（小数表記。0.5% なら 0.005）</li></ul>



<p>マイナス符号は「金利と債券価格が逆方向に動く」ことを表します。利回りが上がれば価格は下がり、利回りが下がれば価格は上がる、というおなじみの関係ですね。</p>



<h3 class="wp-block-heading"><span id="toc11">実例：利回り0.5%上昇シナリオ</span></h3>



<p>先ほどの5年債（MDuration=4.411）で、利回りが 4% から 4.5% に上昇した場合を計算してみましょう。</p>



<pre class="wp-block-code"><code>ΔP/P ≈ −4.411 × 0.005 = −0.02206 = −2.21%</code></pre>



<p>つまり価格は <strong>約 2.21% 下落</strong>する見込みです。100万円分保有していれば約2.2万円の評価損になります。これがMDURATIONの直接的な使い方ですよ。</p>



<h3 class="wp-block-heading"><span id="toc12">Excelで複数シナリオを一覧する</span></h3>



<p>利回り変化のシナリオごとに価格変動を一覧する表を作ると、実務でそのまま使えます。</p>



<figure class="wp-block-table"><table><thead><tr><th>セル</th><th>数式</th><th>結果</th></tr></thead><tbody><tr><td>A1</td><td>（MDURATIONの値）</td><td>4.411</td></tr><tr><td>B2</td><td><code>0.0025</code>（+25bp）</td><td>&nbsp;</td></tr><tr><td>B3</td><td><code>0.005</code>（+50bp）</td><td>&nbsp;</td></tr><tr><td>B4</td><td><code>0.01</code>（+100bp）</td><td>&nbsp;</td></tr><tr><td>B5</td><td><code>-0.005</code>（-50bp）</td><td>&nbsp;</td></tr><tr><td>C2</td><td><code>=-$A$1*B2</code></td><td>-1.10%</td></tr><tr><td>C3</td><td><code>=-$A$1*B3</code></td><td>-2.21%</td></tr><tr><td>C4</td><td><code>=-$A$1*B4</code></td><td>-4.41%</td></tr><tr><td>C5</td><td><code>=-$A$1*B5</code></td><td>+2.21%</td></tr></tbody></table></figure>



<p>利回りの変化（B列）を入れるだけで価格変動率（C列）が瞬時に出ます。リスク管理レポートで頻出するパターンですよ。</p>



<h3 class="wp-block-heading"><span id="toc13">DV01（金利1bp変動の影響額）</span></h3>



<p>実務では「金利が1bp（0.01%）動いたらポートフォリオの価値が何円動くか」を <strong>DV01（Dollar Value of 01）</strong> として日次管理します。1bpは0.01%、つまり金利0.0001の変動を指します。</p>



<pre class="wp-block-code"><code>DV01 ≈ 額面 × Modified Duration × 0.0001</code></pre>



<p>額面1億円・MDuration 4.411 の場合は次のように計算できます。</p>



<pre class="wp-block-code"><code>=100000000 * 4.411 * 0.0001</code></pre>



<p>結果は <strong>約 44,110 円/bp</strong>。1bpの金利変動で約4.4万円の価値変動が発生する計算ですね。</p>



<figure class="wp-block-table"><table><thead><tr><th>額面</th><th>MDuration</th><th>DV01</th></tr></thead><tbody><tr><td>1億円</td><td>4.411</td><td>約 44,110 円/bp</td></tr><tr><td>10億円</td><td>4.411</td><td>約 441,100 円/bp</td></tr><tr><td>100億円</td><td>4.411</td><td>約 4,411,000 円/bp</td></tr></tbody></table></figure>



<p>トレーダーやリスク管理担当者は、毎朝このDV01を確認して当日の許容変動額をチェックしています。</p>



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



<p>ここまで見てきたように、DURATIONとMDURATIONは引数が同じで、戻り値の関係も明確です。実務での使い分けをフローチャートで整理しましょう。</p>



<h3 class="wp-block-heading"><span id="toc15">使い分けフローチャート</span></h3>



<pre class="wp-block-code"><code>Q: 何を知りたい？
├─ 「キャッシュフローの加重平均期間」→ DURATION（マコーレー）
├─ 「金利が1%動いたら価格は何%動く？」→ MDURATION
├─ 「2銘柄の金利感応度を比較したい」→ MDURATION
├─ 「ALMでデュレーション・マッチング」→ MDURATION
└─ 「学術論文・教科書の説明用」→ DURATION（マコーレー）</code></pre>



<p>このフローチャートを見ると、<strong>実務ではほぼMDURATION</strong> を使うことが分かりますよね。マコーレー・デュレーションは「概念の説明や解説のため」に使うことが多く、実際の数値計算には修正デュレーションが選ばれます。</p>



<h3 class="wp-block-heading"><span id="toc16">比較表（再掲・拡張版）</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>DURATION</th><th>MDURATION</th></tr></thead><tbody><tr><td>戻り値の意味</td><td>キャッシュフロー加重平均期間</td><td>金利1%変動時の価格変動率</td></tr><tr><td>計算式</td><td>Σ(t × PV) / Σ(PV)</td><td>Macaulay / (1 + y/n)</td></tr><tr><td>5年債(クーポン5%, 利回り4%)の値</td><td>4.499 年</td><td>4.411 年</td></tr><tr><td>価格変動の予測に使える</td><td>△（変換が必要）</td><td>○（そのまま使える）</td></tr><tr><td>引数構造</td><td>同じ</td><td>同じ</td></tr><tr><td>主な利用シーン</td><td>学術・解説</td><td>リスク管理・トレーディング</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc17">よくある誤解</span></h3>



<ul class="wp-block-list"><li>「DURATIONとMDURATIONは別物」→ <strong>数式関係で結ばれた変形版</strong>です</li><li>「マコーレーは古い、修正は新しい」→ どちらも歴史ある概念で <strong>役割が違う</strong>だけ</li><li>「両方計算する必要はない」→ 解説資料を作るなら両方並べる方が分かりやすい</li></ul>



<h2 class="wp-block-heading"><span id="toc18">一次近似の限界とコンベクシティ</span></h2>



<p>ΔP/P ≈ -MDuration × Δy はあくまで<strong>一次近似</strong>です。利回りが大きく動く局面（1%以上の金利変動など）では、実際の価格曲線との乖離が出てきますよ。</p>



<h3 class="wp-block-heading"><span id="toc19">誤差の実例</span></h3>



<p>5年債（MDuration=4.411）で利回り変化シナリオ別に予測誤差を見てみましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>利回り変化</th><th>一次近似</th><th>実際の変動</th><th>誤差</th></tr></thead><tbody><tr><td>+0.25%</td><td>-1.10%</td><td>-1.10%</td><td>0.00%</td></tr><tr><td>+0.50%</td><td>-2.21%</td><td>-2.18%</td><td>0.03%</td></tr><tr><td>+1.00%</td><td>-4.41%</td><td>-4.30%</td><td>0.11%</td></tr><tr><td>+2.00%</td><td>-8.82%</td><td>-8.43%</td><td>0.39%</td></tr></tbody></table></figure>



<p>利回り変化が小さいほど誤差は小さく、大きく動くほど誤差が広がります。日常業務の <code>±0.5%</code> 程度なら一次近似で十分実用的ですよ。ただし政策金利の急変時には注意してください。</p>



<h3 class="wp-block-heading"><span id="toc20">コンベクシティによる補正</span></h3>



<p>より精度の高い予測式は次のようになります。</p>



<pre class="wp-block-code"><code>ΔP/P ≈ −MDuration × Δy + (1/2) × Convexity × (Δy)²</code></pre>



<p>コンベクシティ（Convexity、価格-利回り曲線の凸性を表す二次微分項）はExcelに標準関数がありません。そのため自作するかPRICE関数で実価格を再計算するアプローチを取りますよ。</p>



<p>通常業務ではMDURATIONだけで十分です。ただしストレステストや極端な金利シナリオを扱う場合は、コンベクシティ補正を検討してみてください。</p>



<h2 class="wp-block-heading"><span id="toc21">実務での活用シーン</span></h2>



<p>MDURATION関数が活躍する代表的な業務シーンを4つ紹介します。</p>



<h3 class="wp-block-heading"><span id="toc22">シーン1: 金利リスクの定量化</span></h3>



<p>ある債券のMDURATIONが4.411で保有額1億円。市場金利が0.5%上昇すると評価損は約221万円と即時予測できます。</p>



<pre class="wp-block-code"><code>評価損 = 100,000,000 × 4.411 × 0.005 = 2,205,500 円</code></pre>



<p>リスク管理レポートで「金利上昇シナリオの影響額」として頻出する計算ですね。</p>



<h3 class="wp-block-heading"><span id="toc23">シーン2: ポートフォリオの平均MDURATION</span></h3>



<p>複数銘柄を保有する場合、各銘柄のMDURATIONを市場価値で加重平均しましょう。これでポートフォリオ全体のMDURATIONが算出できます。</p>



<pre class="wp-block-code"><code>ポートフォリオ MDuration = Σ(各銘柄 MDuration × 各銘柄の市場価値) / Σ(市場価値)</code></pre>



<p>ExcelではSUMPRODUCT関数を使うと一発で計算可能です。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(MDuration範囲, 市場価値範囲) / SUM(市場価値範囲)</code></pre>



<p>これにより「金利1%変動するとポートフォリオ全体で何%下落するか」を1つの数値に集約できますよ。</p>



<h3 class="wp-block-heading"><span id="toc24">シーン3: ALM（資産負債管理）</span></h3>



<p>生命保険会社や年金基金は、保有資産（債券）と負債（保険契約や年金支払約束）の両方にデュレーションを持っています。両者のMDURATIONが一致していれば、金利変動時に資産と負債の価値変動が打ち消し合うのです。これが<strong>デュレーション・マッチング</strong>ですよ。</p>



<p>ALM（Asset-Liability Management、資産負債管理）の核心はこのマッチングにあります。MDURATIONはその測定の基本ツールになっていますよ。</p>



<h3 class="wp-block-heading"><span id="toc25">シーン4: ヘッジ比率の算出</span></h3>



<p>保有債券の金利リスクを別の債券（または金利先物）でヘッジする場合、ヘッジ比率はMDURATIONを使って算出します。</p>



<pre class="wp-block-code"><code>ヘッジ比率 = (保有債券のMDuration × 市場価値) / (ヘッジ手段のMDuration × 市場価値)</code></pre>



<p>たとえば10年債（MDuration=8.5）で5年債（MDuration=4.411）の金利リスクをヘッジしたいとします。5年債1億円のリスクを10年債で打ち消すには次のように計算します。</p>



<pre class="wp-block-code"><code>ヘッジ額 = (4.411 × 100,000,000) / 8.5 ≈ 51,894,000 円</code></pre>



<p>10年債を約5,189万円分ショートすれば、5年債1億円のロングポジションの金利リスクを概ね打ち消せます。</p>



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



<p>MDURATION関数でよく出るエラーと対処方法をまとめました。</p>



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



<p>最も多いエラーパターンです。次の条件で発生します。</p>



<ol class="wp-block-list"><li><strong>settlement >= maturity</strong>：受渡日が満期日と同じか後になっている</li></ol>



<ul class="wp-block-list"><li>→ 日付セルの値を確認、settlement < maturity に修正</li></ul>



<ol class="wp-block-list"><li><strong>frequency が 1, 2, 4 以外</strong>：3、6、12などを指定</li></ol>



<ul class="wp-block-list"><li>→ frequency を 1（年1回）、2（半年）、4（四半期）に修正</li></ul>



<ol class="wp-block-list"><li><strong>basis が 0-4 の範囲外</strong>：5や負の数を指定</li></ol>



<ul class="wp-block-list"><li>→ basis を 0〜4 に修正</li></ul>



<ol class="wp-block-list"><li><strong>coupon が負</strong>：マイナスのクーポンレート</li></ol>



<ul class="wp-block-list"><li>→ 通常の債券では発生しない。逆さスプレッドを扱う場合は別関数を検討</li></ul>



<ol class="wp-block-list"><li><strong>yld が負（古いExcel）</strong>：マイナスの利回り</li></ol>



<ul class="wp-block-list"><li>→ 最近のExcelでは負利回りも受理される場合あり。バージョン確認</li></ul>



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



<p>引数の型が不正な場合に発生します。</p>



<ol class="wp-block-list"><li><strong>settlement / maturity が日付として認識されない</strong></li></ol>



<ul class="wp-block-list"><li>→ DATE関数を使うか、セル書式を「日付」に設定</li></ul>



<ol class="wp-block-list"><li><strong>数値型引数に文字列が入っている</strong></li></ol>



<ul class="wp-block-list"><li>→ coupon、yld、frequency、basis に数値が入っているか確認</li></ul>



<h3 class="wp-block-heading"><span id="toc29">結果がおかしいケース（エラーにはならない）</span></h3>



<ol class="wp-block-list"><li><strong>settlement と maturity の入れ違い</strong>：エラーの代わりに想定外の値が返ることがある</li></ol>



<ul class="wp-block-list"><li>→ 必ず受渡日 < 満期日 になっているか確認</li></ul>



<ol class="wp-block-list"><li><strong>クーポンが0</strong>：ゼロクーポン債扱いになり、Macaulay ≈ Modified ≈ 残存年数 になる</li></ol>



<ul class="wp-block-list"><li>→ 想定通りなら問題なし</li></ul>



<ol class="wp-block-list"><li><strong>利回りが0</strong>：1+y/n=1 となり Modified=Macaulay と一致する</li></ol>



<ul class="wp-block-list"><li>→ 数式上の挙動として正しい</li></ul>



<p>エラーが出たらまず引数の値と型を1つずつ確認するのが一番早いですよ。</p>



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



<p>ExcelのMDURATION関数は、債券の修正デュレーション（金利感応度）を計算する財務関数です。最後に押さえておきたい3つのキーをまとめておきます。</p>



<ul class="wp-block-list"><li><strong>金利感応度の指標</strong>：MDURATIONは「金利1%変動で価格が何%動くか」の感応度。年単位だが時間ではなく、価格弾力性として理解する</li><li><strong>一次近似の公式</strong>：<code>ΔP/P ≈ -MDuration × Δy</code> で価格変動を予測。日常業務（±0.5%程度）では十分な精度</li><li><strong>DURATION関数との使い分け</strong>：マコーレーは学術・解説用、修正は実務・リスク管理用。実務ではほぼMDURATIONが選ばれる</li></ul>



<p>債券の金利リスクを定量化したい、ポートフォリオのデュレーションを管理したい、ALMでマッチングを取りたい。こうした場面でMDURATION関数は強力な武器になりますよ。</p>



<p>DURATIONとMDURATIONは引数が完全に同じです。同じデータで両方を並列実行して比較することもできます。最初のうちは両方を並べて関係性を体感してみてください。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-duration-function/">ExcelのDURATION関数の使い方</a> &#8211; マコーレー・デュレーションの考え方を解説</li><li>ExcelのPRICE関数の使い方 &#8211; 債券価格を計算する姉妹関数</li><li>ExcelのYIELD関数の使い方 &#8211; 最終利回りを計算する姉妹関数</li><li>ExcelのXIRR関数の使い方 &#8211; 不規則キャッシュフローの内部収益率</li><li>ExcelのPV関数の使い方 &#8211; 割引現在価値の基礎</li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-mduration-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
