在Excel中用DATEDIF函数可精确计算年龄为“X岁Y个月”:=DATEDIF(A2,TODAY(),"y")&"岁"&DATEDIF(A2,TODAY(),"ym")&"个月",其中"ym"参数大小写敏感且不可加空格;若出生日期为文本格式,需用--SUBSTITUTE(A2,".","-")转为标准日期。

要在Excel中根据出生日期精确计算年龄到“X岁Y个月”,必须避开简单年份相减的陷阱——比如2025年1月出生的人,到2026年2月其实只满1岁1个月,但YEAR(TODAY())-YEAR(出生日期)会直接返回2,多算一岁。
用DATEDIF嵌套公式一步得出“X岁Y个月”
在目标单元格输入:=DATEDIF(A2,TODAY(),"y")&"岁"&DATEDIF(A2,TODAY(),"ym")&"个月",其中A2为出生日期所在单元格(如2000-08-15)。
按Enter后立即显示类似“25岁9个月”的结果。这里【"ym"参数不可写成"m"或"YM",大小写敏感,且必须紧挨逗号无空格】,否则返回#NUM!错误。
公式原理:第一个DATEDIF取整年,第二个DATEDIF在忽略年份的前提下只算剩余月份,天然规避生日未到就多算的问题。
如果出生日期是文本格式(如“2000.08.15”或“2000/08/15”)
方法一:先转为标准日期再计算
在空白列(如B2)输入公式:=--SUBSTITUTE(A2,".","-"),按Enter;若原始是斜杠分隔(如2000/08/15),此步可跳过,直接用B2参与下一步计算。
方法二:一步到位不新增列
把原公式改为:=DATEDIF(--SUBSTITUTE(A2,".","-"),TODAY(),"y")&"岁"&DATEDIF(--SUBSTITUTE(A2,".","-"),TODAY(),"ym")&"个月"。
注意:SUBSTITUTE后加--是强制转为数值型日期的关键,漏掉会导致DATEDIF无法识别而报错。
批量应用并防止显示“0岁X个月”
第一步:选中已写出公式的首个单元格(如C2)
第二步:将鼠标移至单元格右下角,待光标变成实心十字→向下拖拽至所需行数
第三步:检查是否有“0岁0个月”——这说明A列对应单元格为空或含非法字符,需清空或修正该行数据
第四步:全选结果列→右键→“设置单元格格式”→“数字”选项卡→选择“常规”→确定。避免因格式残留导致粘贴时变科学计数法。


















