如何编写公式以便我可以按比例分配当前和以后年份的数据?

时间:2018-04-13 15:48:21

标签: excel excel-formula

我有一个看似容易的问题,这个问题在我最近的工作中占用了大部分时间。

我正在尝试使用VBA对用户表单进行输入以输入数据。我已经完成了VBA部分,没有任何问题。

我的任务的第二部分是,根据提供的数据,我需要将其用作"预测"或者将其推断为未来几年。

我正在尝试编写一个公式,在插入数据时,公式会自动填写其余部分。到目前为止,我已经完成了第一部分,我可以使它从我当前的年份到#34;预测"中的最后一部分。

Full current year

根据交货日期的月份按比例分配:

Prorated for month then annualised

当我尝试将未来交付的数据放入时,我的问题就开始了,这些数据在获得利益的年度中得到了年度化,这是好的,但问题在于前几年它实际上不应该读取任何内容因为它已成为过去,所以当我在2020年交付某些东西时,我无法用过去的钱来计算:例如:

Data entered in future but previous years show

有问题的公式是:

=IF($H5="Annual",IF($I5>R$3,((12-((MONTH($I5))-4))/12)*$K5,$K5),IF($H5="One Off",IF($I5<R$3+365,IF($I5>R3,$K5,""),"")))

当细胞读取&#34; One Off&#34;但是它工作正常,金额只会出现在相应的年份,即使将来也是如此。

我不知道该怎么做才能让它发挥作用,我已尝试对公式进行了许多修改,但没有一个有效,例如:

=IF($H5="Annual",IF($I5>R$3,$R$40,IF(I5<R3-365,$K5)),IF($H5="One Off",IF($I5<R$3+365,IF($I5>R3,$K5,""),"")))

如果是公式,R40只是嵌套,这是一个很长的方式来按比例分配年度:

=IF(MONTH(I5)=4,M5*12,IF(MONTH(I5)=5,M5*11,IF(MONTH(I5)=6,M5*10,IF(MONTH(I5)=7,M5*9,IF(MONTH(I5)=8,M5*8,IF(MONTH(I5)=9,M5*7,IF(MONTH(I5)=10,M5*6,IF(MONTH(I5)=11,M5*5,IF(MONTH(I5)=12,M5*4,IF(MONTH(I5)=1,M5*3,IF(MONTH(I5)=2,M5*2,IF(MONTH(I5)=3,M5))))))))))))

欢迎任何建议,这是继续做我的准备。

总结;

  • 如果交付日期是当年(即2018年,则填写未来年份),我需要公式填写当年和未来年份的日期此部分有效
  • 我需要公式来填写当前年度所提供福利的数据,但与此同时,如果在2020年提供这些数据,我需要公式不填写前几年的数据< / strong>即2018年,2019年。

当我尝试不同的事情时,请忽略那些读为FALSE的单元格。

谢谢。

1 个答案:

答案 0 :(得分:1)

现在无需回复,我找到了解决方案,具体如下:

=IF(OR(ISBLANK($H5),ISBLANK($I5),ISBLANK($K5))," ",IF($H5="Annual",IF($I5<R$3+365,IF($I5>R$3,$A$1,$K5),""),IF($H5="One Off",IF($I5<R$3+365,IF($I5>R$3,$K5,""),""))))

A1只是一个引用嵌套if公式的单元格,因为我之前的公式,工作到某些月份,A1如下:

=IF(MONTH(I5)=4,M5*12,IF(MONTH(I5)=5,M5*11,IF(MONTH(I5)=6,M5*10,IF(MONTH(I5)=7,M5*9,IF(MONTH(I5)=8,M5*8,IF(MONTH(I5)=9,M5*7,IF(MONTH(I5)=10,M5*6,IF(MONTH(I5)=11,M5*5,IF(MONTH(I5)=12,M5*4,IF(MONTH(I5)=1,M5*3,IF(MONTH(I5)=2,M5*2,IF(MONTH(I5)=3,M5))))))))))))

如果年度X值是在一年中的X月份交付的年度值,那么年度X值只是很长的一段时间。

ISBLANK功能就是这样&#34; FALSE&#34;当我复制公式时,单元格中没有显示。