Excel中的现金流量预测

时间:2019-02-07 17:44:48

标签: excel vba if-statement calendar

我希望它能够输入合同详细信息(客户名称,合同期限和年度总金额)。使用这些合同详细信息,我希望程序或模板填充一个日历,以便我们可以查看每天的存款。

例如:如果我输入了2张合约:

  1. 从2019年1月1日开始的每年120美元的总金额
  2. 从2019年1月3日开始的每年180美元的总金额

通过选择查看 3月日历,我会在01/03/2019看到2个存款,其中一个10美元,另一个15美元,总共25美元。但是,如果我选择查看 February 的月份,我会在01/02/2019看到1个10 USD的存款。

我已经启动了一张excel工作表,如果它是特定日期的一次存款,则可以完美地填充它。

我被困的原因是每月存款特殊存款特殊情况,第一个月需要每年总金额的25%,并且将完成在接下来的几个月中,将剩余的75%的年均余额存入5个等额存款中。)

这是我在一月份的每一天都写的基本公式:

=IFERROR(IF(AND(VALUE(LEFT(Inputs!$D3,2))=B$2,(VALUE(MID(Inputs!$D3,4,2))='C.F. JAN'!$B$1)),IF(Inputs!$C3="Fixed Monthly",Inputs!$G3/12,IF(Inputs!$C3="Yearly",Inputs!$G3,"")),""),"")

这里是二月之一

=IFERROR(IF(AND(VALUE(LEFT(Inputs!$D3,2))=C$2,(VALUE(MID(Inputs!$D3,4,2))='C.F. FEB'!$B$1)),IF(Inputs!$C3="Fixed Monthly",Inputs!$G3/12,IF(Inputs!$C3="Yearly",Inputs!$G3,"")),""),"")

我每个月创建了一张表格,汇总每个客户的适当存款金额。

@jessi,这是我的数据的样子:

enter image description here

这是M3上的公式:

=SUMIF($D$3:$D$10000,$L3,$H$3:$H$10000)+SUMIFS($I$3:$I$10000,$D$3:$D$10000,"<"&$L3,$J$3:$J$10000,">="&$L3)

1 个答案:

答案 0 :(得分:0)

因此,您可以做一些初步的数学运算,以便您的if语句非常简单。

这是一个例子。看到添加的列?您可以输入合同,价值,开始,首次和分期付款的数据。 FirstPayment,NormalPayment和Stop的计算。

enter image description here

对于合同a,第2行,FirstPayment计算如下:

=IF(ISBLANK(D2),G2,D2*B2)

合同a,第2行的NormalPayment,计算如下:

=IF(ISBLANK(D2),B2/E2,(1-D2)*B2/E2)

为合同a,第2行停止计算:

=IF(ISBLANK(D2),EDATE(C2,E2),EDATE(C2,E2+1))

然后,预计其付款的月份如下所示(显示的1月份的公式): 注意:日期2019-01-01在A7中,结果(此公式在哪里)在A8中。复制并粘贴其余的列。

=SUMIF($C$2:$C$4,$A7,$F$2:$F$4)+SUMIFS($G$2:G$4,$C$2:$C$4,"<"&$A7,$H$2:$H$4,">="&$A7)

请注意,第一个SUMIF处理的是第一个月中的任何事情。 SUMIF处理的是介于开始和停止之间的任何内容。

修改已更改的问题以按天显示现金流量 为了按天显示,您首先需要在合同数据表中添加另一列(即列I)。这是DAY栏。 DAY($C2)。为了使您的现金流变得简单,实际上使此If(day($C2)>28),1,day($C2))使其跌落在29、30或31上,然后在下一个出现。您可以在此处进行其他选择。

new contract tab

然后,您可以在现金流量表中保留每一天。

我将现金流量放在新标签上,并将合同数据标签命名为“合同”

cashflow

现金流量公式(日期在$ A2中,结果在$ B2中)为:

=SUMIF(CONTRACTS!$C$2:$C$5,$A2,CONTRACTS!$F$2:$F$5)+SUMIFS(CONTRACTS!$G$2:G$5,CONTRACTS!$C$2:$C$5,"<"&$A2,CONTRACTS!$H$2:$H$5,">="&$A2,CONTRACTS!$I$2:$I$5,DAY(A2))