条件格式中单元格日期与TODAY()比较结果错误如何解决?
问题根本原因
你遇到的问题核心是B列存储的是文本格式的日期,并非Excel可识别的数值型日期序列:TODAY()返回的是代表日期的整数序列值,文本和数值做大小对比时逻辑不匹配,才会出现和预期不符的FALSE结果。
你可以先输入公式=ISNUMBER(B2)验证,如果返回FALSE即可确认是文本格式问题。
解决方法
方法1:批量转换为真实日期(推荐)
一次性修正B列格式,后续所有日期运算都不会出问题:
- 选中B列整列,点击顶部菜单栏「数据」→「分列」
- 前两个设置页直接点击「下一步」,第三个设置页的「列数据格式」选择「日期」,下拉选项选和你内容匹配的
DMY(日/月/年)格式,点击「完成」即可 - 转换完成后你原来的
=B2<TODAY()公式可直接正常使用
方法2:不改原单元格,直接调整条件格式公式
如果不想修改原单元格的存储格式,直接调整条件格式的判断公式即可:
把原公式替换为=DATEVALUE(TRIM(B2))<TODAY()
TRIM()函数会先清除单元格内容首尾可能存在的不可见空格DATEVALUE()函数会把符合格式的文本日期转换为对应的Excel日期序列值,再和TODAY()的结果对比就会返回正确的布尔值
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

