ExcelのMDURATION関数の使い方|修正デュレーションで金利感応度を計算

スポンサーリンク

ExcelのMDURATION関数は、債券の修正デュレーション(Modified Duration)を計算する財務関数です。修正デュレーションは「金利が1%変動したら債券価格が何%動くか」を表す金利感応度の指標。債券の価格変動を予測する実務計算で日常的に使われていますよ。

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

ただ、業務で初めて触れる方からは「マコーレーと修正、結局どっちを使えばいいの?」「数式上は単純な変換なのに、なぜ別の関数があるの?」という疑問をよく聞きます。この記事ではMDURATION関数の構文と基本的な使い方を解説します。さらにDURATION関数との使い分けまで、Excelで実務に使える形で詳しく見ていきますよ。

ExcelのMDURATION関数とは?修正デュレーションの考え方

ExcelのMDURATION関数は、修正デュレーション(Modified Duration) を計算する関数です。

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

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

マコーレーとの違いを表で先に押さえる

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

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

両者の数式関係はシンプルです。

Modified Duration = Macaulay Duration / (1 + y/n)
  • y: 年率最終利回り(4%なら 0.04)
  • n: 年間利払回数(半年複利なら 2)

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

詳しいマコーレー・デュレーションの考え方はExcelのDURATION関数の使い方で解説しています。合わせて読んでみてください。

MDURATION関数の構文と引数

MDURATION関数の構文は次の通りです。

=MDURATION(settlement, maturity, coupon, yld, frequency, [basis])

各引数の意味を表にまとめました。

引数必須内容
settlement必須受渡日(債券を購入する日)
maturity必須満期日(償還される日)
coupon必須年利クーポンレート(5%なら0.05)
yld必須年間最終利回り(4%なら0.04)
frequency必須年間利払回数(1=年1回、2=半年、4=四半期)
basis任意日数計算基準(0〜4、省略時は0)

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

frequencyは 1, 2, 4 のみ有効

frequency引数は 1、2、4 のいずれかのみ有効 です。

利払頻度主な用途
1年1回米国国債の一部、欧州債券
2半年に1回米国社債・国債の標準
4四半期に1回一部社債

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

basis引数(日数計算基準)の早見表

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

日数計算基準主な用途
0(既定)NASD 30/360米国社債の標準
1実日数/実日数日本国債、米国財務省証券
2実日数/360一部マネーマーケット
3実日数/365一部の社債
4European 30/360欧州社債

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

MDURATION関数の基本的な使い方

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

例: 5年・半年クーポン・利率5%・利回り4%

次のような条件の債券を考えます。

項目
受渡日2026/1/1
満期日2031/1/1
クーポンレート5%(年率)
最終利回り4%(年率)
利払回数半年に1回(frequency=2)
日数基準NASD 30/360(basis=0)

Excelのセルに次のように入力します。

セル入力値
A12026/1/1
A22031/1/1
A30.05
A40.04
A52

数式は次のように書きます。

=MDURATION(A1, A2, A3, A4, A5, 0)

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

=MDURATION(DATE(2026,1,1), DATE(2031,1,1), 0.05, 0.04, 2, 0)

結果は 約 4.411 年 になります。

計算過程を確認する

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

セル数式結果
A6=DURATION(A1,A2,A3,A4,A5,0)4.499
A7=MDURATION(A1,A2,A3,A4,A5,0)4.411
A8=A6/(1+A4/A5)4.411

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

修正デュレーションで価格変動を予測する

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

一次近似の公式

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

ΔP/P ≈ −Modified Duration × Δy
  • ΔP/P: 価格変動率
  • Δy: 利回りの変化量(小数表記。0.5% なら 0.005)

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

実例:利回り0.5%上昇シナリオ

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

ΔP/P ≈ −4.411 × 0.005 = −0.02206 = −2.21%

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

Excelで複数シナリオを一覧する

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

