首页 > 解决方案 > 使用 XIRR 函数和非连续数据计算同比回报

问题描述

我输入了如下数据,其中“投资”是在 A 列的“日期”进行的,而“回报”(C 列)是截至今天的。

Date        Investment  Return
03-Jan-2011 -2000.00    5467.78  
03-Oct-2011 -2000.00    6021.89  
01-Nov-2011 -2000.00    5814.14  
01-Dec-2011 -2000.00    6304.06  
02-Jan-2012 -2000.00    6722.25  
01-Feb-2012 -2000.00    6038.32  
01-Mar-2012 -2000.00    5857.22  
02-Apr-2012 -2000.00    5751.47  
02-May-2012 -2000.00    5719.95  
01-Jun-2012 -2000.00    5977.00  
01-Aug-2012 -2000.00    5763.80  
03-Sep-2012 -2000.00    5670.38  
01-Oct-2012 -2000.00    5207.01  
01-Nov-2012 -2000.00    5277.69  
03-Dec-2012 -2000.00    4848.90 

我想使用 XIRR 公式计算截至今天的年回报率。结果应该是这样的

Column-A    Column-B  
2011        14.1%  
2012        14.5%  
2013        13.8%  
....  
....

实际上,我按顺序有流出(负值),但我无法将流入(作为正值)添加为每年的最后一行。

我在 2011 年和 2012 年尝试了以下方法,但 XIRR 不支持显然不连续的值

2011 年 =XIRR({B2:B5;sum(C2:C5)},{A2:A5;today()})

2012 年 =XIRR({B2:B16;sum(C2:C16)},{A2:A16;today()})

请求您的帮助。

谢谢,金舒克。

标签: excelxirr

解决方案


如果您输入了 2011 年E2,请使用CHOOSE数组公式来组合收益和投资数组(使用ctrl+ shift+提交enter):

=XIRR(OFFSET($A$1,MATCH(E2,YEAR($A$2:$A$16),0),1,SUM(IF(YEAR($A$2:$A$16)=E2,1)),2),CHOOSE({1,2},OFFSET($A$1,MATCH(E2,YEAR($A$2:$A$16),0),0,SUM(IF(YEAR($A$2:$A$16)=E2,1))),TODAY()))

编辑上面的公式假设您的数据按年份排序。


推荐阅读