IRR函数用于计算一系列现金流的内部报酬率,函数包括两个变量(Values,Guess)。Values表示一系列的现金流,Guess是IRR的猜测值,可以不输入,一般默认为0.1。一系列的现金流间隔的时间是一般以年为单位,如果不是一整年的,而是一个定期的如月,季度的,可以先计算月或季度的内部报酬率,然后再计算年化内部报酬率。
如:计算下面一列月度为单位的现金流。
计算B2至G2的内部报酬率,=IRR(B2:G2,),Guess值可以忽略。注意,这个是以月为单位的内部报酬率,年化的公式为=(1+ IRR(B2:G2,))^12-1。
有人会问,既然Guess猜测值可以忽略,为什么还要设置这个变量?Excel的帮助里面是这样解释的:Microsoft Excel 使用迭代法计算函数 IRR。 从 guess 开始,IRR 不断修正计算结果,直至其精度小于 0.00001%。 如果 IRR 运算 20 次,仍未找到结果,则返回 错误值 #NUM!。你想想,如果返还错误值,估计这个IRR的值得有多寒碜。
细心的人一定会看出,这一系列的现金流要是间隔均匀,我们可以先算间隔期IRR,然后再年化,要是现金流不是间隔均匀的呢?比如:
Excel也替我们想到了,于是就采用一个XIRR的函数来进行计算。
XIRR(Values,Dates,[Guess]),对,要增加一个时间序列的变量。所以上例的表达公式就会是:=XIRR(B2:G2,B1:G1,)。如果按照我们上面的例子依葫芦画瓢。你就会发现出来的结果是#VALUE!。原因是我们的时间序列表达Excel不认识,Excel默认的日期格式大家可以参考单元格设置里面的样式,这里我们将2010.1.1替换成2010-1-1,这样就可以得到结果了。
同理我们可以将第一个月度的现金流序列用XIRR直接进行计算,不用先计算IRR再年化。
细心的人会发现,还是有差异。对是有差异的,我们年化计算忽略了一些细节,比如1月有31天,2月是28天,而4月是30天。运用XIRR函数时,这些差别都已经考虑了进去,所以用XIRR就更准确了。