【问题标题】:Function With False returned from Empty Cells从空单元格返回 False 的函数
【发布时间】:2020-07-12 09:47:35
【问题描述】:

我正在尝试创建一个函数,如果单元格日期自当前日期以来已超过一年或更长时间,则该函数将显示 True。

我用来让它工作的函数是=IF(DAYS360(H8,TODAY()) >= 258, TRUE)。

唯一的问题是,如果一个单元格是空的,它也会显示为 True。为了解决这个问题,我尝试这样做:=IF(DAYS360(H7,TODAY()) >= 258,TRUE(AND(H7 = "", FALSE)))

这并没有真正奏效,但如果日期在同一年之内,它似乎就奏效了。如果函数是去年的,但仍少于 365 天,则显示为 #N/A(True 的错误参数数,预期 0 个参数,但得到 1 个)

如果单元格为 365 天或更长时间,如何使单元格显示为 True,如果单元格为空或距单元格日期少于 365 天,如何使单元格显示为 False。上面显示的这种情况下的示例单元格日期将是 H7。

显示的所有单元格都使用函数=IF(DAYS360(H7,TODAY()) >= 258,TRUE(AND(H7 = "", FALSE)))

具有 N/A 值的单元格,具有上一年的日期值

具有假值的单元格,其日期值来自当年

具有 N/A 值和空单元格的单元格

 =IF(DAYS360(H8,TODAY()) >= 258, TRUE)
 =IF(DAYS360(H7,TODAY()) >= 258,TRUE(AND(H7 = "", FALSE)))

【问题讨论】:

  • 为什么是 258?一年不就360了吗?
  • 嗯,从技术上讲,这不是一年,它只是在实际一年之前提醒一下。

标签: date if-statement google-sheets google-sheets-formula array-formulas


【解决方案1】:

用途:

=IF(AND(H7<>"",DAYS360(H7,TODAY()) >= 258),TRUE)

但这可以缩短为:

=AND(H7<>"",DAYS360(H7,TODAY()) >= 258)

这将返回 TRUE/FALSE

实际上你不需要DAYS360,除非你想强制一个月30天:

=AND(H7<>"",TODAY()-H7>258)

【讨论】:

  • 非常感谢!这更有意义。
【解决方案2】:

这行得通吗?

=IF(H7="",FALSE,H7<=EDATE(TODAY(),-12))

我认为 EDATE([value],-12) 会比你用天数做的任何事情更好地获取一年前的日期。

【讨论】:

    【解决方案3】:

    在实际一年之前,这只是一个提示

    在这种情况下,您只需比较年份:

    =YEAR(A1)>YEAR(TODAY())
    

    对于数组公式:

    =INDEX(IF(A1:A="",,YEAR(A1:A)>YEAR(TODAY())))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多