NPV関数
NPV関数は、VBA関数の中で財務関数に分類される関数です。
目次
NPV関数とは
NPV関数は、倍精度浮動小数点数型 (Double) の値を返します。一連の定期的なキャッシュ フロー (支払いと収益) と割引率に基づいて、投資の正味現在価値を返します。
構文 | NPV(rate, values()) | |
---|---|---|
引数 | 省略 | 説明 |
rate | × | 投資期間を通じて一定の割引率を小数点を用いて倍精度浮動小数点数型 (Double) の値を指定します。 |
values() | × | キャッシュ フローの値を倍精度浮動小数点数型 (Double) の配列として指定します。配列には、負の値 (支払額) と正の値 (収益額) が少なくとも 1 つずつ含まれている必要があります。 |
投資の正味現在価値とは、将来行われる一連の支払いと収益を現時点での現金価値に換算したものです。
NPV 関数では、配列で指定した値の順序がキャッシュ フローの順序であるとみなされます。支払額と収益額を入力するときは、その順序に注意してください。
NPV 関数では、投資は配列の最初のキャッシュ フローの日付よりも 1 期前に開始され、配列の最後のキャッシュ フローで終了します。
正味現在価値は、将来のキャッシュ フローを基にして計算されます。最初のキャッシュ フローが第 1 期の期首に発生する場合、その最初の値は名前付き引数 values() のキャッシュ フローの値に含めず、NPV 関数の計算結果に加算する必要があります。
NPV 関数は投資の現在価値を返す PV 関数によく似ていますが、NPV 関数と PV関数の違いは、PV 関数ではキャッシュ フローが期首と期末のどちらで発生してもよい.点にあります。また、NPV 関数ではキャッシュ フローの金額が一定していませんが、PV 関数では投資期間を通じて一定でなければなりません。
NPV関数のサンプルコード
次の例は、NPV 関数を使って、配列 Values() で指定したキャッシュ フローに対する正味現在価値を計算します。RetRate は、固定内部利益率を表します。
Sub sample()
Dim Fmt, Guess, RetRate, NetPVal, Msg
Static Values(5) As Double ' 配列を定義します。
Fmt = "###,##0.00" ' 金額の形式を定義します。
Guess = .1 ' 推定値を 10% と指定します。
RetRate = .0625 ' 固定内部利益率を指定します。
Values(0) = -70000 ' 操業資金を指定します。
' 以後 4 年間の収益を表す正のキャッシュ フローです。
Values(1) = 22000 : Values(2) = 25000
Values(3) = 28000 : Values(4) = 31000
NetPVal = NPV(RetRate, Values()) ' 正味現在価値を計算します。
Msg = "指定したキャッシュ フローの正味現在価値は "
Msg = Msg & Format(NetPVal, Fmt) & " です。"
MsgBox Msg ' 正味現在価値を表示します。
End Sub
実行結果
解説
財務関数一覧
関数名 | 内容 |
---|---|
DDB | 倍率法による指定した期間の資産原価償却額を算出します。 |
FV | 定額定利の定期支払いでの投資の将来価値を算出します。 |
IPmt | 定額定利の定期支払いで投資期間内の指定した期における金利を算出します。 |
IRR | 指定したキャッシュフローに対する内部利率を算出します。 |
MIRR | 指定したキャッシュフローに対する修正内部利率を算出します。 |
NPer | 定額定利の定期支払いで総額の支払いに必要な支払回数を算出します。 |
NPV | 投資の正味現在価値を算出します。 |
Pmt | 定額定利の定期支払いでの投資の将来価値を算出します。投資に必要な定期支払額を算出します。 |
PPmt | 定額定利の定期支払いでの特定の期間における元金を算出します。 |
PV | 定額定利の定期支払いでの投資の現在価値を算出します。 |
Rate | 定額定利の定期支払いで将来価値を得るための利率を算出します。 |
SLN | 定額法での減価償却費を算出します。 |
SYD | 定額逓減法で指定した期の減価償却費を算出します。 |