可用datedif函数组合实现司龄“x年y个月”显示:先规范入职日期格式为excel标准日期,再用datedif(b2,today(),"y")取整年数、datedif(b2,today(),"ym")取剩余月数,最后拼接为“x年y个月”格式,并批量填充验证异常值。

如果您需要在Excel中计算员工从入职日期到当前日期的司龄,并以“X年Y个月”的形式精确显示,则可以借助DATEDIF函数的多段组合实现。以下是完成该任务的具体操作步骤:
一、准备基础数据并设置日期格式
DATEDIF函数要求起始日期和结束日期均为合法的Excel日期序列值,因此需确保入职日期单元格为标准日期格式,而非文本。若日期显示异常或参与计算返回错误,极可能源于格式识别失败。
1、选中录入入职日期的列(例如B列),右键选择“设置单元格格式”。
2、在“数字”选项卡中选择“日期”,右侧预览框确认显示为“2020/3/15”类样式。
3、点击“确定”完成格式设定。
二、构建DATEDIF年份部分并处理零年情形
使用DATEDIF函数第一个参数为入职日期,第二个参数为TODAY(),第三个参数设为"y"可获取整年数;但当不足一年时直接返回0,需保留该结果用于后续拼接,不可省略或替换为其他逻辑。
1、在司龄显示列(例如C2)输入公式:=DATEDIF(B2,TODAY(),"y")。
2、按Enter确认,该单元格将显示完整年份数(如“3”表示满3年)。
三、构建DATEDIF月份部分并消除跨年干扰
仅用"ym"参数可跳过整年部分,直接计算剩余月数,该参数自动忽略年份差异,专用于提取“年余月”,避免手动减法导致负值或溢出。
1、在相邻辅助列(例如D2)输入公式:=DATEDIF(B2,TODAY(),"ym")。
2、按Enter确认,该单元格将显示超出整年的额外月份数(如“5”表示满3年又5个月)。
四、组合年与月并添加单位字符
将年份结果与月份结果拼接,中间插入“年”“个月”文字,形成自然语言表达;需注意对0年情形保留“0年”,避免缺失主语导致语义断裂。
1、在最终司龄列(例如C2)输入完整公式:=DATEDIF(B2,TODAY(),"y")&"年"&DATEDIF(B2,TODAY(),"ym")&"个月"。
2、按Enter确认,结果即时显示为“3年5个月”格式。
五、批量填充并验证异常日期响应
公式支持向下拖拽自动适配行引用,但需特别关注入职日期为空或早于1900年1月1日的情形,此类输入将触发#NUM!错误,必须前置筛查。
1、选中已写入公式的单元格(如C2),将鼠标移至右下角出现实心“+”号后双击,自动填充至数据末行。
2、检查是否存在#NUM!错误值,若有,则定位对应B列单元格,确认其是否为空或含非法字符。










