1
场景背景
合同台账里记着签订日期和期限,需要一眼看出哪些快到期了。做法分两层:先用 EDATE 算出到期日、用 TODAY 算剩余天数;再用 IF/IFS 打上「已到期 / 即将到期 / 正常」标签。想要颜色,把标签列做成条件格式即可。
2
数据结构
共 1 个 Sheet3
解决步骤
1
第 1 步:算出到期日
签订日期 + 期限月数,EDATE 会自动处理大小月和月末对齐。
=EDATE(C2,D2)
2
第 2 步:算剩余天数
到期日减今天,负数表示已经过期。单元格格式设成常规或数字,别设日期。
=E2-TODAY()
3
第 3 步:用 IFS 打标签
小于 0 已到期、小于等于 30 即将到期、其余正常。条件从严到宽。
=IFS(G2<0,"已到期",G2<=30,"即将到期",TRUE,"正常")
4
第 4 步:加条件格式变色
选中整行 → 开始 → 条件格式 → 新建规则 → 使用公式:=$H2="即将到期",设成浅红底;"已到期"设成深红底加白字。
4
完整公式与逐段拆解
=IFS(G2<0,"已到期",G2<=30,"即将到期",TRUE,"正常")
G2<0,"已到期"剩余天数为负,说明已经过期G2<=30,"即将到期"一个月内到期,需要提前处理TRUE,"正常"兜底条件,永远成立,防止 #N/A| A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
| 1 | 合同号 | 客户 | 签订日期 | 期限(月) | 到期日 | 金额 | 剩余天数 | 状态 |
| 2 | HT-001 | 甲公司 | 2024-01-31 | 12 | 2025-01-31 | 120000 | -636 | 已到期 |
| 3 | HT-002 | 乙公司 | 2024-06-15 | 6 | 2024-12-15 | 56000 | -683 | 已到期 |
| 4 | HT-003 | 丙公司 | 2023-12-01 | 24 | 2025-12-01 | 240000 | -332 | 已到期 |
| 5 | HT-004 | 丁公司 | 2024-03-20 | 12 | 2025-03-20 | 88000 | -588 | 已到期 |
当前表:合同台账 · 公式单元格 H2 · 绿色底为公式,蓝色底为动态数组溢出结果
台账 H 列自动标出状态,G 列是剩余天数
6
数据流向
数据流向演示1 / 4
来源合同台账!C2:D2
➜
去向EDATE
签订日期 + 期限
来源EDATE
→
去向E2
得到到期日
来源E2-TODAY()
→
去向G2
减今天得剩余天数
来源G2
→
去向H2
IFS 分级打标签
跟着高亮一步步看数据怎么流动
7
注意事项与坑
!剩余天数列被误设成日期格式,会显示成 1900 年,改成常规即可。
!TODAY() 每天变,文件要每天打开才会更新提醒。
!IFS 需要 Excel 2019+,老版本用嵌套 IF。
8