![Excel、IF 和日期](https://linux22.com/image/1439567/Excel%E3%80%81IF%20%E5%92%8C%E6%97%A5%E6%9C%9F.png)
我有一份家庭预算,分为固定支出和可变支出。我希望仅在发生固定支出的月份期间或之后纳入这些支出。
使用以下可爱的公式就没有问题了(以一月为例):
=IF((MONTH(TODAY()))>=1,Jan!A15,0)
[其中 A15 = 我本月的固定成本]。
但是,问题是,如果我现在回头看看我的 2014 年预算,所有的固定支出都已回到零,因为我们现在又进入了一月(或更晚)。
我需要做的是告诉公式,如果晚于 2015 年 1 月(或任何给定年份),则使用 A15,否则为 0,但我不知道该怎么做。有人可以帮忙吗?
答案1
考虑:
=IF((TODAY()>DATE(2015,1,31)),Jan!A15,0)
毕竟,如果晚于 1 月,那就晚于 2015 年 1 月 31 日
答案2
不确定,但也许:
=IF(AND(YEAR(TODAY())>2014,MONTH(TODAY())>=1),Jan!A15,0)
答案3
如果您希望每年都这样,那么最好不必知道哪些是闰年。如果您0
在函数中使用日期DATE
,它会使用上个月的最后一天。您甚至可以使用 13 月份,Excel 会将其视为下一年的一月。
=IF(TODAY()>DATE(2015,2,0),Jan!A15,0)
=IF(TODAY()>DATE(2015,3,0),Feb!A15,0)
=IF(TODAY()>DATE(2015,4,0),Mar!A15,0)
...
=IF(TODAY()>DATE(2015,13,0),Dec!A15,0)
此外,如果您不必对年份值进行硬编码,那就太好了。我不知道您的工作表是如何设置的,但例如,假设 B 列的某个日期是 2015 年 1 月。在这种情况下,您可以使用
=IF(TODAY()>DATE(YEAR(Jan!B15),MONTH(Jan!B15)+1,0),Jan!A15,0)