条件格式的有效期少于TODAY(),而仅适用于大于

时间:2019-09-04 23:23:33

标签: excel conditional-formatting

条件格式不适用于小于TODAY()的日期,仅适用于大于TODAY()的日期。

我有一个带有两个VLOOKUPS的IF语句。如果单元格为空,则其中之一输出“未注册”。另一个,只需复制另一个电子表格中的数据即可。

=IF(VLOOKUP($A5,Table,@MATCH(D$3,Headings,0))=0,"Not 
Registered",VLOOKUP($A5,Table,@MATCH(D$3,Headings,0)))

常规格式设置为:

cell values >= TODAY() are green cell values < TODAY() are red cell values = "Not Registered" are yellow

我怀疑条件格式无法正确读取日期。每个日期单元格都格式化为长日期。

Table where date cells are output and conditional formatting settings

2 个答案:

答案 0 :(得分:0)

出现问题是因为A3为空。

enter image description here

更改规则以使用=Today()或在A3中填充所需的日期。

enter image description here

编辑1:如果这不适用于您,请检查应为红色的单元格的数据类型。如果这些不是真实的日期(而是文本),则它们将永远无法满足条件。确保所有看起来像日期的单元格实际上都包含日期(而不是文本)。

如果查找表将日期存储为文本,则可以在此处进行更改,因为Vlookup将返回相同的数据类型。

编辑2::选择一个单元格并更改其格式不会将文本转换为日期。您可以通过将日期的 format 更改为“常规”来测试日期是否真的是日期。如果这导致单元格显示一个数字,则它是真实日期。但是,如果单元格的外观没有变化,则值为文本,您需要使用其他方法。

一种选择是使用带有诸如=DateValue(A1)之类的公式的帮助列。复制帮助单元格,并将其作为值粘贴到原始单元格上,然后格式化为日期。

或者,在任何单元格中添加零,复制该单元格,然后选择所有可能是或不是日期的单元格,然后使用“选择性粘贴”>勾选“添加”>“确定”。这样会将存储为文本的日期转换回其内部存储号。然后将单元格格式化为日期。

或者,通过在VLookup公式周围包装一个DateValue,在Vlookup之后进行转换。

=DATEVALUE(VLOOKUP("a",A1:B1,2,0))

enter image description here

B1中的“日期”实际上是文本。 Vlookup将其作为文本返回,但是DateValue()然后将其转换为日期。如果这引发了错误,则日期文本与您希望日期显示的区域设置不一致。

答案 1 :(得分:0)

原因: 每当单元格按照今天小于规则通过时,计算机会将其读取为零,因为零小于今天,因此它将返回true。

解决方案: 在条件格式规则管理器上,尝试为未注册规则启用如果为真