「額面より安く買える割引債を100万円分買ったら、満期日に結局いくら受け取れるんだろう?」という計算は、投資シミュレーションや社債購入時の検討でよく出てきますよね。割引率と期間がわかっていれば、RECEIVED関数で一発です。
この記事では、スプレッドシートのRECEIVED関数の使い方を、構文から実務での活用例・よくあるエラーの対処まで同僚に教える感覚で解説します。DISC関数・INTRATE関数との違いもあわせて整理しているので、財務シミュレーションで活用してみてください。
スプレッドシートのRECEIVED関数とは?
スプレッドシートのRECEIVED関数は、全額投資型(割引発行)の有価証券について、投資額・割引率・期間から満期日に受け取れる金額を計算する財務関数です。
「全額投資型の証券」とは、途中で利息の支払いがなく、購入時に全額を支払って満期日に元金と利益をまとめて受け取るタイプの金融商品です。割引債(ゼロクーポン債)や短期国債、商業手形などがこれに該当します。
RECEIVED関数を使えば、投資額と割引率さえわかれば満期時の額面相当額を逆算できます。DISC関数が「割引率を求める関数」だったのに対して、RECEIVED関数は「割引率から受取額を求める関数」だと考えるとイメージしやすいですよ。
RECEIVED関数の構文と引数
RECEIVED関数の構文は次のとおりです。
=RECEIVED(受渡日, 満期日, 投資額, 割引率, [日数計算基準])
英語表記だと =RECEIVED(settlement, maturity, investment, discount, [basis]) となります。
| 引数 | 省略 | 説明 |
|---|---|---|
| 受渡日(settlement) | 必須 | 証券の購入日(支払い完了日)。DATE関数での指定を推奨 |
| 満期日(maturity) | 必須 | 証券の満期日。受渡日より後の日付を指定する |
| 投資額(investment) | 必須 | 購入時に支払った金額(正の数値) |
| 割引率(discount) | 必須 | 年率の割引率を小数で指定(5%なら 0.05、パーセント表示のセル参照でもOK) |
| 日数計算基準(basis) | 省略可 | 1年の日数計算方式(下表参照、省略時は0) |
割引率の指定単位に注意
割引率は 小数表記 で入力します。「5%」の場合は 0.05 です。セルに「5%」とパーセント書式で入力したものを参照する場合は、書式に関係なく内部的に 0.05 として扱われるので、そのままセル参照でかまいません。
手打ちで 5 と入れてしまうと500%扱いになって計算結果が極端に大きく(あるいは負に)なります。よくあるミスなので気をつけてくださいね。
日数計算基準(basis)の設定値
| 値 | 1年の日数計算 |
|---|---|
| 0(省略時) | 30日/360日(米国NASD方式) |
| 1 | 実際の日数/実際の日数 |
| 2 | 実際の日数/360日 |
| 3 | 実際の日数/365日 |
| 4 | 30日/360日(ヨーロッパ方式) |
日本の慣行に合わせる場合は basis=1(実際の日数ベース)を使うことが多いです。短期国債などの計算では basis=2(実日数/360日)もよく使われますよ。
RECEIVED関数の基本的な使い方
シンプルな割引債の満期受取額を求める
投資額95万円、割引率5%、期間1年の割引債の満期受取額を求めてみましょう。
| セル | 項目 | 値 |
|---|---|---|
| B2 | 受渡日 | 2026/4/21 |
| B3 | 満期日 | 2027/4/21 |
| B4 | 投資額 | 950,000 |
| B5 | 割引率 | 5% |
=RECEIVED(B2, B3, B4, B5, 1)
結果は 1,000,000円 となります。95万円を5%の割引率で1年間運用すると満期日には額面どおり100万円で戻ってくる、という計算ですよ。
直接日付や値を入れる場合はDATE関数を使います。
=RECEIVED(DATE(2026,4,21), DATE(2027,4,21), 950000, 0.05, 1)
短期国債の満期受取額を求める
投資額99.2万円、割引率3.2%、期間90日(2026/4/1〜2026/6/30)の短期国債について、満期受取額を計算します。
=RECEIVED(DATE(2026,4,1), DATE(2026,6,30), 992000, 0.032, 2)
結果は 約1,000,000円 です。短期国債は basis=2(実日数/360日)で計算するのが慣例ですよ。
商業手形の支払期日の受取額を求める
額面不明の商業手形を495万円で割り引いてもらい、60日後に満期が来る場合の受取額を確認してみましょう。
=RECEIVED(DATE(2026,4,21), DATE(2026,6,20), 4950000, 0.06, 2)
結果は 約5,000,000円 です。手形の額面を逆算する用途で便利に使えますよ。
RECEIVED関数の実務での活用例
定期預金との利回りを比較する
「300万円を1年満期・年1.5%の定期預金に預けた場合」と「同期間・割引率1.5%の割引債に投資した場合」の受取額を比較してみましょう。
定期預金(単利・元利合計):
=300000*(1+0.015)
結果は 3,045,000円です。
割引債(RECEIVED関数):
=RECEIVED(DATE(2026,4,21), DATE(2027,4,21), 3000000, 0.015, 1)
結果は 約3,045,685円です。
同じ割引率・利率でも、割引債のほうがわずかに受取額が大きくなります。これはRECEIVED関数が投資額を分母にして逆算するため、単純な掛け算の利息計算より有利になるからですよ。
複数パターンで一括シミュレーション
割引率を変えた場合の受取額を表形式で確認すると、投資判断がしやすくなります。
| セル | 項目 | 値 |
|---|---|---|
| A2 | 受渡日 | 2026/4/21 |
| A3 | 満期日 | 2027/4/21 |
| A4 | 投資額 | 1,000,000 |
| B7:B10 | 割引率 | 2%, 3%, 4%, 5% |
=RECEIVED($A$2, $A$3, $A$4, B7, 1)
これをB7:B10の各行に対してコピーすると、割引率ごとの満期受取額が一覧で出せますよ。
DISC関数・INTRATE関数との使い分け
財務関数の中でRECEIVED関数と混同しやすいのがDISC関数とINTRATE関数です。3つとも割引証券に関係しますが、「何を求めるか」が違います。
| 比較項目 | RECEIVED関数 | DISC関数 | INTRATE関数 |
|---|---|---|---|
| 計算するもの | 満期受取額(満期時の受取金額) | 割引率(額面に対する割引の年率) | 全額投資の利率(投資額に対する年率) |
| 必要な入力 | 投資額・割引率 | 投資額・満期受取額 | 投資額・満期受取額 |
| 返す値の単位 | 金額 | 比率(%) | 比率(%) |
| 主な用途 | 満期金額の予測・収益シミュレーション | 発行条件の割引率確認 | 投資利回りの年率換算 |
判断ポイントは「わかっているものと知りたいもの」の組み合わせです。
- 投資額と割引率がわかっていて、受取額を知りたい → RECEIVED関数
- 投資額と受取額がわかっていて、割引率を知りたい → DISC関数
- 投資額と受取額がわかっていて、投資利回り(年率)を知りたい → INTRATE関数
同じ条件で比較する
95万円購入→100万円満期(2026/4/21〜2027/4/21、basis=1)の場合:
| 関数 | 数式 | 結果 |
|---|---|---|
| RECEIVED関数 | =RECEIVED(DATE(2026,4,21),DATE(2027,4,21),950000,0.05,1) | 約1,000,000円 |
| DISC関数 | =DISC(DATE(2026,4,21),DATE(2027,4,21),950000,1000000,1) | 約5.00% |
| INTRATE関数 | =INTRATE(DATE(2026,4,21),DATE(2027,4,21),950000,1000000,1) | 約5.26% |
RECEIVED関数とDISC関数は、割引率5%と受取額100万円が「逆算の関係」になっています。条件が揃えばどちらから求めても同じ組み合わせになりますよ。
よくあるエラーと対処法
#NUM!エラー
以下のケースで発生します。
| 発生条件 | 対処法 |
|---|---|
| 受渡日 ≥ 満期日 | 受渡日が満期日より前になるよう修正する |
| 投資額が0以下 | 正の数値を指定する |
| 割引率が0以下 | 正の数値を指定する(0%や負の割引率は計算できない) |
| basis が 0〜4 以外 | 0, 1, 2, 3, 4 のいずれかを指定する |
割引率が「期間×割引率 ≥ 1」になるような極端な値を指定した場合も、分母が0以下になって #NUM! エラーが発生します。通常の相場観から外れた入力ミスがないか確認してくださいね。
#VALUE!エラー
引数に数値や日付以外の文字列が入っている場合に発生します。日付を直接書くときは DATE(2026,4,21) のようにDATE関数を使うと確実です。
また、割引率を "5%" のようにダブルクオート付きの文字列で渡してもエラーになります。セル参照にするか、小数で 0.05 と直接書くようにしましょう。
#NAME?エラー
関数名のスペルミスが原因です。「RECEIPT」「RECIEVED」などは存在しない関数名なので、入力候補から選ぶようにしましょう。
結果が極端に大きい・小さいとき
結果が想定より桁違いに大きい場合、割引率を 5 と入力して500%扱いになっている可能性が高いです。5%なら 0.05、パーセント書式のセルなら 5% と入力して参照します。
Excelとの互換性
RECEIVED関数はExcelとGoogleスプレッドシートで同じ計算式を使い、結果も一致します。Excelファイル(.xlsx)をスプレッドシートで開いても関数はそのまま動作しますよ。
スプレッドシートでは関数の引数ヒントが日本語(「受渡日」「満期日」「投資額」「割引率」「日数計算基準」)で表示されます。Excelの英語表記(settlement、maturity、investment、discount、basis)と見た目は異なりますが、動作に違いはありません。
まとめ
スプレッドシートのRECEIVED関数は、全額投資型の有価証券について投資額・割引率・期間から満期受取額を計算する財務関数です。ポイントをまとめておきます。
- 引数は受渡日・満期日・投資額・割引率の4つが必須。日数計算基準(basis)は省略可
- 割引率は小数で指定(5%なら 0.05)。
5と入力すると500%扱いになるので注意 - DISC関数・INTRATE関数とは「わかっているもの」と「知りたいもの」で使い分ける
- 日付には DATE関数を使うと文字列とのトラブルを防げる
- 受渡日 ≥ 満期日の場合は #NUM! エラーになる
- Excelとの互換性があり、.xlsxファイルをそのまま開いても動作する
割引債・ゼロクーポン債の満期金額予測や、商業手形の額面逆算にぜひ活用してみてください。関連する財務関数として、DISC関数(割引率を求める)とINTRATE関数(全額投資の利率を求める)の記事もあわせて参考にしてみてくださいね。
