如果等于或大于今天的date,则显示月份的公式
这是我非常可怕的代码:
=IF((DATE(YEAR(A2),MONTH(A2)+1,DAY(A2)))>TODAY(),0,DATE(YEAR(A2),MONTH(A2)+1,DAY(A2)))
在单元格A2中,我从这个date开始:01/09/2015
我想要做的是在每行下行的时候增加月份,但是如果实际上是从今天开始的那个月,那么只显示该单元格中的date。
这将是预期的产出:
01 September 2015 01 October 2015 01 November 2015
我的主要问题是,我怎么得到的结果是空白,而不是显示0
。 我已经尝试了以下内容:
=IF((DATE(YEAR(A2),MONTH(A2)+1,DAY(A2)))>TODAY(),,DATE(YEAR(A2),MONTH(A2)+1,DAY(A2))) =IF((DATE(YEAR(A2),MONTH(A2)+1,DAY(A2)))>TODAY(),'',DATE(YEAR(A2),MONTH(A2)+1,DAY(A2))) =IF((DATE(YEAR(A2),MONTH(A2)+1,DAY(A2)))>TODAY(),"",DATE(YEAR(A2),MONTH(A2)+1,DAY(A2)))
这些都没有工作。
任何人都可以提出一个build议,作为奖金,看看是否有一个更聪明的方式来实现这一目标?
这是我创build的Excel文件示例 。
你的第三个选项将正常工作,使用空string在单元格中的空白。
IF(DATE(YEAR(A2),MONTH(A2)+1,DAY(A2))>TODAY(),"",DATE(YEAR(A2),MONTH(A2)+1,DAY(A2)))
此外,如果您将其复制到列中,最后如果前一行为空,则会出现错误。 为了防止显示#VALUE!
,您可以使用IFERROR()
函数,如下所示:
=IFERROR(IF(DATE(YEAR(A2),MONTH(A2)+1,DAY(A2))>TODAY(),"",DATE(YEAR(A2),MONTH(A2)+1,DAY(A2))),"")
如果您有Excel 2007或更高版本,则可以使用EDATE()
函数并显着缩短公式。 此function将指定的月份数添加到指定的date。 下面是使用EDATE()
函数的IFERROR()
示例:
=IFERROR(IF(EDATE(A2,1)>TODAY(),"",EDATE(A2,1)),"")