Excel对比时间戳与昨日日期判断是否逾期的公式失效问题
问题核心原因
你遇到的问题本质是A列的datetime stamp为文本格式,不是Excel可识别的日期数值类型(Excel日期本质是1900年1月1日起的整数天数序列,时间为小数部分),才会出现所有公式异常的情况:
- 文本与日期数值比较时,Excel默认文本优先级高于所有数值,因此
A2<TODAY()-1永远返回假,始终输出「Within 24h」 INT(A2)、DATEVALUE(A2)报错是因为文本无法直接转数值,且DATEVALUE的解析规则和你当前A列的日期格式(dd/MM/yyyy)不匹配,识别失败
解决方法
方法1:批量转换A列为可识别日期格式(推荐)
操作步骤:
- 选中A列所有时间戳单元格
- 点击顶部菜单栏「数据」-「分列」
- 前两步直接点击「下一步」,到第三步的「列数据格式」选项,选择「日期」,下拉菜单选择和你A列匹配的
DMY(日/月/年)格式 - 点击「完成」,A列就会转为Excel可识别的日期数值
转换完成后你最开始的公式就可以正常运行:
=IF(A2<TODAY()-1,"Overdue","Within 24h")
方法2:公式直接转换文本日期
如果你不想修改源列格式,可以直接用公式拆分文本转成日期后比较,适用于格式为dd/MM/yyyy或带时间的dd/MM/yyyy HH:mm:ss的文本:
=IF(DATE(RIGHT(LEFT(A2,10),4),MID(LEFT(A2,10),4,2),LEFT(LEFT(A2,10),2)) < TODAY()-1, "Overdue", "Within 24h")
如果你的日期分隔符为-而非/,对应调整公式里的字符截取位置即可。
内容的提问来源于stack exchange,提问作者Fanny Tirta Sari
相关产品推荐
相关产品推荐

