用DATEDIF函数结合TODAY()可自动计算精确年龄:=DATEDIF(A2,TODAY(),"Y")&"岁"&DATEDIF(A2,TODAY(),"YM")&"个月",需确保A2为有效过去日期、Excel设为自动重算且单元格格式为常规或数值。

需要根据员工出生日期自动算出当前年龄,还要精确到月数且每天打开表格都自动刷新,不能手动改日期也不能每年重设公式。
用DATEDIF函数直接算整月数
在目标单元格输入公式:=DATEDIF(A2,TODAY(),"M"),其中A2是出生日期所在单元格。
这个公式返回从出生日到今天之间的完整月份数,比如1990年3月15日出生的人,在2026年5月30日会显示434个月——它不四舍五入,只取整月部分。
注意:如果A2为空或输入了未来日期,公式会返回#NUM!错误,必须确保出生日期早于今天。
组合年+月显示“X岁Y个月”格式
方法一:分段拼接
输入公式:=DATEDIF(A2,TODAY(),"Y")&"岁"&DATEDIF(A2,TODAY(),"YM")&"个月"。
这里用了两个DATEDIF:第一个取整年,第二个在忽略年份的前提下取剩余整月数。“YM”参数很关键,它能避开跨年时月份计算错乱的问题,比如2025年12月到2026年2月,直接减月份会得-10,而YM会正确返回2。
方法二:一步到位带单位
输入公式:=TEXT(DATEDIF(A2,TODAY(),"Y"),"0")&"岁"&TEXT(DATEDIF(A2,TODAY(),"YM"),"0")&"个月"。
加TEXT是为了防止结果为0时显示成“0岁0个月”变成“岁个月”,但其实不加TEXT也能用,只是视觉上更干净。
处理只有年月没有具体日期的情况
第一步:把“1995.08”这类文本转成可计算的日期
在辅助列(如B2)输入:=DATE(LEFT(A2,4),MID(A2,6,2),1)。
第二步:用这个生成的日期套DATEDIF
在C2输入:=DATEDIF(B2,TODAY(),"Y")&"岁"&DATEDIF(B2,TODAY(),"YM")&"个月"。
为什么非得补上“1号”?因为Excel要求日期必须有日,否则DATEDIF无法识别;补1号是最稳妥的选择,不会影响年月计算逻辑。如果原始数据里有“1995.08.15”这种带日但用小数点分隔的,先用SUBSTITUTE替换掉小数点再转日期。
确保每天打开都自动更新的关键设置
第一步:确认Excel计算模式为自动
点击【文件】→【选项】→【公式】→勾选【自动重算】。
第二步:检查TODAY()是否生效
在任意空白单元格输入=TODAY(),回车后应显示2026/5/30(即当前系统日期),若显示不变,说明计算被手动暂停了。
第三步:避免单元格格式干扰
所有含TODAY()或DATEDIF的单元格,右键→【设置单元格格式】→【数字】→选【常规】或【数值】,不要设成文本格式,否则公式会变成纯字符串不运算。











