1

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

投资日期 金额 A 01/15/18 ($55) B 01/18/18 ($20) B 01/19/18 $9 B 04/06/18 $6 A 04/08/18 $24 A 05/20/18 $40 B 2018 年 5 月 21 日 7 美元一个 2018 年 5 月 23 日(5 美元)

开始 01/16/18
结束 05/20/18

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

附上电子表格供参考。

我提前感谢您的帮助!

4

1 回答 1

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)))
于 2018-08-12T13:56:20.497 回答