Excel日期计算太头疼?DATEDIF隐藏函数,算工龄算天数神器
计算员工工龄、项目周期、合同期限的时候,用普通减法往往不准确,当下就跟你说说,用Excel里的隐藏神器DATEDIF函数, 能够轻松算出精确的年月日差值
DATEDIF是什么,为什么说它是隐藏函数
DATEDIF是Excel非常神奇的函数之一,能够精准算出两个日期之间相差多少年、多少月、多少天, 它被叫做隐藏函数,是因为在Excel的函数列表里找不到它,但是输入之后完全可以正常使用
这个函数特别适合HR计算工龄、财务计算账期、项目经理计算工期。学会它,日期计算就不再是麻烦事,
基础用法,计算工作年限
要是A2是入职日期2020/3/15,B2是现在的日期, 你想要算出工作了几年,
公式写法
=DATEDIF(A2,B2,Y
在这里,A2表示开始日期,B2表示结束日期,Y就是用来返回完整的年数, 比如说,要是工作时长是5年零8个月,这个公式就会返回5。
要把小窍门提醒一下,开始日期得早于结束日期, 不然就会出现报错情况,要是想要用今天的日期,那就可以用TODAY()函数来替换B2。
有六种参数组合,能够满足所有需求
DATEDIF的第三个参数用来决定计算方式,一共有6种
1.Y-完整年数
=DATEDIF(A2,B2,Y
从2020/3/15到2026/3/29,返回6(年
2.M-完整月数
=DATEDIF(A2,B2,M
返回72(月
3.D-总天数
=DATEDIF(A2,B2,D),会返回2206天,4
YM-不满一年的月数,=DATEDIF(A2, B2,YM),会返回0(也就是6年零0个月的0个月部分),5.
MD-不满一月的天数,=DATEDIF(A2,B2,MD),会返回14(从15号到29号的天数), 6.
YD-不满一年的天数,=DATEDIF(A2,B2, YD),会返回14(是忽略年份差别,只看月日差的情况),实战运用
, 显示完整工龄,在人力资源系统之中,我们一般要显示5年3个月15天这样的完整工龄格式,
能够这样来组合
=DATEDIF(A2,TODAY(),Y)&年&DATEDIF(A2,TODAY(),YM)&个月&DATEDIF(A2,TODAY(), MD)&天
这个公式,是分成三个部分来进行计算的,首先是算出完整的年数, 然后算出剩下的月数,最后算出剩下的天数,再用&符号把它们连接到一起。
比如说吧,要是员工在2020年3月15号入职,而现在是2026年3月29号,那么显示出来的结果就是6年0个月14天,特别直观, 💪
有一个小窍门得跟你说一下,TODAY()函数会自己更新成当天的日期,每次打开表格都会重新计算, 要是想要固定某个日期的话,直接写上具体日期或者引用单元格就行。
计算合同剩余天数
假设你要管理好几个项目合同,你得提前知道哪些合同快要到期, A列是合同开始日期,B列是合同结束日期,
计算剩余天数
=DATEDIF(TODAY(),B2,D
要是B2是2026/5/30, 而当下是2026/3/29,那么公式返回62天,这就是说合同还剩下62天到期。
进阶玩法-加入预警提醒
结合IF函数,当剩余天数少于30天时会显示⚠️即将到期
=IF(DATEDIF(TODAY(),B2,D)<30,⚠️即将到期,正常,
这样子,在合同列表里就能马上看出哪些得重点留意
常见错误和解决方案
1.#NUM,错误,开始日期比结束日期晚,你得检查日期顺序, 要保证第一个参数早于第二个参数,
2.#VALUE,错误, 单元格不是日期格式,要保证A2和B2都是标准日期格式,不能是文本
3.参数大小写, Y得用英文双引号,而且得是大写的,要是写成y或者用中文引号就都会报错
4.MD参数有bug,在某些特殊日期组合下,MD可能会返回错误结果, 要是碰到异常情况,建议用别的办法来计算
—
当下来练习,创建一个员工表, 在A列填入姓名,在B列填入入职日期,在C列使用DATEDIF来计算每个人完整的工龄,以X年X个月X天的格式显示
得记住,DATEDIF虽是一个隐藏函数, 但功能强大还挺准确,学会它,日期计算的问题就都能解决
每学会一个函数,就离成为Excel高手更近一步,要相信自己,动手去试试, 你肯定能行🌟
夜雨聆风