定期的に発生する一連のキャッシュ フロー (支払いと収益) と割引率に基づいて、投資の正味現在価値を表す 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