合同是职场中经常会处理的文件之一,哪天到期?还有多少天到期?现在是已逾期还是快到期?这些情况,如果一一计算比较麻烦,今天我们来学习几个简单的方法来批量处理。
首先是合同到期日期,通常用EDATE函数,这个函数主要用于计算指定日期之前或之后若干个月的日期。
函数公式=EDATE(开始日期,月份数)
例如下图所示,要计算D2单元格的到期日期,这里我们要根据B列的合同签订日期,往后计算出合同的到期日期,所以要增加月份数。
先输入函数=EDATE,接着选中开始日期即B1的合同签订日期2001/5/8,再输入英文半角逗号,接着输入年限*12,等公式完成后视情况-1或者不-1。

一般来说,合同明确了有效期且到期当天仍有效(含头含尾),就不减1天;
如果合同当天生效,到期日是有效期最后一天(含头不含尾),就要减1天。
下图所示,我们需要减1天,公式则是=EDATE(B2,20*12)-1

然后我们可能会发现,生成的并不是日期,而是一串数字,没关系,别紧张,这并不是错误,而是Excel存储的日期,本来就是数字。
我们只要将这列数字选中,按快捷键Ctrl+1,或者单击鼠标右键,选择【设置单元格格式】→【数字】→【日期】,再选择合适的日期格式,点击【确定】即可。


接下来,我们计算一下合同到期天数,这里将运用到另一个函数TODAY,用于返回当前系数日期。
函数公式=TODAY()
括号内无参数,纯粹只是个括号。
这个计算比刚刚的还要简单,这个合同到期天数,就等于合同到期日期减去今天的日期。我们直接E2单元格输入公式=D2-TODAY()
注意:本文中所有的当天日期都是2026年3月31日。


合同到期天数已经全部算出来之后,我们发现有负数,这代表合同已经过期了。正数则代表合同到期的天数。
最后,我们来学习怎么设置合同状态,这就要用到我们之前学过的隐藏0值的IF函数EXCEL学习之路:化零为无!隐藏0值的4个小技巧(二),让系统自动判断合同是否到期的状态。
函数公式=IF(TODAY()>到期日单元格,"已逾期","未到期")
将下图公式设为=IF(TODAY()>D2,"已逾期",IF(TODAY()>=D2-30,"即将到期","未到期"))


IF函数是条件判断函数,满足条件时显示什么,不满足条件时显示什么。
上面的函数公式我们设了三个合同状态,所以用了两个IF函数。如果今天的日期大于合同日期,就显示已逾期。如果今天的日期大于或者等于签订日期往前推30天,即30天内即将到期,就显示即将到期,否则就显示未到期。
比如,我们将B8列的签订日期改为2006/4/17,那么我们就会发现,合同状态变成了即将到期,由此也验证了以上公式的正确性。
