如果等于或大于今天的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)),"")