【发布时间】:2021-05-05 16:26:38
【问题描述】:
我试图找出问题所在以及如何更改此功能,该功能去年似乎运行良好,但现在却不行。
=IF(YEAR(D31)=2021,"已测试",IF(E31-TODAY()
E31 是 =D31+91 所以它给出的日期是 10-05-2021
目的是表明,如果测试日即将到来,则 G 列应显示“本月需要测试”,这应该显示,但显示的是“已测试”。有什么想法吗?
【问题讨论】:
标签: excel if-statement formula
我试图找出问题所在以及如何更改此功能,该功能去年似乎运行良好,但现在却不行。
=IF(YEAR(D31)=2021,"已测试",IF(E31-TODAY()
E31 是 =D31+91 所以它给出的日期是 10-05-2021
目的是表明,如果测试日即将到来,则 G 列应显示“本月需要测试”,这应该显示,但显示的是“已测试”。有什么想法吗?
【问题讨论】:
标签: excel if-statement formula
像这样的嵌套 IF 函数将返回它找到的第一个真值。这条语句的写法,首先发现被检查的日期是2021年,因此忽略了其他检查(因为它们在外部IF函数的value_if_false部分)。
想想你想要检查这些的顺序——如果一个单元格可以满足多个条件,它应该显示哪一个?我猜你首先想知道它是否过期,然后是否需要在本月,然后是否在 2021 年(因为这是测试结果重叠的顺序)。
您可以重新构造查询以使嵌套测试位于 value_if_true 部分中,也可以颠倒嵌套顺序重新编写语句。
所以,要么这样:
=IF(YEAR(D31)=2021,IF(E31-TODAY()<30,IF(E31-TODAY()<0, "Testing Date expired", "Testing required this month"),"Tested"),"")
或者像这样:
=IF(E31-TODAY()<0, "Testing Date Expired", IF(E31-TODAY()<30, "Testing Required this Month", IF(Year(D31) = 2021, "Tested", "")))
【讨论】: