【Excel】YIELDMAT関数の使い方|満期一括払い債券の利回りを計算する

スポンサーリンク

「満期時に元本と利息をまとめて受け取るタイプの債券、利回りはどう計算する?」と聞かれて、いつもの YIELD関数で計算しようとして「あれ、利払い回数の引数が要らない?」と気付くことはありませんか。そんなときに使うのが YIELDMAT関数 です。

YIELDMAT は、定期的なクーポン支払いがなく、満期時に利息と元本がまとめて支払われる証券(満期利払い証券)専用の利回り計算関数です。短期割引国債やCD(譲渡性預金)に近い性質の商品で活躍します。

この記事では、YIELDMAT関数の構文から、満期利払い証券の仕組み、Microsoft公式サンプルを使った計算例、basis(日数計算)の選び方、PRICEMAT との関係、よくあるエラーと対処までをまとめて整理します。

ExcelのYIELDMAT関数とは?

ExcelのYIELDMAT関数(読み方:イールド・マット)は、満期時に利息が支払われる証券の年間利回りを返す財務関数です。関数名は「Yield at Maturity(満期時利払い証券の利回り)」の略で、「満期にまとめて利息が払われるタイプの債券」専用に設計されています。

通常の固定利付債は、半年なり1年なりの周期でクーポン(利息)が支払われ、満期時には元本のみが償還されます。一方で、満期利払い証券では途中の利払いがなく、満期日に 元本+経過利息の合計 をまとめて受け取る形になります。短期国債やCD(譲渡性預金)、一部の短期社債などがこのタイプです。

このような証券では「年に何回利息が支払われるか」という frequency 引数が不要になるため、YIELD関数(定期利払い債用)よりも引数が少なくシンプルです。代わりに「発行日から満期までの全期間でいくらの利息が付くか」を rate と日数から計算する形になります。

NOTE

YIELDMAT関数は Excel 2003 以降で利用できます。Microsoft 365、Excel for Mac、Google スプレッドシート、さらに Power BI の DAX 言語でも同名で使えます。日本では「満期一括利払い債」「アキュムレーティング債」と呼ばれることもあります。

YIELDMAT関数の書き方(構文と引数)

YIELDMAT関数の構文は次のとおりです。

=YIELDMAT(settlement, maturity, issue, rate, pr, [basis])

引数は6つ(うち basis は省略可)と、財務関数のなかでは比較的シンプルな部類です。

引数必須説明
settlement必須受渡日(買い手に証券が渡される日。発行日より後)
maturity必須満期日(元本と利息がまとめて支払われる日)
issue必須発行日
rate必須発行時点の年利率(小数。6.25%なら 0.0625)
pr必須額面100あたりの債券価格
basis省略可日数計算方法(0〜4。省略時は 0=US 30/360)

戻り値は年間利回りを小数で返します。0.061 が返れば、年間利回りは 6.10% です。表示形式を「パーセンテージ(小数2桁)」に設定すると見やすくなります。

TIP

YIELDMATでは frequency 引数がない代わりに、発行日(issue)が利息計算の基準日になります。発行日と受渡日が大きく離れている場合、すでに経過利息が乗っている価格で売買されているケースが多いので、価格(pr)の入力時にも注意しましょう。

basis引数(日数計算方法)の選び方

basis は1年・1か月の日数の数え方を指定します。証券の発行体や市場の慣行に合わせて選びます。

basis日数計算方法主な用途
0(または省略)30/360(米国式)米国の社債、地方債
1Actual/Actual(実日数/実日数)米国国債、政府債
2Actual/360CD、短期金融商品、米ドル建て短期商品
3Actual/365円建て短期商品、英国短期債
430/360(欧州式)欧州ユーロ債

満期一括払いの短期商品では、basis=2(Actual/360)や basis=3(Actual/365)が使われることが多いです。目論見書や約定書に「日数計算方式」が必ず記載されているので、そこを確認してから入力しましょう。範囲外の値(5以上や負数)を指定すると #NUM! エラー になります。

実用例:Microsoft公式サンプルで利回りを計算する

Microsoft 公式ドキュメントの YIELDMAT 関数サンプルを使って、実際に計算してみます。次のような短期社債を想定します。

項目
受渡日(settlement)2008/3/15
満期日(maturity)2008/11/3
発行日(issue)2007/11/8
年利率(rate)6.25%(0.0625)
債券価格(pr)100.0123
日数計算(basis)0(US 30/360)

シートのセル B2:B7 に上から順にこれらの値を入れたとします。利回りを求める数式は次のようになります。

=YIELDMAT(B2, B3, B4, B5, B6, B7)

このとき、戻り値はおよそ 0.0610、つまり 年間利回り 6.10% が返ってきます。

クーポンレート(rate)は 6.25% ですが、債券価格が額面100よりほんの少し高い 100.0123 になっていて、すでに経過利息分が価格に乗っている状態です。そのぶん年間利回りは表面金利よりやや低めの 6.10% になる、というイメージです。

NOTE

発行日(2007/11/8)から満期日(2008/11/3)までほぼ1年弱の短期商品で、その途中で受渡し(2008/3/15)が行われたケースを想定したサンプルです。実務では、CDの中途売買や満期一括払いの短期社債を扱うときにこの形になります。

日付順制約と注意点

