excel - 在 Excel 中使用自定义函数计算 IRR 时需要帮助
问题描述
我正在使用 Excel 表来跟踪我的所有投资。为了计算我的 IRR,我需要以特定方式输入值以便 Excel 进行计算。所以我决定创建一个自定义函数。我将为这个自定义函数提供以下值。
- 总投资额
- 投资期限
- 投资的最终价值。
我使用以下代码来创建自定义函数。但我得到了#VALUE
错误
Function ROI(fundInvested, timePeriod, finalValue)
eachValue = fundInvested / timePeriod
Dim cashFlow() As Double
Dim n As Integer
For n = 0 To (timePeriod - 1)
cashFlow(n) = -1 * eachValue
Next n
cashFlow(timePeriod) = finalValue
ROI = IRR(cashFlow)
End Function
我的公式哪里错了?
解决方案
所以你需要像这样重新调整它:
Function ROI(fundInvested, timePeriod, finalValue)
eachValue = fundInvested / timePeriod
Dim cashFlow() As Double
Dim n As Integer
ReDim cashFlow(0 to timePeriod)
'ReDim cashFlow(timePeriod) is also correct - see @Chris Nielsen comment.
For n = 0 To (timePeriod - 1)
cashFlow(n) = -1 * eachValue
Next n
cashFlow(timePeriod) = finalValue
ROI = IRR(cashFlow)
End Function
笔记
- 在没有Option Base语句的情况下,数组下标从零开始。
- 建议在 ReDim 语句中同时设置下限和上限,但如果省略下限而仅指定上限,则下限取自当前运行的 Option Base,在这种情况下为零,因此
ReDim cashFlow(0 to timePeriod)
和
ReDim cashFlow(timePeriod)
是等价的。
推荐阅读
- android - 从 onPostExecute 获取 JSON 字符串到 OnCreateView
- php - Uncaught ReferenceError: $ is not defined - Laravel 5.5 + Laravel Mix
- react-native - 如何升级 react-native gradle 版本
- javascript - 无法动态创建 div 内容
- proxy - Node.js 中的 Google GAX / gRPC 不适用于 HTTP/S 代理
- javascript - 如何将点分隔字符串中的每个第一个单词大写?
- c - C:如何获取操作系统名称(Ubuntu、Debian、Centos、..)以及如果定义操作系统名称 = ubuntu
- jenkins - 如何在 Jenkins Blue Ocean 阶段为 Github 状态检查指定自定义 url?
- mysql - 插入目标表时跳过mysql中的重复值
- python-2.7 - MySQLdb 导入从命令行工作,但在 PyCharm 中崩溃