セル数式結果
A1(MDURATIONの値)4.411
B20.0025(+25bp) 
B30.005(+50bp) 
B40.01(+100bp) 
B5-0.005(-50bp) 
C2=-$A$1*B2-1.10%
C3=-$A$1*B3-2.21%
C4=-$A$1*B4-4.41%
C5=-$A$1*B5+2.21%

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

DV01(金利1bp変動の影響額)

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

DV01 ≈ 額面 × Modified Duration × 0.0001

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

=100000000 * 4.411 * 0.0001

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

額面MDurationDV01
1億円4.411約 44,110 円/bp
10億円4.411約 441,100 円/bp
100億円4.411約 4,411,000 円/bp

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

DURATION関数とMDURATION関数の使い分け

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

使い分けフローチャート

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

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

比較表(再掲・拡張版)

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

よくある誤解

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

一次近似の限界とコンベクシティ

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

誤差の実例

5年債(MDuration=4.411)で利回り変化シナリオ別に予測誤差を見てみましょう。

利回り変化一次近似実際の変動誤差
+0.25%-1.10%-1.10%0.00%
+0.50%-2.21%-2.18%0.03%
+1.00%-4.41%-4.30%0.11%
+2.00%-8.82%-8.43%0.39%

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

コンベクシティによる補正

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

ΔP/P ≈ −MDuration × Δy + (1/2) × Convexity × (Δy)²

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

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

実務での活用シーン

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

シーン1: 金利リスクの定量化

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

評価損 = 100,000,000 × 4.411 × 0.005 = 2,205,500 円

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

シーン2: ポートフォリオの平均MDURATION

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

ポートフォリオ MDuration = Σ(各銘柄 MDuration × 各銘柄の市場価値) / Σ(市場価値)

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

=SUMPRODUCT(MDuration範囲, 市場価値範囲) / SUM(市場価値範囲)

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

シーン3: ALM(資産負債管理)

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

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

シーン4: ヘッジ比率の算出

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

ヘッジ比率 = (保有債券のMDuration × 市場価値) / (ヘッジ手段のMDuration × 市場価値)

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

ヘッジ額 = (4.411 × 100,000,000) / 8.5 ≈ 51,894,000 円

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

よくあるエラーと対処法

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

#NUM! エラー

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

  1. settlement >= maturity:受渡日が満期日と同じか後になっている
  • → 日付セルの値を確認、settlement < maturity に修正
  1. frequency が 1, 2, 4 以外:3、6、12などを指定
  • → frequency を 1(年1回)、2(半年)、4(四半期)に修正
  1. basis が 0-4 の範囲外:5や負の数を指定
  • → basis を 0〜4 に修正
  1. coupon が負:マイナスのクーポンレート
  • → 通常の債券では発生しない。逆さスプレッドを扱う場合は別関数を検討
  1. yld が負(古いExcel):マイナスの利回り
  • → 最近のExcelでは負利回りも受理される場合あり。バージョン確認

#VALUE! エラー

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

  1. settlement / maturity が日付として認識されない
  • → DATE関数を使うか、セル書式を「日付」に設定
  1. 数値型引数に文字列が入っている
  • → coupon、yld、frequency、basis に数値が入っているか確認

結果がおかしいケース(エラーにはならない)

  1. settlement と maturity の入れ違い:エラーの代わりに想定外の値が返ることがある
  • → 必ず受渡日 < 満期日 になっているか確認
  1. クーポンが0:ゼロクーポン債扱いになり、Macaulay ≈ Modified ≈ 残存年数 になる
  • → 想定通りなら問題なし
  1. 利回りが0:1+y/n=1 となり Modified=Macaulay と一致する
  • → 数式上の挙動として正しい

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

まとめ

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

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

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

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

関連記事

  • ExcelのDURATION関数の使い方 – マコーレー・デュレーションの考え方を解説
  • ExcelのPRICE関数の使い方 – 債券価格を計算する姉妹関数
  • ExcelのYIELD関数の使い方 – 最終利回りを計算する姉妹関数
  • ExcelのXIRR関数の使い方 – 不規則キャッシュフローの内部収益率
  • ExcelのPV関数の使い方 – 割引現在価値の基礎
タイトルとURLをコピーしました