这是我非常糟糕的代码:
=IF((DATE(YEAR(A2),MONTH(A2)+1,DAY(A2)))>TODAY(),0,DATE(YEAR(A2),MONTH(A2)+1,DAY(A2)))
在单元格 A2 中,我从此日期开始:01/09/2015
我想要做的是在每一行中增加月份,但如果我实际上在或超过今天的日期,则仅在该单元格中显示日期。
这将是预期的输出:
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)))
这些都不起作用。
任何人都可以提出建议,作为奖励,看看是否有更聪明的方法来实现这一目标?
最佳答案
这是一个Example Excel File我创建了。
您的第三个选项可以很好地使用空字符串在单元格中添加空白。
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()
发挥作用并显着缩短您的配方。此函数将指定的月数添加到指定的日期。这是IFERROR()
使用 EDATE()
的示例功能:
=IFERROR(IF(EDATE(A2,1)>TODAY(),"",EDATE(A2,1)),"")
关于excel - 如果等于或大于今天的日期则显示月份的公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33783681/