答案是作为日期返回的,即使我把= int(在此之前。任何明显的原因?)
=YEAR(TODAY()-YEAR(J2))
其中J2是4/10/1939,答案是06/28/05。为什么这不仅仅是输出这个人的年龄?
答案 0 :(得分:2)
你没有把括号放在错误的地方吗?我怀疑你想要这个公式
=YEAR(TODAY())-YEAR(J2)
要确保将结果视为数字,请将结果单元格格式化为常规
....但是这并没有给出“年龄”,因为大多数人会理解它,因为它总是在1月1日而不是在生日那天递增。要获得准确的年龄,请尝试DATEDIF功能
=DATEDIF(J2,TODAY(),"y")
对于您今天将提供72但在生日时更改为73的示例,2012年4月10日
注意:DATEDIF在Excel中没有很好的文档记录,可能没有出现在你的“功能列表”中....但你只需在单元格中输入就可以使用它
答案 1 :(得分:0)
尝试=INT((TODAY()-J2)/365.25)
作为返回年龄
使用=year(today()-J2)
会返回年龄加上世纪(1900年),因此您只需添加-1900
,但上述解决方案可以更简单地使用
答案 2 :(得分:0)
这应该有效:
=INT(YEARFRAC(A1,TODAY()))
如果您在以前的同一个单元格中尝试此操作,则必须将单元格重新格式化为“常规”。这只是Excel自动映射的痛苦之一。
答案 3 :(得分:0)
你的公式应该是= YEAR(TODAY()) - YEAR(J2)。公式所在的单元格必须格式为General或Number才能显示正确的值。请注意,如果此人未在当年过生日,则不会给出适当的年龄。
这给出了更准确的年龄= INT((TODAY() - (B1))/ 365)