「割引率3%の短期国債を買うとき、額面100に対していくら払えばいいのか?」と聞かれて、サッと答えられると経理・財務の現場ではかなり頼りにされますよね。割引発行されるゼロクーポン債や短期国債では、割引率から逆算した発行価格をスプレッドシートのPRICEDISC関数で簡単に計算できますよ。
この記事では、スプレッドシートのPRICEDISC関数の使い方を、構文から実務の活用例・よくあるエラーの対処まで同僚に教える感覚で解説します。PRICE関数・PRICEMAT関数との使い分けや、DISC関数との関係もあわせて整理しているので、割引債・短期国債・商業手形の価格チェックに活用してください。
スプレッドシートのPRICEDISC関数とは?
スプレッドシートのPRICEDISC関数は、割引発行された有価証券について、割引率から逆算して額面100あたりの価格を計算する財務関数です。
「割引発行の証券」とは、額面より安い価格で発行され、満期日に額面金額をそのまま受け取るタイプの金融商品のことですよ。割引債(ゼロクーポン債)や短期国債、商業手形がこれにあたります。
PRICEDISC関数が返すのは「額面100に対する発行価格」です。割引率(年率)と期間を入力すると、そこから逆算して「額面100の証券をいくらで買えばよいか」を計算できますよ。
PRICEDISC関数の構文と引数
PRICEDISC関数の構文は次のとおりです。
=PRICEDISC(受渡日, 満期日, 割引率, 満期受取額, [日数計算基準])
英語表記だと =PRICEDISC(settlement, maturity, discount, redemption, [basis]) となります。
| 引数 | 省略 | 説明 |
|---|---|---|
| 受渡日(settlement) | 必須 | 証券の購入日(支払い完了日)。DATE関数での指定を推奨 |
| 満期日(maturity) | 必須 | 証券の満期日。受渡日より後の日付を指定する |
| 割引率(discount) | 必須 | 証券の年率割引率(例: 0.03 = 年3%) |
| 満期受取額(redemption) | 必須 | 額面100に対する満期受取額(通常は100) |
| 日数計算基準(basis) | 省略可 | 1年の日数計算方式(下表参照、省略時は0) |
日数計算基準(basis)の設定値
| 値 | 1年の日数計算 |
|---|---|
| 0(省略時) | 30日/360日(米国NASD方式) |
| 1 | 実際の日数/実際の日数 |
| 2 | 実際の日数/360日 |
| 3 | 実際の日数/365日 |
| 4 | 30日/360日(ヨーロッパ方式) |
満期受取額(redemption)は額面100を基準にした数値を入れる点に注意してください。実際の額面金額(1,000,000円など)ではなく、100で固定するのが基本ですよ。返ってくる価格も同じく額面100を基準にしたスケールです。
PRICEDISC関数の基本的な使い方
シンプルな割引債の価格を求める
額面100に対して割引率5%・期間1年の割引債を、購入するならいくらで買えばよいかを求めてみましょう。
| セル | 項目 | 値 |
|---|---|---|
| B2 | 受渡日 | 2026/4/21 |
| B3 | 満期日 | 2027/4/21 |
| B4 | 割引率 | 0.05 |
| B5 | 満期受取額 | 100 |
=PRICEDISC(B2, B3, B4, B5, 1)
結果は 約95.00(額面100に対して95.00) です。割引率5%なので、額面100の証券を95で買えば、満期に100を受け取れる計算になりますよ。額面1,000万円分なら購入価格は約950万円が目安になります。
直接日付を入れる場合はDATE関数を使います。
=PRICEDISC(DATE(2026,4,21), DATE(2027,4,21), 0.05, 100, 1)
短期国債の発行価格を求める
期間90日・割引率3.2%の短期国債を、額面100あたりいくらで購入することになるか計算してみましょう。
=PRICEDISC(DATE(2026,4,1), DATE(2026,6,30), 0.032, 100, 2)
結果は 約99.20 です。3か月弱の短期間なので、割引額は1年フルの場合よりも小さくなりますよ。短期国債の入札時の落札価格チェックや、日銀オペの想定価格確認に便利です。
商業手形の割引購入額をシミュレーションする
満期60日・割引率6%の商業手形を、額面100あたりいくらで買い取れるか計算します。
=PRICEDISC(DATE(2026,4,21), DATE(2026,6,20), 0.06, 100, 2)
結果は 約99.00 です。額面500万円の手形なら購入額は約495万円が目安になります。手形割引や金融商品の買取シミュレーションに活用してくださいね。
PRICE・PRICEMATとの使い分け
債券の価格計算系関数には、PRICEDISCのほかにPRICE関数とPRICEMAT関数があります。3つの違いは「対象とする債券のタイプ」ですよ。
| 関数 | 対象債券 | 利息の扱い |
|---|---|---|
| PRICEDISC関数 | 割引債(ゼロクーポン債) | 期中の利息なし、満期に額面受取 |
| PRICE関数 | 定期利付債 | 期中にクーポン受取あり |
| PRICEMAT関数 | 満期利付債 | 利息は満期にまとめて受取 |
判断ポイントは「いつ・どのように利息を受け取るか」です。利息ゼロで割引発行ならPRICEDISC関数、半年や年1回など定期的にクーポンを受け取る一般的な社債・利付国債ならPRICE関数、満期一括で利息を受け取るタイプならPRICEMAT関数を使いますよ。
同じ条件での違いを確認する
例えば額面100・受渡日2026/4/21・満期日2027/4/21・利回り(割引率)3%・basis=1の場合:
| 関数 | 数式 | 結果の意味 |
|---|---|---|
| PRICEDISC関数 | =PRICEDISC(DATE(2026,4,21),DATE(2027,4,21),0.03,100,1) | 約97.00(割引のみ) |
| PRICE関数(年1回払い・利率2%) | =PRICE(DATE(2026,4,21),DATE(2027,4,21),0.02,0.03,100,1,1) | 約99.03(クーポンあり) |
| PRICEMAT関数(発行日同日・利率2%) | =PRICEMAT(DATE(2026,4,21),DATE(2027,4,21),DATE(2026,4,21),0.02,0.03,1) | 約99.04(満期一括利息) |
期中にクーポンが受け取れない割引債のPRICEDISC関数は、同じ利回り条件でも価格が一番安くなる傾向がありますよ。
DISC関数との関係(逆関数の関係)
PRICEDISC関数とよく一緒に登場するのがDISC関数です。この2つは「価格を求めるか・割引率を求めるか」という逆の関係にあります。
| 関数 | 入力 | 出力 |
|---|---|---|
| PRICEDISC関数 | 割引率 → | 額面100あたりの価格 |
| DISC関数 | 現在価格 → | 額面に対する割引率 |
つまり、片方の出力をもう片方に入力すると、元の値が戻ってくる関係になりますよ。
逆算で確認してみる
割引率5%から価格を求め、その価格から割引率を逆算してみましょう。
=PRICEDISC(DATE(2026,4,21), DATE(2027,4,21), 0.05, 100, 1)
→ 約95.00
=DISC(DATE(2026,4,21), DATE(2027,4,21), 95, 100, 1)
→ 約0.05(5.00%)
きれいに往復しますよね。発行体目線で「割引率を決めて発行価格を逆算したい」ときはPRICEDISC関数、投資家目線で「市場価格から割引率を確認したい」ときはDISC関数を使い分けるのがおすすめですよ。
よくあるエラーと対処法
#NUM!エラー
以下のケースで発生します。
| 発生条件 | 対処法 |
|---|---|
| 受渡日 ≥ 満期日 | 受渡日が満期日より前になるよう修正する |
| 割引率が0以下 | 0より大きい数値を指定する |
| 満期受取額が0以下 | 正の数値を指定する(通常は100) |
| basis が 0〜4 以外 | 0, 1, 2, 3, 4 のいずれかを指定する |
割引率(discount)は 0より大きい正の数 が必要です。0や負の数を入れると #NUM! エラーになりますよ。
#VALUE!エラー
引数に数値や日付以外の文字列が入っている場合に発生します。日付を直接書くときは DATE(2026,4,21) のようにDATE関数を使うと確実ですよ。
#NAME?エラー
関数名のスペルミスが原因です。「PRICEDISCOUNT」「PRICEDIS」などは存在しない関数名です。入力候補から選ぶようにしましょう。
Excelとの互換性
PRICEDISC関数はExcelとGoogleスプレッドシートで同じ計算結果を返します。Excelファイル(.xlsx)をスプレッドシートで開いても関数はそのまま動作しますよ。
スプレッドシートでは引数名が日本語(「受渡日」「満期日」「割引率」「満期受取額」「日数計算基準」)で表示されます。Excelの英語表記(settlement、maturity、discount、redemption、basis)と見た目は異なりますが、動作に影響はありません。
まとめ
スプレッドシートのPRICEDISC関数は、割引発行された有価証券について、割引率から逆算して額面100あたりの価格を計算する財務関数です。ポイントをまとめておきます。
- 引数は受渡日・満期日・割引率・満期受取額の4つが必須。日数計算基準(basis)は省略可
- 満期受取額は額面100を基準にした数値を入れる。返ってくる価格も100基準
- 割引率は 0より大きい正の数 が必要。0以下だと #NUM! エラーになる
- 定期利付債ならPRICE関数、満期利付債なら PRICEMAT関数 を使い分ける
- DISC関数とは 価格と割引率を相互に逆算する関係
- 日付には DATE関数を使うと文字列とのトラブルを防げる
- Excelとの互換性があり、.xlsxファイルをそのまま開いても動作する
割引債・短期国債・商業手形の発行価格チェックや、割引率からの価格逆算シミュレーションにぜひ活用してみてください。財務関数の使い分けには、DISC関数・PRICE関数・INTRATE関数・RECEIVED関数の記事もあわせて参考にしてみてくださいね。
