Excel条件格式按日期变色:临近到期自动提醒
用条件格式的公式规则,让Excel里的到期日期在逾期时变红、临近到期时变橙,打开表格就能看到需要处理的事项。文中给出可直接套用的公式、设置步骤和常见失效原因。
如果你负责一张合同台账、项目任务表或证照清单,怕的是某个到期日悄悄过去才被发现。Excel 的条件格式可以让到期日期自己"报警":已经逾期的变成红色,还有几天到期的变成橙色,不用每次手动翻找。
这篇文章写给经常维护日期表格的人。读完你会知道怎么用公式规则实现按日期变色,怎样让已完成的事项不再误报,以及为什么有时颜色不出现。下面的例子以一张任务表为准,日期在 C 列,状态在 D 列,数据从第 2 行开始。
按日期变色用哪种规则?一句话结论
按日期变色稳妥的做法是用"使用公式确定要设置格式的单元格",把判断条件写成公式,再分别为逾期和临近到期各建一条规则。
| 你的情况 | 推荐做法 | 原因 |
|---|---|---|
| 只想让过期日期变色 | 一条公式规则:日期小于 TODAY() | 设置简单,不需要额外判断 |
| 既要看逾期,也要看快到期 | 两条公式规则,分别设置不同颜色 | 颜色区分开,优先级容易控制 |
| 表里有"已完成"之类的状态列 | 在公式里加入状态判断 | 已办结的事项不会一直显示为逾期 |
| 日期分散在多列或多张表 | 每列单独设规则,或用同一公式套用到整个区域 | 避免漏掉某一列的提醒 |
场景:一张到期事项台账
假设你负责一份 12 页的合同台账,或者一张 50 行左右的项目任务表。C 列是"到期日",D 列是"状态",取值为"进行中"或"已完成"。你希望打开表格时,马上看到哪些已经超期,哪些一周内要到期。
如果只靠人工逐行看日期,行数一多就容易遗漏。而且很多人会把日期设成文本格式,结果条件格式完全不生效,所以在动手前尽量先确认日期列确实是日期值。
完整流程
- 选中到期日期所在的列,例如 C2:C200。选区从第 2 行开始,表头不要包含在内。
- 切换到开始选项卡,找到条件格式,新建一条规则,类型选择使用公式确定要设置格式的单元格。
- 在公式输入框中输入逾期判断公式:
=AND(LEN($C2)>0,NOT($D2="已完成"),TODAY()>$C2)。公式里的 C 列要写成$C2,列锁定、行相对,这样对整个选区才会正确套用。 - 设置格式时把填充色设为红色或浅红,确定保存这条规则。
- 再次新建一条公式规则,输入临近到期公式:
=AND(LEN($C2)>0,NOT($D2="已完成"),$C2>=TODAY(),TODAY()+7>=$C2),填充色设为橙色。这里的 7 表示未来 7 天内,可以根据你的提醒周期改成其他天数。 - 在规则管理界面检查两条规则的适用范围是否都是 C2:C200,并调整顺序,让逾期规则排在前面。
- 输入几个测试日期,例如昨天、今天、三天后和一个月后的日期,确认颜色符合预期。测试完成后再删除测试数据。
容易出问题的地方
日期看起来正常,颜色却不出现。 常见原因是日期其实是文本。单元格左上角若有绿色小三角,或者日期靠左对齐,多半是文本。可以选中该列,用数据分列或文本转日期的功能转换成真正的日期,再测试规则。
已完成的事项仍然显示为红色。 这是因为公式里没有排除状态列。检查公式中是否包含NOT($D2="已完成"),并确认状态列的文字与公式里写的完全一致,包括中文标点和空格。
两种颜色互相覆盖。 当一个日期同时满足逾期和临近到期时,只会显示优先级高的那条规则的格式。逾期条件本身不会满足临近到期,所以两者通常不冲突,但如果你写的公式条件重叠,就要在规则管理界面调整顺序。
打开表格后颜色没有更新。 TODAY()会在表格重新计算时更新,所以颜色会随日期自动变化。如果你长时间不关闭文件,可以按一次 F9,或者重新打开文件,让结果刷新。
条件格式不会主动提醒。 它只能改变单元格的颜色,不会弹出通知,也不会发送邮件。如果事项很重要,建议每天或每周固定打开一次台账,或者把超期数量用公式统计在表格顶部,方便快速查看。
区域范围写得太短。 新增的行如果超出了 C2:C200,就不会被变色。可以把区域扩大到一个明显超出实际数据的范围,或者把数据区域转换为表格,让规则随新增行自动扩展。
🎯 哪种做法适合你?
如果你只需要知道哪些事项已经超期
只建一条逾期规则,公式里比较日期与 TODAY()即可,设置快,也不容易出错。
如果你希望提前几天得到预警
增加第二条临近到期规则,把窗口设为 3 天、7 天或 30 天,并使用与逾期不同的颜色。
如果表格里有已完成、已取消之类的状态
一定要在公式中排除这些状态,否则已经办结的事项会一直显示为超期,提醒就失去了意义。
如果日期来自其他系统导出的文件
先检查日期是否为真正的日期值,再设置规则。从网页或其他软件复制过来的日期,经常带着文本格式,需要先转换。
❓ 常见问题(FAQ)
1. 条件格式可以按日期自动变色吗?
可以。只要日期是真正的日期值,并用公式把它和 TODAY()做比较,颜色就会随着当天日期自动变化,不需要手动修改。
2. TODAY()会一直更新吗?
表格打开或重新计算时会更新。如果文件长时间未关闭,按 F9 刷新,或者重新打开文件即可。
3. 能不能让到期提醒发到手机或邮箱?
条件格式本身做不到。它只改变单元格的颜色,要通知别人需要借助其他提醒方式,例如日历软件或定期发送的报表。
4. 我的日期是从网页复制来的,颜色不生效怎么办?
这类日期通常是文本。可以用数据分列或文本转日期的方法转换,再检查规则是否生效。
5. 超期事项很多,颜色太乱怎么办?
可以只保留逾期这一种醒目的颜色,临近到期用较浅的颜色,或者在表格顶部用公式统计超期数量,减少依赖颜色判断的次数。
📝 总结
用公式规则设置按日期变色,关键在于三点:确认日期是真正的日期值,在公式中排除已完成的事项,并把逾期与临近到期分成两条规则。设置完成后,打开表格就能看到需要优先处理的到期事项。


