减去窘境Excel 2007的日期

时间:2012-02-09 18:16:06

标签: excel

答案是作为日期返回的,即使我把= int(在此之前。任何明显的原因?)

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

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

4 个答案:

答案 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)