定期的に発生する一連のキャッシュ フロー (支払いと収益) と割引率に基づいて、投資の正味現在価値を表す Double 型を返します。
構文
NPV( rate, values ())
NPV 関数の構文には、次の引数があります。
引数 |
説明 |
rate |
必須です。 10 進数で表現された、期間全体にわたる割引率を指定する Double 型。 |
values () |
必須です。 キャッシュ フローの金額を指定する Double 型の配列。 配列には、少なくとも 1 つの負の値 (支払い) と、1 つの正の値 (受け取り) を含める必要があります。 |
解説
投資の正味現在価値は、将来の一連の支払いと受け取りに対応する現在価値です。
NPV 関数では、配列内の値の順序を支払いと受け取りの順序として解釈します。 支払額と受け取り額を入力する際は、その順序に注意してください。
NPV 関数では、投資は最初のキャッシュ フローの金額が発生する日付より 1 期前に開始され、配列の最後のキャッシュ フローの金額で終了します。
正味現在価値の計算は、将来のキャッシュ フローに基づいて行われます。 このため、最初のキャッシュ フローが 1 期目の期首に発生する場合、最初の値は、values( ).のキャッシュ フローの金額に含めないで、NPV 関数の計算結果に加算する必要があります。
NPV 関数は、投資の現在価値を返す PV 関数と似ていますが、PV 関数ではキャッシュ フローが期首と期末のどちらに発生してもかまわない点が異なります。 また、NPV 関数ではキャッシュ フローの金額が一定していませんが、PV 関数では投資期間を通じて一定である必要があります。
使用例
注: 次の例は、Visual Basic for Applications (VBA) モジュールでのこの関数の使用方法を示しています。 VBA の使用方法の詳細については、[検索] の横にあるドロップダウン リストで [開発者用リファレンス] を選び、検索ボックスに検索する用語を入力します。
この例では、配列 Values() に含まれる一連のキャッシュ フローの正味現在価値を返す NPV 関数を使用しています。 RetRate は、一定の内部利益率を表します。
Dim Fmt, Guess, RetRate, NetPVal, Msg
Static Values(5) As Double ' Set up array.
Fmt = "###,##0.00" ' Define money format.
Guess = .1 ' Guess starts at 10 percent.
RetRate = .0625 ' Set fixed internal rate.
Values(0) = -70000 ' Business start-up costs.
' Positive cash flows reflecting income
' for four successive years.
Values(1) = 22000 : Values(2) = 25000
Values(3) = 28000 : Values(4) = 31000
' Calculate net present value.
NetPVal = NPV(RetRate, Values())
Msg = "The net present value " & _
"of these cash flows is "
Msg = Msg & Format(NetPVal, Fmt) & "."
' Display net present value.
MsgBox Msg