条件格式不适用于小于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
我怀疑条件格式无法正确读取日期。每个日期单元格都格式化为长日期。
答案 0 :(得分:0)
出现问题是因为A3为空。
更改规则以使用=Today()
或在A3中填充所需的日期。
编辑1:如果这不适用于您,请检查应为红色的单元格的数据类型。如果这些不是真实的日期(而是文本),则它们将永远无法满足条件。确保所有看起来像日期的单元格实际上都包含日期(而不是文本)。
如果查找表将日期存储为文本,则可以在此处进行更改,因为Vlookup将返回相同的数据类型。
编辑2::选择一个单元格并更改其格式不会将文本转换为日期。您可以通过将日期的 format 更改为“常规”来测试日期是否真的是日期。如果这导致单元格显示一个数字,则它是真实日期。但是,如果单元格的外观没有变化,则值为文本,您需要使用其他方法。
一种选择是使用带有诸如=DateValue(A1)
之类的公式的帮助列。复制帮助单元格,并将其作为值粘贴到原始单元格上,然后格式化为日期。
或者,在任何单元格中添加零,复制该单元格,然后选择所有可能是或不是日期的单元格,然后使用“选择性粘贴”>勾选“添加”>“确定”。这样会将存储为文本的日期转换回其内部存储号。然后将单元格格式化为日期。
或者,通过在VLookup公式周围包装一个DateValue,在Vlookup之后进行转换。
=DATEVALUE(VLOOKUP("a",A1:B1,2,0))
B1中的“日期”实际上是文本。 Vlookup将其作为文本返回,但是DateValue()然后将其转换为日期。如果这引发了错误,则日期文本与您希望日期显示的区域设置不一致。
答案 1 :(得分:0)
原因: 每当单元格按照今天小于规则通过时,计算机会将其读取为零,因为零小于今天,因此它将返回true。
解决方案: 在条件格式规则管理器上,尝试为未注册规则启用如果为真。