ExcelのINTRATE関数は、割引債(ゼロクーポン債)の利回りを計算できる関数です。国債やコマーシャルペーパーの購入利回りを求めたいとき、手計算では日数計算が面倒ですよね。INTRATE関数を使えば、受渡日と満期日、投資額を入力するだけで年率換算の利回りがすぐにわかります。
この記事では、INTRATE関数の基本的な使い方から実務での活用例まで詳しく解説します。
INTRATE関数とは
読み方と概要
読み方は「インタレスト・レート関数」です。INTRATEは「Interest Rate(利率)」の略になります。
INTRATE関数は、全額投資された証券の利率を返す関数です。利息が支払われない割引債(額面より安く購入し、満期に額面で償還される債券)の利回り計算に使います。
対応バージョンはExcel 2007以降です。Excel 365・2024・2021・2019・2016で利用できますよ。
どんな場面で使うのか(割引債・国債・CP)
INTRATE関数は、次のような場面で活躍します。
- 割引債(ゼロクーポン債)の購入利回りを計算したいとき
- 国債の投資判断で年率リターンを比較したいとき
- コマーシャルペーパー(CP:企業が短期資金調達のために発行する約束手形)の利回りを確認したいとき
いずれも「投資額と償還額の差額」から利回りを求める計算です。手動で日数計算をするのは大変ですが、INTRATE関数なら一発で求められますよ。
INTRATE関数の構文と引数
5つの引数の意味と指定方法
INTRATE関数の基本構文は次のとおりです。
=INTRATE(受渡日, 満期日, 投資額, 償還価額, [基準])
引数は5つあり、最初の4つは必須です。5つ目の「基準」は省略できます。
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 受渡日 | 必須 | 証券の受渡日(購入日) |
| 満期日 | 必須 | 証券の満期日(償還日) |
| 投資額 | 必須 | 証券の購入金額 |
| 償還価額 | 必須 | 満期日に受け取る金額 |
| 基準 | 省略可 | 日数計算の方法(0〜4) |
日付の入力にはDATE関数を使うのがおすすめです。文字列で日付を入力すると、環境によって正しく認識されないことがあります。
なお、受渡日・満期日・基準の値は整数に切り捨てて計算されます。
内部の計算式は次のとおりです。
利率 = (償還価額 - 投資額) / 投資額 × (B / DIM)
- B: 年間日数(基準の設定による)
- DIM: 受渡日から満期日までの日数(基準の設定による)
基準(日数計算方法)の選び方
基準は0〜4の整数で指定します。省略すると「0」が適用されます。
| 基準 | 日数/年日数 | 主な用途 |
|---|---|---|
| 0(省略時) | 30日/360日(NASD方式) | 米国の社債など |
| 1 | 実日数/実日数 | 国際的な債券 |
| 2 | 実日数/360日 | 米国T-Bills(短期国債) |
| 3 | 実日数/365日 | 日本円TIBOR対応 |
| 4 | 30日/360日(欧州方式) | ユーロ債券 |
実務では、米国の短期国債(T-Bills)にはbasis=2、日本の金利計算にはbasis=3がよく使われます。基準の詳細な計算方法はYEARFRAC関数の解説記事も参考にしてみてください。
基本的な使い方(手計算との検証)
Microsoft公式の使用例で、基本的な使い方を確認しましょう。
| セル | 項目 | 値 |
|---|---|---|
| A2 | 受渡日 | 2008/2/15 |
| A3 | 満期日 | 2008/5/15 |
| A4 | 投資額 | 1,000,000 |
| A5 | 償還価額 | 1,014,420 |
| A6 | 基準 | 2 |
数式は次のように入力します。
=INTRATE(A2, A3, A4, A5, A6)
結果は 約5.77% になります。
手計算でも検証してみましょう。基準が2(実日数/360)なので、受渡日から満期日までの実際の日数を数えます。実日数計算では受渡日当日は含みません。
- 2月:14日(2/16〜2/29、うるう年)
- 3月:31日
- 4月:30日
- 5月:15日(5/1〜5/15)
- 合計:90日
計算式に当てはめると次のようになります。
利率 = (1,014,420 - 1,000,000) / 1,000,000 × (360 / 90)
= 14,420 / 1,000,000 × 4
= 0.05768
≒ 5.77%
INTRATE関数の結果と一致しましたね。このように「差額÷投資額」を年率に換算する仕組みです。
実務での使用例(3シナリオ)
10年国債の購入利回り
額面100万円の10年国債を82万円で購入したケースです。日本の金利慣行に合わせてbasis=3(実日数/365)を使います。
=INTRATE(DATE(2025,4,1), DATE(2035,4,1), 820000, 1000000, 3)
この数式の計算を確認しましょう。受渡日から満期日までの実日数は3,652日です。
利率 = (1,000,000 - 820,000) / 820,000 × (365 / 3652)
= 180,000 / 820,000 × 0.09994
≒ 0.02194
≒ 2.19%
10年保有で約2.19%の年率利回りだとわかりますよ。
コマーシャルペーパー(90日物CP)
企業が発行する90日物CPの利回りを計算します。短期の金融商品なので、basis=2(実日数/360)を使います。
=INTRATE(DATE(2025,7,1), DATE(2025,9,29), 995000, 1000000, 2)
手計算では次のようになります。受渡日から満期日までの実日数は90日です。
- 7月:30日(7/2〜7/31)
- 8月:31日
- 9月:29日(9/1〜9/29)
- 合計:90日
利率 = (1,000,000 - 995,000) / 995,000 × (360 / 90)
= 5,000 / 995,000 × 4
≒ 0.02010
≒ 2.01%
短期商品なので、わずかな価格差でも年率換算すると一定の利回りになる点がポイントです。
複数銘柄の利回り比較
INTRATE関数を使えば、複数の割引債を横並びで比較できます。セルに値を入力し、一括で計算してみましょう。
| A(受渡日) | B(満期日) | C(投資額) | D(償還価額) | E(基準) | F(利回り) | |
|---|---|---|---|---|---|---|
| 銘柄A | 2025/4/1 | 2025/7/1 | 998,000 | 1,000,000 | 2 | =INTRATE(A2,B2,C2,D2,E2) |
| 銘柄B | 2025/4/1 | 2025/10/1 | 995,000 | 1,000,000 | 2 | =INTRATE(A3,B3,C3,D3,E3) |
| 銘柄C | 2025/4/1 | 2026/4/1 | 985,000 | 1,000,000 | 3 | =INTRATE(A4,B4,C4,D4,E4) |
F列にINTRATE関数を入力すれば、各銘柄の利回りを一覧で比較できます。投資判断の材料として役立ててみてください。
YIELDDISC関数との使い分け
割引債の利回り計算には、YIELDDISC関数も使えます。INTRATE関数とYIELDDISC関数の違いは、第3引数の指定方法です。
| 項目 | INTRATE関数 | YIELDDISC関数 |
|---|---|---|
| 第3引数 | 投資額(実際の購入金額) | 額面あたりの価格(pr) |
| 向いている場面 | 実額ベースで計算したいとき | 価格クォートベースで計算したいとき |
| 入力例(100万円額面を99万で購入) | 投資額に990000を指定 | prに99を指定 |
たとえば、額面100万円の債券を99万円で購入した場合を考えます。INTRATE関数では投資額に「990000」と入力します。一方、YIELDDISC関数では額面あたりの価格「99」を入力します。
実際に手元の購入金額がわかっている場合はINTRATE関数が直感的です。債券の価格表示(額面あたりの値段)で計算したい場合はYIELDDISC関数を選びましょう。
よくあるエラーと対処法
#NUM!エラー
#NUM!エラーは、引数の値が計算できない範囲にあるときに発生します。次の条件に当てはまっていないか確認してください。
- 投資額が0以下になっている → 正の数を指定する
- 償還価額が0以下になっている → 正の数を指定する
- 受渡日が満期日以降になっている → 日付の前後関係を見直す
- 基準が0〜4の範囲外になっている → 0〜4の整数を指定する
特に日付の前後関係は見落としがちです。受渡日が満期日より後になっていないか確認してみてください。
#VALUE!エラー
#VALUE!エラーは、引数に無効な値が入っているときに発生します。
- 日付がExcelに認識されていない → DATE関数で入力し直す
- 数値のセルに文字列が混入している → セルの書式を確認する
日付を文字列で入力している場合に起きやすいエラーです。DATE関数やEDATE関数を使って日付を指定すると、このエラーを防げますよ。
まとめ
INTRATE関数は、割引債の利回りを年率で計算できる関数です。この記事のポイントをおさらいしましょう。
- 構文は
=INTRATE(受渡日, 満期日, 投資額, 償還価額, [基準]) - 「基準」引数で日数計算方法を選ぶ(省略時は30/360のNASD方式)
- 日本の金利計算にはbasis=3、米国T-Billsにはbasis=2が一般的
- 実額ベースの計算にはINTRATE、価格クォートベースにはYIELDDISCを使い分ける
- 日付はDATE関数で入力するとエラーを防げる
基準の選び方を間違えると計算結果が変わるので、対象の金融商品に合った値を選んでみてください。YEARFRAC関数の使い方や基準の詳細もあわせてご覧ください。
