ExcelのYIELDMAT関数の使い方|満期利払い証券の利回りを計算する
「満期にまとめて利息を受け取るタイプの証券、年利回りはいくらになるんだろう?」と思ったことはありませんか。NCD(譲渡性預金)やCP(コマーシャルペーパー)、短期の利付社債などは満期日に元本と利息を一括で受け取る商品で、普通の YIELD 関数や YIELDDISC 関数では正しく利回りを計算できません。
ExcelのYIELDMAT関数を使えば、満期一括利払いタイプの証券の年利回りを数式1つで求められます。PRICEMAT関数とは「価格⇔利回り」の逆関数の関係にあり、双方向で検証できる点も実務で便利ですよ。
この記事では、ExcelのYIELDMAT関数の構文と6つの引数、実数値で確認できる計算例、PRICEMATとの双方向検証、YIELD・YIELDDISCとの使い分けを実務目線で丁寧に解説します。
ExcelのYIELDMAT関数とは?
ExcelのYIELDMAT関数は、満期に元本と利息をまとめて支払う証券(満期利払い証券)の年利回りを返す財務関数です。「YIELD」+「Maturity(満期)」が名前の由来で、英語では「Yield at Maturity payment」を意味します。
対象となるのは、利息を毎月や半年ごとに支払うのではなく、満期日にまとめて元本と利息を一括払いする証券です。具体的には次のような商品が該当します。
- NCD(譲渡性預金 / Negotiable Certificate of Deposit)
- CP(コマーシャルペーパー)の利付タイプ
- 短期社債(満期一括償還型)
- 利付一括償還型の地方債
普通の利付債(半年や年1回クーポンを払う証券)には YIELD関数、利息なし・額面割れで発行される割引証券には YIELDDISC関数 を使います。「満期に一括で利息」タイプはYIELDMAT関数の出番ですよ。
YIELD・YIELDDISC・YIELDMAT の使い分け
3つの利回り関数の違いを表で整理しておきましょう。
| 関数 | 対象証券 | 利息支払方法 | 引数の特徴 |
|---|---|---|---|
| YIELD関数 | 定期利払い債券(普通の社債・国債) | 半年・年1・四半期に分割支払い | frequency と redemption が必要 |
| YIELDDISC関数 | 割引証券(CP・TB・割引手形) | 利息なし(額面割れ発行) | rate も issue も不要 |
| YIELDMAT関数 | 満期利払い証券(NCD・短期利付社債等) | 満期に元本+利息一括 | issue・rate・pr が必須 |
関数を選ぶ判断フロー
迷ったら、次の2つの質問で判断してください。
- クーポン(利息)はあるか?
- ない(利息なし・割引発行) → YIELDDISC関数
- ある → 次の質問へ
- 利息は定期的に支払われるか?
- 半年や年1回など定期的 → YIELD関数
- 満期に一括 → YIELDMAT関数
このフローに沿って進めば、関数選びで迷うことはなくなりますよね。
ExcelのYIELDMAT関数の構文と6つの引数
YIELDMAT関数の基本構文は次の通りです。引数は6つで、最後のbasisだけ省略可能です。
=YIELDMAT(settlement, maturity, issue, rate, pr, [basis])
各引数の意味と入れ方を表で整理します。
| 引数 | 必須 | 内容 | 入れ方の例 |
|---|---|---|---|
| settlement | 必須 | 受渡日(決済日 / 証券を購入する日) | DATE(2025,5,30) |
| maturity | 必須 | 満期日(償還日) | DATE(2026,2,15) |
| issue | 必須 | 発行日 | DATE(2025,2,15) |
| rate | 必須 | 額面利率(年率・小数で指定) | 4% または 0.04 |
| pr | 必須 | 額面100あたりの市場価格(クリーン価格) | 100.32 |
| basis | 任意 | 日数計算基準 | 0〜4(既定は0) |
時系列のイメージ
3つの日付(発行日・受渡日・満期日)の順序は必ず次のようになります。
発行日(issue) < 受渡日(settlement) < 満期日(maturity)
この順序を守らないと #NUM! エラーになります。受渡日は実際にお金と証券を交換する日で、約定日(取引が成立した日)とは別の概念です。発行日は証券そのものが市場に出た日で、利息計算の起点になります。
rate と pr の違い
- rate(額面利率): 証券に印字された年利率。発行体が満期に支払う利息の計算に使う固定値
- pr(市場価格): 受渡日時点で市場で取引されている額面100あたりの価格
利率と利回りが同じなら市場価格はちょうど100、市場金利が利率より高くなれば pr は100を下回ります。YIELDMATは「この市場価格 pr を実現する年利回りはいくつか?」を計算する関数です。
basis引数の選び方
basis引数は日数の数え方を指定します。実務では次のように選びましょう。
| 値 | 名称 | 主な用途 |
|---|---|---|
| 0(既定) | US (NASD) 30/360 | 米国社債のデフォルト |
| 1 | Actual/Actual | 米国財務省証券 |
| 2 | Actual/360 | 米国短期金融商品(CP・NCD) |
| 3 | Actual/365 | 日本国内債券 |
| 4 | European 30/360 | 欧州社債 |
日本国内のNCDや利付一括償還債なら原則 basis=3、米国の短期社債やCPなら basis=2 を使うのが定石です。発行体が公表している「利息計算方法」に合わせて選んでくださいね。
YIELDMAT関数の基本的な使い方
まずはシンプルなケースから計算してみましょう。
例1: 1年満期・利率3%・市場価格100.50(basis=0)
最もわかりやすい設定で、直感的な検算もできる例です。
- 発行日 2025/1/1、受渡日 2025/1/1(発行日と同日)
- 満期日 2026/1/1
- 額面利率 3%、市場価格 100.50
- basis = 0(30/360)
セルに次のように入力します。
=YIELDMAT(DATE(2025,1,1), DATE(2026,1,1), DATE(2025,1,1), 0.03, 100.50, 0)
結果は 2.4876%(0.024876) となります。
直感的に検証してみましょう。1年後に元本100+利息3=合計103を受け取り、現在100.50で買うとすると、103 ÷ 100.50 − 1 = 2.4876% ですよね。YIELDMAT関数の戻り値とぴったり一致します。
引数を日付セル参照にする書き方
実務では日付や利率をセルに入力しておき、YIELDMATでセル参照する形が便利です。
| セル | 内容 | 値 |
|---|---|---|
| B2 | 受渡日 | 2025/1/1 |
| B3 | 満期日 | 2026/1/1 |
| B4 | 発行日 | 2025/1/1 |
| B5 | 額面利率 | 3% |
| B6 | 市場価格 | 100.50 |
| B7 | basis | 0 |
数式は次の通りです。
=YIELDMAT(B2, B3, B4, B5, B6, B7)
これなら市場価格が変動したときも、B6の値を書き換えるだけで利回りが瞬時に更新されます。感度分析や比較表作成にも向いている書き方です。
実務での使い方|中途売買と商品別サンプル
実務でYIELDMAT関数を使うのは、既に発行された満期利払い証券を中途で購入するシーンや、商品ごとの利回りを比較するシーンが多いです。代表的な4つのサンプルを見ていきましょう。
サンプル1: 短期社債を中途で購入(basis=0)
PRICEMAT記事と対応するシナリオで、価格⇔利回りを双方向で検証できます。
- 発行日 2025/2/15
- 受渡日 2025/5/30(発行から約3か月半経過)
- 満期日 2026/2/15
- 額面利率 4%(満期に一括支払い)
- 市場価格 100.32
- basis = 0
=YIELDMAT(DATE(2025,5,30), DATE(2026,2,15), DATE(2025,2,15), 0.04, 100.32, 0)
結果は 3.4963% です。
利率4%・市場価格100.32なので、価格がわずかに100を上回る分、利回りは利率より少し低くなります。これが直感とも合いますよね。
サンプル2: NCD(譲渡性預金)90日もの(basis=2)
NCDは銀行が発行する譲渡可能な定期預金証書で、米国市場ではActual/360(basis=2)が標準です。
- 発行日 2025/4/1
- 受渡日 2025/4/15(発行から2週間後に中途購入)
- 満期日 2025/6/30
- 額面利率 2%
- 市場価格 99.95
- basis = 2
=YIELDMAT(DATE(2025,4,15), DATE(2025,6,30), DATE(2025,4,1), 0.02, 99.95, 2)
結果は 2.2362% です。
額面利率2%より少し高い利回りになっているのは、市場価格が99.95(額面割れ)で買えるためです。残存75日の短期商品でも、年率換算した利回りで他商品と比較できる点がYIELDMATの強みです。
サンプル3: 日本国内の短期利付社債(basis=3)
日本国内債券はActual/365(basis=3)が一般的です。
- 発行日 2025/3/1
- 受渡日 2025/4/10
- 満期日 2025/9/1
- 額面利率 1.5%
- 市場価格 99.80
- basis = 3
=YIELDMAT(DATE(2025,4,10), DATE(2025,9,1), DATE(2025,3,1), 0.015, 99.80, 3)
結果は 2.0077% です。
国内市場で同タイプの利付一括償還型社債を比較する場合、すべてbasis=3でそろえれば異なる残存期間でも公平に利回りを比べられます。
サンプル4: 米国CP(コマーシャルペーパー)270日もの(basis=2)
利付タイプのCPは満期に元本と利息を一括で受け取ります。米国基準のbasis=2を使います。
- 発行日 2025/2/1
- 受渡日 2025/2/1(発行と同時購入)
- 満期日 2025/11/1
- 額面利率 4.5%
- 市場価格 99.50
- basis = 2
=YIELDMAT(DATE(2025,2,1), DATE(2025,11,1), DATE(2025,2,1), 0.045, 99.50, 2)
結果は 5.1853% です。
利率4.5%に対して利回りが5.18%まで跳ね上がっているのは、(1) 市場価格99.50の割安発行と、(2) basis=2(Actual/360)による年換算(実日数270日 ÷ 360日)の組み合わせによるものです。商品ごとに適切なbasisを選ぶことで、市場慣行に沿った正しい利回りが得られます。
YIELDMAT関数の計算式
中身を理解しておくと、想定外の値が出たときの原因分析がしやすくなります。
内部計算式
YIELDMATの内部計算式は次の通りです。
1 + (rate × DIM/B)
YIELDMAT = ────────────────────────────── − 1 × B/DSM
P/100 + (A/B × rate)
各記号の意味は次の通りです。
- DIM(Days in Maturity): 発行日から満期日までの日数
- A(Accrued days): 発行日から受渡日までの経過日数
- DSM(Days from Settlement to Maturity): 受渡日から満期日までの残存日数
- B: basis引数で決まる1年あたりの基準日数
計算式の意味
- 分子
1 + rate × DIM/B: 発行から満期までに証券が積み上げる元本+利息の合計(額面1あたり) - 分母
P/100 + A/B × rate: 受渡日時点で投資家が支払う実質コスト(市場価格+経過利子) - 分子÷分母から1を引くと残存期間DSM/Bの総リターン
- 最後に
B/DSMをかけることで年率に換算
つまり「満期に受け取る金額」÷「受渡日に払うコスト」をベースに、年率換算しているシンプルなロジックです。
PRICEMATとの双方向検証
YIELDMAT関数とPRICEMAT関数は「コインの裏表」の関係にあります。同じ計算式の入出力を逆にしただけで、一方の出力をもう一方に入れると元の値に戻ります。
構文の比較
=PRICEMAT(settlement, maturity, issue, rate, yld, [basis]) → 価格を返す
=YIELDMAT(settlement, maturity, issue, rate, pr, [basis]) → 利回りを返す
引数の順序は同じで、第5引数だけが yld(利回り) か pr(価格) かの違いです。
双方向検証の例
サンプル1(短期社債を中途購入)の例で双方向の整合性を確認してみましょう。
ステップ1: PRICEMATで価格を計算
=PRICEMAT(DATE(2025,5,30), DATE(2026,2,15), DATE(2025,2,15), 0.04, 0.034963, 0)
→ 100.32
利回り 3.4963% を入力すると、価格 100.32 が返ります。
ステップ2: YIELDMATで利回りを逆算
=YIELDMAT(DATE(2025,5,30), DATE(2026,2,15), DATE(2025,2,15), 0.04, 100.32, 0)
→ 0.034963(3.4963%)
価格 100.32 を入力すると、元の利回り 3.4963% が返ります。
このように PRICEMAT関数 と組み合わせることで、価格と利回りのどちらからも検証できる便利な関数ペアになっています。実務では「相手から提示された価格を利回りに変換」「目標利回りから理論価格を逆算」と双方向に使い分けます。
よくあるエラーと対処法
YIELDMAT関数でよく遭遇するエラーと対処法をまとめます。
#NUM! エラー
引数の値や順序が不正なときに出ます。次のいずれかに当てはまっていないか確認してください。
settlement >= maturity(受渡日が満期日以降)→ 日付の前後関係を見直すissue >= settlement(発行日が受渡日以降)→ 発行日が一番過去になっているか確認するrate < 0(額面利率がマイナス)→ 0以上の値にするpr <= 0(市場価格が0以下)→ 正の値にするbasis < 0またはbasis > 4→ 0〜4の範囲に修正する
#VALUE! エラー
日付引数が日付として認識できない、または数値引数が数値として読めないときに出ます。
- 日付は必ず DATE 関数で指定する(DATE関数は年月日からシリアル値を作る関数)
- 文字列で「2025/5/30」と入力すると環境によってエラーになるので、シリアル値で渡すのが安全
- 数値引数(rate, pr, basis)にスペースや全角数字が混入していないか確認する
#NAME? エラー
関数名のスペルミスで発生します。「YEILDMAT」「YIELDMA」など綴りを間違えていないか確認しましょう。
計算結果が異常になる場合(エラーは出ないが値が変)
rate を 4 のような整数で入力すると、Excelは「400%」と解釈します。
- 誤:
=YIELDMAT(...,4,100.32,0)→ 利率400%扱いで結果がメチャクチャに - 正:
=YIELDMAT(...,0.04,100.32,0)または=YIELDMAT(...,4%,100.32,0)
セル書式を「パーセンテージ」にして 4% と直接入力するのがおすすめです。価格 pr も 100.32 と100基準で渡すこと(1.0032 と1基準で渡すと結果が極端に小さくなります)。
basis引数の混在に注意
社内システムが basis=0、市場慣行が basis=3 のように混在すると、利回り照合で誤差が出ます。発行体の公表情報や社内基準に合わせて統一しましょう。
ACCRINTM関数との組み合わせ
YIELDMATは利回り計算に特化した関数ですが、実務ではACCRINTM関数(経過利子の計算)と組み合わせると、満期利払い証券の評価が一気通貫で完結します。
- YIELDMAT: 市場価格から利回りを逆算
- PRICEMAT: 利回りから理論価格を計算
- ACCRINTM: 発行日から指定日までの経過利子を計算
PRICEMATの戻り値は経過利子を含まないクリーン価格、ACCRINTMで計算した経過利子を加えるとダーティ価格(実際の取引額)になります。YIELDMATで利回りを把握しつつ、PRICEMAT+ACCRINTMで取引金額を確定する流れが定番です。
金利感応度(リスク)を測りたいときは DURATION関数や MDURATION関数と組み合わせて、ポートフォリオ全体のリスク管理にも展開できますよ。
まとめ
ExcelのYIELDMAT関数は、満期に元本と利息を一括で受け取る証券の年利回りを計算する財務関数です。本記事のポイントを振り返ります。
- 対象: NCD・利付CP・短期利付社債・利付一括償還型地方債など「満期一括利息支払い」の証券
- 構文:
=YIELDMAT(settlement, maturity, issue, rate, pr, [basis]) - 時系列: 発行日 < 受渡日 < 満期日 の順序を必ず守る
- 戻り値: 年利回り(小数)。半年利払いでも年率換算済み
- 使い分け: 定期利払い→YIELD、割引債→YIELDDISC、満期一括利払い→YIELDMAT
- basis: 米国短期金融商品=2、日本国内債券=3、米国社債=0 が実務の定石
- PRICEMATとの関係: コインの裏表。価格と利回りで双方向に検証できる
- エラー対処:
#NUM!は日付順序や引数範囲、#VALUE!は日付・数値の型を見直す
満期一括利払い証券のシリーズでは、価格計算には PRICEMAT関数、経過利子の計算には ACCRINTM関数 を組み合わせて使ってみてください。利回り計算3兄弟(YIELD・YIELDDISC・YIELDMAT)の使い分けが身につけば、債券評価の実務がぐっと楽になりますよ。
