【问题标题】:How do I create an XIRR function based on unique names and between certain dates?如何基于唯一名称和特定日期之间创建 XIRR 函数?
【发布时间】:2019-01-19 05:05:24
【问题描述】:

我正在尝试创建一个 XIRR 函数,该函数将根据唯一的投资名称和特定日期之间的相应现金流来计算回报。例如,我想计算投资 A 在 2018 年 1 月 16 日至 2018 年 5 月 20 日之间的内部收益率,现金流如下:

投资日期金额 2018 年 1 月 15 日(55 美元) B 2018 年 1 月 18 日(20 美元) B 2018 年 1 月 19 日 9 美元 B 2018 年 4 月 6 日 $6 2018 年 4 月 8 日 24 美元 2018 年 5 月 20 日 40 美元 B 2018 年 5 月 21 日 7 美元 2018 年 5 月 23 日(5 美元)

2018 年 1 月 16 日开始
结束 05/20/18

我面临的挑战是跳过投资 B 的现金流,只计算投资 A。这是我正在尝试做的简化版本。完整版有大约 50 个投资名称,分布在大约 1000 行中。任何建议都会有所帮助。我试过使用 fncs INDEX、MATCH、OFFSET、COUNTIF。

附上电子表格供参考。

感谢您提前提供的帮助!

【问题讨论】:

标签: excel excel-formula irr xirr


【解决方案1】:

以下数组公式根据 E2 中的投资日期、F2 中的开始日期和 G2 中的结束日期返回 XIRR。注意公式需要用 CONTROL+SHIFT+ENTER 确认。

=XIRR(INDEX(C:C,N(IF(1,MODE.MULT(IF(A2:A9=E2,IF(B2:B9>=F2,IF(B2:B9<=G2,ROW(C2:C9)*{1,1}))))))),INDEX(B:B,N(IF(1,MODE.MULT(IF(A2:A9=E2,IF(B2:B9>=F2,IF(B2:B9<=G2,ROW(C2:C9)*{1,1}))))))))

对于早期版本的 Excel,请改用以下公式。注意这个公式也需要用CONTROL+SHIFT+ENTER来确认。

=XIRR(N(OFFSET(C2:C9,SMALL(IF(A2:A9=E2,IF(B2:B9>=F2,IF(B2:B9<=G2,ROW(C2:C9)-ROW(C2)))),ROW(INDIRECT("1:"&COUNTIFS(A2:A9,E2,B2:B9,">="&F2,B2:B9,"<="&G2)))),0,1)),N(OFFSET(B2:B9,SMALL(IF(A2:A9=E2,IF(B2:B9>=F2,IF(B2:B9<=G2,ROW(B2:B9)-ROW(B2)))),ROW(INDIRECT("1:"&COUNTIFS(A2:A9,E2,B2:B9,">="&F2,B2:B9,"<="&G2)))),0,1)))

【讨论】:

  • 谢谢,公式是否也考虑了两个日期之间的时间?
  • 是的,它考虑了E2中的投资名称以及F2和G2中的日期。
  • 嗨,Domenic,你能分享带有内置公式的excel吗?我收到带有建议公式的“名称”错误消息。
  • 您使用的是早期版本的 Excel。查看我编辑的帖子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多