YIELDMATでも、引数の日付には順序の制約があります。次の関係を満たす必要があります。

maturity > settlement > issue

つまり「発行日 → 受渡日 → 満期日」の順に時系列で並んでいることが必要です。一つでも順序が崩れると即 #NUM! エラーになります。

日付意味順序
issue(発行日)証券が発行された日一番古い
settlement(受渡日)投資家に証券が引き渡された日2番目
maturity(満期日)元本と利息がまとめて支払われる日一番未来

WARNING

短期商品では発行日と満期日が同じ年内に収まることが多く、日付の入力ミスに気付きにくいことがあります。3つの日付セルに「いつの何日か」をコメントで残しておくと、後から見直したときに混乱を防げます。

よくあるエラーと対処法

エラー原因対処法
#NUM!日付順違反(maturity > settlement > issue を満たさない)3つの日付の前後関係を見直す
#NUM!rate < 0、pr ≤ 0利率と価格は正の値を指定
#NUM!basis が 0 〜 4 の範囲外0〜4 の整数(または省略)を指定
#VALUE!引数の日付が文字列のままDATE関数で日付を作るか、セルの書式を「日付」にする
#VALUE!rate や pr が文字列・空欄数値を入力、または数値型のセルを参照

特に多いのが、日付を「2008/3/15」のような 文字列 のまま渡してしまうケースです。セル書式が「文字列」になっていると見た目が日付でも内部的には文字列扱いとなり、#VALUE! エラーが出ます。=DATE(2008,3,15) の形で日付値を作るか、書式設定で「日付」に変えてから入力するのが確実です。

YIELDMAT関数と関連関数の使い分け

満期利払い証券・割引証券・定期利払い債、それぞれに対応した利回り関数があります。証券のタイプに応じて使い分けます。

関数対象証券何を返す
YIELDMAT満期時に利息一括払いの証券年間利回り
PRICEMAT満期時に利息一括払いの証券額面100あたりの価格
YIELD通常の定期利払い債年間利回り
PRICE通常の定期利払い債額面100あたりの価格
YIELDDISC利息のない割引証券(ゼロクーポン)年間利回り
PRICEDISC利息のない割引証券(ゼロクーポン)額面100あたりの価格

使い分けの判断フロー

  1. 利息はそもそも付くか?
  • 付かない(ゼロクーポン・割引債) → YIELDDISC / PRICEDISC
  1. 利息は 満期に一括 で付くか?
  • はい → YIELDMAT / PRICEMAT
  1. それ以外(定期的にクーポンが付く) → YIELD / PRICE

「満期に一括で付く」のがYIELDMAT、「そもそも利息が付かず差額で儲ける」のがYIELDDISC、と区別しておきましょう。短期国債(T-Bill)は割引で発行されるため YIELDDISC の対象、CDのように満期に元本と利息をまとめて受け取る商品は YIELDMAT の対象、というイメージです。

PRICEMATとの関係(価格と利回りの逆関数ペア)

YIELDMAT のちょうど逆の働きをするのが PRICEMAT関数 です。価格を入力して利回りを返すのが YIELDMAT、利回りを入力して価格を返すのが PRICEMAT、という関係です。

入力出力使う関数
債券価格(pr)年間利回りYIELDMAT
年間利回り(yld)額面100あたり価格PRICEMAT

PRICEMAT の構文も非常に似ています。

=PRICEMAT(settlement, maturity, issue, rate, yld, [basis])

YIELDMAT の戻り値(利回り)を PRICEMAT の yld に渡せば、ほぼ元の価格に戻ります(丸め誤差の範囲で)。逆方向の検算をしたいときに便利な使い方です。

たとえば、上のサンプルで YIELDMAT が 6.10% を返したとします。次の式で価格を逆算すると、ほぼ 100.0123 に近い値が返るはずです。

=PRICEMAT(B2, B3, B4, B5, 0.0610, B7)

実務では、市場利回りから理論価格を出して入札価格を決める際に PRICEMAT、買付価格から実効利回りを出して投資判断する際に YIELDMAT、という使い分けになります。

まとめ

ExcelのYIELDMAT関数は、満期時に利息がまとめて支払われる証券の年間利回りを計算できる関数です。要点を整理すると次のとおりです。

  • 構文: =YIELDMAT(settlement, maturity, issue, rate, pr, [basis])
  • 対象: 満期時に元本と利息を一括支払いする証券(CDや満期一括払い社債など)
  • frequency引数なし: 通常のYIELD関数と違い、利払い回数を指定しない
  • 日付順制約: maturity > settlement > issue を満たすこと
  • basis: 0〜4。短期商品では 2(Actual/360)や 3(Actual/365)も多用

通常の定期クーポン債なら YIELD関数、利息のない割引債なら YIELDDISC関数、満期一括払いなら YIELDMAT関数、と用途別に関数を使い分けましょう。日付順違反と書式違いによる #VALUE! / #NUM! エラーが最も多いつまずきポイントなので、入力前に必ず3つの日付の順序とセル書式を確認しておくと安全です。

価格から利回りを求めるのが YIELDMAT、利回りから価格を求めるのが PRICEMAT、というペア関係も押さえておくと、債券の投資判断や入札価格設定の場面で柔軟に分析を進められるようになります。

タイトルとURLをコピーしました