Skip to content

Xnpv (方法)

返回一组现金流的净现值,这些现金流不一定定期发生。可读/写 Double 类型。

说明

若要计算一组定期现金流的净现值,请使用 Npv 方法。

Xnpv 方法不提供与相应的 XNPV 函数 (=XNPV(rate, values, dates)) 所需的 rate 参数对应的参数。若要在 VBA 代码中避开这一限制,可通过使用下面所示的 Evaluate 方法来调用 XNPV 函数,而不使用 Xpnv 方法。

参数

属性数据类型必填说明
Arg1any必填与 dates 中的付款计划相对应的一系列现金流。首期付款是可选的,并与投资开始时的成本或付款相对应。
Arg2any必填与现金流付款相对应的付款日期表。第一个付款日期代表付款计划的开始日期。所有其他日期必须迟于该日期,但可按任何顺序排列。

返回值

Double

示例

以下示例返回上面的成本和收益下的投资净现值。现金流的贴现率为 9%。(2086.6476 或 2086.65)。

let npv = Application.Evaluate("=XNPV(.09,A2:A6,B2:B6)")

javascript
/*本示例演示用 Xnpv 计算一组现金流的净现值,并将结果赋值到B5单元格*/
function test() {
    let dts = [100.1, 1000.2, 2000.52]
    Range("D3").Value2 = "2021/09/10"
    Range("D4").Value2 = "2023/09/30"
    Range("D5").Value2 = "2024/11/14"
    Range("B5").Value2 = WorksheetFunction.Xnpv(dts, Range("D3:D5"))
}
javascript
/*本示例演示为C1等单元格分别赋值,用 Xnpv 计算一组现金流的净现值。*/
function test() {
    Range("C1").Value2 = -1000
    Range("C2").Value2 = 2000
    Range("C3").Value2 = 3000
    Range("D1").Value2 = "2021/09/10"
    Range("D2").Value2 = "2023/09/30"
    Range("D3").Value2 = "2024/11/14"
    console.log(WorksheetFunction.Xnpv(Range("C1:C3"), Range("D1:D3")))
}