excel - 如果等于或大于今天的日期则显示月份的公式

标签 excel date excel-formula

这是我非常糟糕的代码:

=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/

相关文章:

excel - 如何从excel单元格中的多行字符串中提取电子邮件和姓名

c# - 您可以在 Excel 中创建应用程序吗?

bash - 不带标点符号显示当前日期和时间

excel - 如何使用 OpenXML Format SDK 从电子表格读取数据?

javascript - 在javascript中将字符串日期转换为日期时间,如何使用dateformat

c++ - 使用 CIN 提示并接收日期 "MM/DD/YYYY",忽略 "/"字符? (在 C++ 中)

excel - 如何通过将 N/A 值视为零来执行多个 VLOOKUP 值的求和?

c# - 如何以编程方式验证 Excel 表达式

python - 如何检查Excel工作表中列中的每个单元格?

mysql - 以带有标题的 CSV 格式导出 SQL 表