返回一个 Double 类型的值,该值根据一系列定期现金流 (付款和收据) 和折扣率指定投资的净现值。
语法
NPV ( 速率、值 () )
NPV 函数语法具有以下参数:
参数 |
说明 |
rate |
必需。 指定期间内折扣率的双精度值,以小数表示。 |
值 () |
必需。 指定现金流值的 Double 数组。 该数组必须包含至少一个负值 (付款) 和一个正值 (收据) 。 |
备注
投资的净现值是未来一系列付款和收据的当前值。
NPV 函数使用数组中值的顺序来解释付款和收据的顺序。 请务必按正确的顺序输入付款和收据值。
NPV 投资从第一个现金流值日期之前的一个时间段开始,以数组中的最后一个现金流值结束。
净现值计算基于未来的现金流。 如果第一个现金流发生在第一个周期开始时,则第一个值必须添加到 NPV 返回的值中,并且不能包含在值 ( ) 的现金流值中。
NPV 函数类似于 PV 函数 (现值) ,只是 PV 函数允许现金流在期末或期初开始。 与可变 NPV 现金流值不同, PV 现金流必须在整个投资过程中固定。
示例
注意: 下面的示例演示了如何在 Visual Basic for Applications (VBA) 模块中使用此函数。 有关使用 VBA 的详细信息,请在搜索旁边的下拉列表中选择“开发人员参考”,并在搜索框中输入一个或多个术语。
此示例使用 NPV 函数返回数组 Values()中包含的一系列现金流的净现值。 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