计算Excel中的回报值

时间:2016-03-28 11:22:36

标签: excel finance

我有一组连续的值:

(9,888,000)(88,410,205)(76,030,786)(62,712,494)(48,416,610)(33,102,893)(16,729,517)746,979 19,371,753 39,191,722 43,455,624 66,114,081 89,819,671 114,926,989 141,492,724

每个值代表特定年份的某些金额。例如(16,729,517)是第7年的现金流出。

现在,我在另一个单元格中的初始付款金额为110,000,000。

现在我尝试计算首次付款的回收年度。对我来说,投资回收期应为:7.96,因为当年金额变为正数。

但是我无法计算这个7.96的值。有人可以帮忙吗?

我是通过间接方法完成的:

作为第一步,我检查每列中的值,并对正值和负值存储true或false。

第二步:=MATCH(TRUE,Complete Array,0)。这给了我8作为数字,它找到了第一个正值。

然后,作为第三步,我使用这个公式:

=Year-OFFSET(CFC,0,Year)/OFFSET(Investment,0,Year) . 

在这种情况下,年份是我在步骤2中得到的,而CFC单元格是空的(0年内的累积现金流量)。输出这个7.96,这是我要求的价值。

但这是一种漫长而间接的方式。我希望所有这些计算都有一个单行公式。

2 个答案:

答案 0 :(得分:2)

您可以将公式合并为一行。这是你正在做的事情的一个小变化,这是在低于和高于零的值之间的直线外推:

objects

如果=FORECAST(0,{-1,0}, OFFSET(CashFlows,,MATCH(TRUE,CashFlows>0,0)-2,1,2)) +MATCH(TRUE,CashFlows>0,0) 范围在列中而不是行中,则可能需要更改偏移公式。通过在点击CashFlows

时按住ctrl+shift,公式将作为数组公式输入

编辑此公式忽略了第一笔现金流量,无论是正面还是负面。如果要包含它,请将enter运算符更改为>并测试错误。

答案 1 :(得分:0)

您的配方方法似乎很自然。我不确定你能做得比你正在做的更好,尽管我确信一个数组公式大师可以找到一种方法将它全部包装成一个虽然不是很可读的公式。

使用VBA,您可以编写一个可以直接从电子表格调用的函数。在标准代码模块中放置:

=PayBack(A1:O1)

然后它可以像:

一样使用

enter image description here

我的样本数据在第1行(所以A1:O1)和A3中我输入了公式

#N/A

它按预期计算。如果数据中没有负转换到正转换,则会返回{{1}}错误 - 但这当然可以通过各种方式进行调整。