【问题标题】:IF formula to compare a date with current date and return resultIF公式将日期与当前日期进行比较并返回结果
【发布时间】:2012-08-31 22:24:45
【问题描述】:

我正在寻找一个公式,它允许我查看一个单元格并检查它是否大于或等于今天的日期并返回一个措辞结果,例如“过期”。如果为空则返回另一个单词,或者什么都不返回。

我尝试将结果从源单元格 (O10) 复制到另一个单元格 (Y10) 并使用 if 语句,但这似乎过于费力 - 必须有一种方法可以从源单元格中读取信息?见下文。当单元格为空白时,它也会返回过期:(

=IF(O10>Y10,"OVERDUE","NOT DUE")

【问题讨论】:

标签: excel date if-statement compare


【解决方案1】:

您可以在要查看OverdueNot due结果的单元格中输入以下公式:

=IF(ISBLANK(O10),"",IF(O10<TODAY(),"Overdue","Not due"))

此公式首先测试源单元格是否为空白。如果是,则结果单元格将填充空字符串。如果源不是空白,则公式会测试源单元格中的日期是否早于当天。如果是,则将该值设置为Overdue,否则设置为Not due

【讨论】:

  • 不错。只是为了好玩,这将添加让您知道 O10 是否实际上是文本而不是可能是日期的数字,或者该值是否无效。 =IF(ISERROR(O10),"Invalid Value",IF(ISTEXT(O10),"Not a date",IF(ISBLANK(O10),"",IF(O10&lt;TODAY(),"Overdue","Not due"))))
【解决方案2】:

我认为这将涵盖 O10 中的任何可能场景:

=IF(ISBLANK(O10),"",IF(O10&lt;TODAY(),IF(TODAY()-O10&lt;&gt;1,CONCATENATE("Due in ",TEXT(TODAY()-O10,"d")," days"),CONCATENATE("Due in ",TEXT(TODAY()-O10,"d")," day")),IF(O10=TODAY(),"Due Today","Overdue")))

对于今天之前的日期,它会告诉您该项目的到期天数。如果 O10 = 今天,那么它将显示“今天到期”。今天过去的任何事情都会过期。最后,如果它是空白的,则单元格也将显示为空白。让我知道你的想法!

【讨论】:

    【解决方案3】:

    布莱克提供的公式似乎对我不起作用。对于过去的日期,它会在 xx 天后返回,而对于未来的日期,它会过期返回。此外,它只会逾期 15 天返回,而实际上它可能是 30、60 90+。

    我创建了这个,它似乎可以工作,并提供“在 xx 天内到期”、“逾期 xx 天”和“今天到期”。

    =IF(ISBLANK(O10),"",IF(DAYS(TODAY(),O10)<0,CONCATENATE("Due in ",-DAYS(TODAY(),O10)," Days"),IF(DAYS(TODAY(),O10)>0,CONCATENATE("Overdue ",DAYS(TODAY(),O10)," Days"),"Due Today")))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多