excel算年龄最靠谱的公式就是datedif,最常用的写法是 =datedif(出生日期,截止日期,"y")。要是用这个公式算出来的年龄不对,基本不是函数出问题,要么是出生日期不是excel认的标准日期,要么是截止日期选得不对,要么就是直接用两个日期的天数差除以365,碰上闰年就出误差。
先确认两列都是标准日期
先点击选择出生日期列和放截止日期的列,确认单元格里存的是Excel能识别的日期,不是看起来像日期的纯文本。比如出生日期存在A2,截止日期存在B2,年龄结果打算放在C2。要是日期在单元格里靠左对齐、左上角带小绿角,或者改日期格式完全没反应,得先把这种文本格式的日期转成标准日期,再往下算。

插入DATEDIF函数计算整岁
点击你要放年龄结果的单元格,输入 =DATEDIF(A2,B2,"Y")。这里A2对应出生日期,B2对应截止日期,最后的 "Y" 意思是只返回满了的完整年份,也就是咱们平时说的周岁。要是想直接按当天日期算,不用单独填B2,直接把B2换成 TODAY() 就行,整句公式就是 =DATEDIF(A2,TODAY(),"Y")。

参数别把Y写成YM或MD
设置函数参数的时候,开始日期选择出生日期,终止日期选择截止日期,比较单位一定要填 "Y"。要是手滑填成 "YM",Excel算出来的是扣掉整年之后剩的月份数;填成 "MD",算的是扣掉整月之后剩的天数,出来的结果当然不可能是正常年龄。

公式显示不对先查这几处
要是算出来的年龄比实际大一岁,先检查截止日期是不是选到了未来的日子;要是结果直接变成了一串奇怪的日期,选中结果列把单元格格式改成「常规」或者「数值」就好;要是公式直接报错,大概率是开始的出生日期比截止日期还晚,或者之前的文本日期没转成功。别用 =(TODAY()-A2)/365 这种粗略算法,碰到闰年或者当年生日还没到的情况,结果很容易不准。
批量算全列年龄的话,先把第一行的公式调试对,再往下拉填充就行。年龄这个结果看着简单,只要源日期格式乱了、参数单位选错,整列的结果全错;先把日期列整理干净,再用DATEDIF算周岁,结果稳得多。











