我有一个看似容易的问题,这个问题在我最近的工作中占用了大部分时间。
我正在尝试使用VBA对用户表单进行输入以输入数据。我已经完成了VBA部分,没有任何问题。
我的任务的第二部分是,根据提供的数据,我需要将其用作"预测"或者将其推断为未来几年。
我正在尝试编写一个公式,在插入数据时,公式会自动填写其余部分。到目前为止,我已经完成了第一部分,我可以使它从我当前的年份到#34;预测"中的最后一部分。
根据交货日期的月份按比例分配:
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))))))))))))
欢迎任何建议,这是继续做我的准备。
总结;
当我尝试不同的事情时,请忽略那些读为FALSE的单元格。
谢谢。
答案 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;当我复制公式时,单元格中没有显示。