gpt4 book ai didi

excel - Excel 中分组经常性 CF 的净现值

转载 作者:行者123 更新时间:2023-12-03 03:47:08 24 4
gpt4 key购买 nike

下面是 60 个期间的现金流量表。

有一组经常性现金流量。 Excel 中有没有一种简单的方法可以计算所有 60 个期间(每月现金流量)的 NPV,而无需创建 60 行的表格并使用 NPV 公式?

因此 60 个订单项的公式如下所示:

=NPV(定期利率,CF 1 - 60 的值)+ CF0

但是,如果您知道 Excel 中存在经常性现金流量并且不必枚举所有 60 行,您是否可以简化它?

提前致谢。

enter image description here

最佳答案

没有内置函数可以执行此操作,但我们可以构建自己的函数。这是一个UDF(用户定义函数):

Function myNPV(rate As Double, vl As Range, times As Range)
If vl.Cells.Count <> times.Cells.Count Then Exit Function
Dim vlArr() As Variant
Dim timesArr() As Variant
Dim ovlArr() As Double
Dim i&, j&, t&, cnt&

vlArr = vl.Value
timesArr = times.Value
For i = LBound(vlArr, 1) To UBound(vlArr, 1)
If vlArr(i, 1) <> "" Then
t = t + timesArr(i, 1)
End If
Next i
cnt = 1
ReDim ovlArr(1 To t)
For i = LBound(vlArr, 1) To UBound(vlArr, 1)
If vlArr(i, 1) <> "" Then
For j = 1 To timesArr(i, 1)
ovlArr(cnt) = vlArr(i, 1)
cnt = cnt + 1
Next j
End If
Next i

myNPV = Application.WorksheetFunction.NPV(rate, ovlArr)

End Function

在工作簿中按 Alt-F11。这将打开 VBE。

转到插入并插入模块。这将打开一个新模块。复制并粘贴上面的代码。

您可以像任何其他公式一样调用它:

=myNPV(C20/C19,B3:B17,C3:C17)+B2

这有三个标准:每次的费率、金额范围以及相应的次数。

enter image description here

关于excel - Excel 中分组经常性 CF 的净现值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38359503/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com