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 | 一部の社債 |
| 4 | European 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のセルに次のように入力します。
| セル | 入力値 |
|---|---|
| A1 | 2026/1/1 |
| A2 | 2031/1/1 |
| A3 | 0.05 |
| A4 | 0.04 |
| A5 | 2 |
数式は次のように書きます。
=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 |
| B2 | 0.0025(+25bp) | |
| B3 | 0.005(+50bp) | |
| B4 | 0.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万円の価値変動が発生する計算ですね。
| 額面 | MDuration | DV01 |
|---|---|---|
| 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 を使うことが分かりますよね。マコーレー・デュレーションは「概念の説明や解説のため」に使うことが多く、実際の数値計算には修正デュレーションが選ばれます。
比較表(再掲・拡張版)
| 項目 | DURATION | MDURATION |
|---|---|---|
| 戻り値の意味 | キャッシュフロー加重平均期間 | 金利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! エラー
最も多いエラーパターンです。次の条件で発生します。
- settlement >= maturity:受渡日が満期日と同じか後になっている
- → 日付セルの値を確認、settlement < maturity に修正
- frequency が 1, 2, 4 以外:3、6、12などを指定
- → frequency を 1(年1回)、2(半年)、4(四半期)に修正
- basis が 0-4 の範囲外:5や負の数を指定
- → basis を 0〜4 に修正
- coupon が負:マイナスのクーポンレート
- → 通常の債券では発生しない。逆さスプレッドを扱う場合は別関数を検討
- yld が負(古いExcel):マイナスの利回り
- → 最近のExcelでは負利回りも受理される場合あり。バージョン確認
#VALUE! エラー
引数の型が不正な場合に発生します。
- settlement / maturity が日付として認識されない
- → DATE関数を使うか、セル書式を「日付」に設定
- 数値型引数に文字列が入っている
- → coupon、yld、frequency、basis に数値が入っているか確認
結果がおかしいケース(エラーにはならない)
- settlement と maturity の入れ違い:エラーの代わりに想定外の値が返ることがある
- → 必ず受渡日 < 満期日 になっているか確認
- クーポンが0:ゼロクーポン債扱いになり、Macaulay ≈ Modified ≈ 残存年数 になる
- → 想定通りなら問題なし
- 利回りが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関数の使い方 – 割引現在価値の基礎
