ExcelのDISC関数は、割引証券(額面より安く購入し、満期に額面で償還される債券)の割引率を計算できる関数です。国債やコマーシャルペーパーの割引率を求めたいとき、日数計算を含む手計算はかなり面倒ですよね。DISC関数を使えば、受渡日・満期日・購入価格・償還価額を入力するだけで年率ベースの割引率がすぐにわかります。
この記事では、DISC関数の基本的な使い方から実務での活用例まで詳しく解説します。
DISC関数とは
読み方と概要
読み方は「ディスカウント関数」です。DISCは「Discount(割引)」の略になります。
DISC関数は、証券に対する割引率を返す関数です。割引率とは、額面(償還価額)に対してどれだけ割り引かれた価格で取引されているかを年率で表したものです。利息が支払われない割引債(ゼロクーポン債)やコマーシャルペーパーの評価に使います。
対応バージョンはExcel 2007以降です。Excel 365・2024・2021・2019・2016で利用できますよ。なお、「分析ツール」アドインの追加は不要で、標準状態でそのまま使えます。
どんな場面で使うのか
DISC関数は、次のような場面で活躍します。
- 割引債(ゼロクーポン債)の割引率を計算したいとき
- 国庫短期証券(T-Bill)の割引率を確認したいとき
- コマーシャルペーパー(CP:企業が短期資金調達のために発行する約束手形)の割引率を比較したいとき
- 複数の割引証券の投資効率を横並びで評価したいとき
いずれも「額面と購入価格の差額」から割引率を年率換算する計算です。手動では日数の数え方を間違えやすいですが、DISC関数なら一発で求められますよ。
DISC関数の構文と引数
5つの引数の意味と指定方法
DISC関数の基本構文は次のとおりです。
=DISC(受渡日, 満期日, 現在価値, 償還価額, [基準])
引数は5つあり、最初の4つは必須です。5つ目の「基準」は省略できます。
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 受渡日 | 必須 | 証券の受渡日(購入日) |
| 満期日 | 必須 | 証券の満期日(償還日) |
| 現在価値 | 必須 | 額面100ドルあたりの証券の現在価格 |
| 償還価額 | 必須 | 額面100ドルあたりの証券の償還額 |
| 基準 | 省略可 | 日数計算の方法(0〜4) |
日付の入力にはDATE関数を使うのがおすすめです。文字列で日付を入力すると、環境によって正しく認識されないことがあります。
なお、受渡日・満期日・基準の値は整数に切り捨てて計算されます。
内部の計算式は次のとおりです。
割引率 = (償還価額 - 現在価値) / 償還価額 × (B / DSM)
- B: 年間日数(基準の設定による)
- DSM: 受渡日から満期日までの日数(基準の設定による)
INTRATE関数との違いに注目してください。INTRATE関数は「投資額を分母」にして利回りを計算しますが、DISC関数は「償還価額を分母」にして割引率を計算します。この違いが、同じ証券でもDISC関数とINTRATE関数で異なる値が返る理由です。
基準(日数計算方法)の選び方
基準は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 | 受渡日 | 2007/1/25 |
| A3 | 満期日 | 2007/6/15 |
| A4 | 現在価値 | 97.975 |
| A5 | 償還価額 | 100 |
| A6 | 基準 | 1 |
数式は次のように入力します。
=DISC(A2, A3, A4, A5, A6)
結果は 約5.25% になります。
手計算でも検証してみましょう。基準が1(実日数/実日数)なので、受渡日から満期日までの実際の日数を数えます。
- 1月:6日(1/26〜1/31)
- 2月:28日
- 3月:31日
- 4月:30日
- 5月:31日
- 6月:15日(6/1〜6/15)
- 合計:141日
2007年はうるう年ではないので、年間日数は365日です。計算式に当てはめると次のようになります。
割引率 = (100 - 97.975) / 100 × (365 / 141)
= 2.025 / 100 × 2.58865
= 0.05242
≒ 5.24%
DISC関数の結果とほぼ一致しましたね。このように「額面との差額÷額面」を年率に換算する仕組みです。
実務での使用例(3シナリオ)
国庫短期証券(T-Bill)の割引率
額面100円の国庫短期証券を99.5円で購入したケースです。日本の短期国債は実日数/365で計算するのが一般的なので、basis=3を使います。
=DISC(DATE(2026,4,1), DATE(2026,7,1), 99.5, 100, 3)
手計算で確認しましょう。受渡日から満期日までの実日数は91日です。
割引率 = (100 - 99.5) / 100 × (365 / 91)
= 0.5 / 100 × 4.01099
= 0.02005
≒ 2.01%
年率約2.01%の割引率だとわかります。短期証券は額面との差額が小さいですが、年率換算すると一定の水準になるのがポイントです。
コマーシャルペーパー(90日物CP)
企業が発行する90日物CPの割引率を計算します。米国の短期金融商品として計算するケースでは、basis=2(実日数/360)を使います。
=DISC(DATE(2026,7,1), DATE(2026,9,29), 98.75, 100, 2)
手計算では次のようになります。受渡日から満期日までの実日数は90日です。
割引率 = (100 - 98.75) / 100 × (360 / 90)
= 1.25 / 100 × 4
= 0.05
= 5.00%
割引率はちょうど5.00%になりました。CPの割引率は短期金利の目安にもなるので、把握しておくと投資判断に役立ちますよ。
複数銘柄の割引率を一括比較
DISC関数を使えば、複数の割引証券を横並びで比較できます。セルに値を入力し、一括で計算してみましょう。
| A(受渡日) | B(満期日) | C(現在価値) | D(償還価額) | E(基準) | F(割引率) | |
|---|---|---|---|---|---|---|
| 銘柄A | 2026/4/1 | 2026/7/1 | 99.5 | 100 | 3 | =DISC(A2,B2,C2,D2,E2) |
| 銘柄B | 2026/4/1 | 2026/10/1 | 98.0 | 100 | 2 | =DISC(A3,B3,C3,D3,E3) |
| 銘柄C | 2026/4/1 | 2027/4/1 | 95.5 | 100 | 3 | =DISC(A4,B4,C4,D4,E4) |
F列にDISC関数を入力すれば、各銘柄の割引率を一覧で比較できます。残存期間の異なる銘柄を年率ベースで横並び評価したいときに便利です。
なお、割引率を比較するだけでなく、投資期間に応じた実質的な利回り(RATE関数)を算出すると、より実践的な投資判断ができますよ。
似た関数との使い分けとよくあるエラー
PRICEDISC関数・INTRATE関数との使い分け
割引証券を扱う財務関数は複数あります。場面に応じて使い分けましょう。
| 項目 | DISC関数 | PRICEDISC関数 | INTRATE関数 |
|---|---|---|---|
| 求めるもの | 割引率 | 割引証券の価格 | 利回り(利率) |
| 計算の分母 | 償還価額 | — | 投資額 |
| 向いている場面 | 割引率を知りたいとき | 割引率から逆算して価格を求めたいとき | 投資額に対する収益率を知りたいとき |
DISC関数とPRICEDISC関数は逆関数の関係にあります。DISC関数で求めた割引率をPRICEDISC関数に入力すると、元の価格が復元されます。
一方、DISC関数とINTRATE関数は分母が異なります。DISC関数は「額面に対する値引き幅」、INTRATE関数は「投資額に対する収益」を求めるイメージです。同じ証券でも計算結果が異なるので、目的に合った関数を選んでくださいね。
また、利付債(クーポン付き債券)の経過利息を計算したい場合はACCRINT関数、満期時に一括で利息が支払われるタイプならACCRINTM関数が便利です。DISC関数は「割引債」専用なので、利付債の計算にはこれらの関数を使い分けてください。
よくあるエラーと対処法
DISC関数でエラーが出たときは、以下のポイントを確認してください。
#NUM!エラー は、引数の値が計算できない範囲にあるときに発生します。
- 現在価値が0以下になっている → 正の数を指定する
- 償還価額が0以下になっている → 正の数を指定する
- 受渡日が満期日以降になっている → 日付の前後関係を見直す
- 基準が0〜4の範囲外になっている → 0〜4の整数を指定する
#VALUE!エラー は、引数に無効な値が入っているときに発生します。
- 日付がExcelに認識されていない → DATE関数で入力し直す
- 数値のセルに文字列が混入している → セルの書式を確認する
日付を文字列で入力している場合に起きやすいエラーです。DATE関数やEDATE関数を使って日付を指定すると、このエラーを防げますよ。
まとめ
DISC関数は、割引証券の割引率を年率で計算できる関数です。この記事のポイントをおさらいしましょう。
- 構文は
=DISC(受渡日, 満期日, 現在価値, 償還価額, [基準]) - 「基準」引数で日数計算方法を選ぶ(省略時は30/360のNASD方式)
- 日本の計算にはbasis=3、米国T-Billsにはbasis=2が一般的
- DISC関数は「額面に対する割引率」、INTRATE関数は「投資額に対する利回り」を求める
- PRICEDISC関数はDISC関数の逆関数で、割引率から価格を逆算できる
- 日付はDATE関数で入力するとエラーを防げる
基準の選び方を間違えると計算結果が変わるので、対象の金融商品に合った値を選んでみてください。YEARFRAC関数の使い方や、INTRATE関数との使い分けもあわせてご覧ください。
Excelの財務関数をもっと活用したい方は、以下の記事もチェックしてみてくださいね。
- ACCRINT関数 — 利付債の経過利息を計算
- ACCRINTM関数 — 満期一括払い証券の経過利息を計算
- EFFECT関数 — 名目年利率から実効年利率を計算
- PDURATION関数 — 投資が目標額に達するまでの期間を計算
- RATE関数 — ローンや投資の利率を逆算
