减去困扰Excel 2007的date

答案是作为一个date返回,即使我把= int(在这之前。任何明显的原因为什么?

=YEAR(TODAY()-YEAR(J2)) 

J2是4/10/1939,答案是06/28/05。 为什么这不是简单地输出这个人的年龄?

尝试=INT((TODAY()-J2)/365.25)作为您的公式返回年龄

使用=year(today()-J2)将返回年龄加上世纪(1900年),所以你可以从它附加-1900 ,但上述解决scheme的工作更简单

你不把括号放在错误的地方吗? 我怀疑你想要这个公式

=YEAR(TODAY())-YEAR(J2)

为了确保你看到的结果作为一个数字格式结果单元格一般

….但是这并不能给“年龄”,因为大多数人会理解它,因为它总是在1月1日增加,而不是在生日那天增加。 多年来获得准确的年龄尝试DATEDIFfunction

=DATEDIF(J2,TODAY(),"y")

对于你的例子,今天会给72,但在生日,2012年4月10日更改为73

注意:DATEDIF在Excel中没有很好的logging,可能不会出现在你的“函数列表”中,但你可以通过在单元格中input它来使用它

这应该工作:

 =INT(YEARFRAC(A1,TODAY())) 

如果您在同一个单元格中尝试此操作,则必须将该单元格重新格式化为“常规”。 这只是Excel autoformatting的一个难题。

你的公式应该= YEAR(TODAY()) – YEAR(J2)。 公式所在的单元格必须格式化为General或Number,以显示正确的值。 请注意,如果这个人在当年没有过生日,那么这个年龄就没有适当的年龄。

这给出了更准确的年龄= INT((TODAY() – (B1))/ 365)