ARTICLE · 1117665
Excel函数|日期函数——算工龄、算账期、算到期日,教你一步到位
Excel函数|日期函数——算工龄、算账期、算到期日,教你一步到位做人事,要算员工工龄。做财务,要算账期到期日。做行政,要算合同还有几天到期。 这些活,用计算器算、翻日历数,又慢又容易错。但用Excel的日期函数,几秒钟出结果,数据变了自动更新。 今天讲四个最常用的日期函数:TODAY、DATEDIF、EDATE、EOMONTH。学会这四个,日常的日期计算基本全覆盖。 语法:=TODAY() 返回今天的日期。括号里什么都不用填。 核心特点:这个函数是动态的。今天打开表格显示今天的日期,明天打开自动变成明天的日期。不用手动改。 常用场景: 算“距今多少天”:=TODAY()-A2 算“还有几天到期”:=B2-TODAY() 做动态标题:="截至"&TEXT(TODAY(),"yyyy年mm月dd日")&"的销售数据" 注意:TODAY返回的是日期,不是文本。如果显示成一串数字(比如46248),把单元格格式改成日期格式就行。 语法:=DATEDIF(开始日期, 结束日期, 单位) 第三个参数“单位”决定算出来的是什么: "Y":整年数(算工龄、年龄) "M":整月数(算账期、月龄) "D":天数(算天数差) "YM":忽略年,算月数差 "MD":忽略年月,算天数差 "YD":忽略年,算天数差 =DATEDIF(A2, TODAY(), "Y") A2是入职日期,算从入职到今天有多少整年。每天打开表格自动更新。 =DATEDIF(出生日期, TODAY(), "Y") 和算工龄一模一样,只是把入职日期换成出生日期。 场景三:算账期月数 =DATEDIF(开始日期, 结束日期, "M") 算两个日期之间相差多少个月,财务算账期常用。 注意:DATEDIF是Excel的隐藏函数,输入时不会自动提示参数,但能用。WPS也支持。 语法:=EDATE(开始日期, 月数) 从开始日期往后推N个月,返回那一天的日期。月数填负数就是往前推。 场景一:算合同到期日 =EDATE(A2, 12) A2是合同签订日,往后推12个月,就是一年后的到期日。 场景二:算账期到期日 =EDATE(A2, 3) A2是开票日,往后推3个月,就是账期到期日。 场景三:算提前提醒日 =EDATE(A2, -1) 合同到期前一个月提醒,用负数往前推。 注意:EDATE返回的是日期序列号。如果显示成一串数字,把单元格格式改成日期即可。 语法:=EOMONTH(开始日期, 月数) 返回指定月份的最后一天。月数填0表示当月,填1表示下个月,填-1表示上个月。 场景一:算当月最后一天 =EOMONTH(TODAY(), 0) 返回本月最后一天。做月度报表时,用来标注“统计截止日期”。 场景二:算下个月最后一天 =EOMONTH(TODAY(), 1) 做预算、做计划时,算下个月月底是哪天。 场景三:算上个月最后一天 =EOMONTH(TODAY(), -1) 做上月汇总时,算上个月最后一天。 进阶用法:EOMONTH配合DAY函数,可以算出某个月有多少天: =DAY(EOMONTH(TODAY(), 0)) 返回本月总天数(28、29、30或31)。 场景:算员工工龄,精确到年月 =DATEDIF(A2, TODAY(), "Y")&"年"&DATEDIF(A2, TODAY(), "YM")&"个月" 比如“3年5个月”,比单纯的“3年”更精确。 场景:算合同到期前30天提醒 =IF(B2-TODAY()<=30, "即将到期", "正常") B2是到期日,如果距今不到30天,标注“即将到期”。 场景:算本月第一天和最后一天 本月第一天:=EOMONTH(TODAY(), -1)+1 本月最后一天:=EOMONTH(TODAY(), 0) 做月度统计时,自动生成统计区间。 翻车一:日期显示成一串数字 比如46248。这不是错误,是单元格格式问题。选中单元格,把格式改成“日期”即可。 翻车二:DATEDIF算出来是负数 开始日期晚于结束日期时,DATEDIF会报错或返回负数。检查两个日期的顺序。 翻车三:EDATE和EOMONTH结果不对 这两个函数返回的是日期序列号。如果单元格格式是“常规”,会显示数字。改成日期格式就正常了。 翻车四:日期是文本格式 如果日期是文本(比如“2026.01.01”),函数无法识别。需要先用DATE函数或分列转成真正的日期格式。 下次算工龄、算账期、算到期日,别再翻日历了。这四个函数几秒钟搞定,数据变了还自动更新。 觉得有用?点个「在看」支持一下吧!