在 Excel 2010 中,我使用公式=(TODAY() - 05/31/1996) / 365.25
计算今天(2013 年 5 月 30 日)和 1996 年 5 月 31 日之间的年龄。我期望得到接近以下数字17.00,但我明白113.41。如何使用单个公式来计算两个日期之间的年数差?我已将单元格格式化为具有 2 位小数精度的数字。
我正在使用基于此的公式类似问题。
答案1
您需要将写入的日期强制转换为实际日期。有几种方法。已概述了使用 DateValue() 函数。另一种方法是:
=(TODAY()-("31/5/1996"+0))/365.25
此公式适用于日期以 DMY 表示的区域设置。如果您的区域设置使用 MDY,请尝试
=(TODAY()-("5/31/1996"+0))/365.25
日期文本将通过添加零强制转换为数字,然后进行进一步处理。
当然,如果你将日期输入到另一个单元格,然后只需将公式引用到该单元格,就可以省去很多麻烦
如果 A1 的值为 31-May-1996(无论您的区域设置采用哪种格式),则您可以使用
=(TODAY()-A1)/365.25
答案2
“如何使用单一公式来计算两个日期之间的年数差?”
由于您提出问题的确切方式,我认为 DATEDIF 公式更适合您。尝试使用以下公式。很简单!希望这能有所帮助。:)
=DATEDIF("05/31/1996",TODAY(),"Y")
或者 =DATEDIF(A1,TODAY(),"Y")
“Y”使公式计算出年数的差异。
答案3
这将起作用:=(TODAY()-DATEVALUE("5/31/1996"))/365.25
正如这样: =(TODAY()-A1)/365.25
其中 A1 包含 Excel 日期值。
答案4
chuff 和 teylyn 给出的答案对于科学计算来说非常适用;例如,某个年龄的人的正常身高和体重,或者一瓶葡萄酒的陈年时间。这对您来说可能已经足够好了。但它们并不完美,无法用于法律目的;例如,在 2013 年 5 月 31 日,他们的公式计算出 16.99931554。诚然,这会显示为17.00
显示两位小数,但测试结果会显示为小于 17。如果您试图以正常的社会/法律意义计算某人的年龄,那么这并不好,例如,我们会用它来确定他是否够大到可以买那瓶葡萄酒。
为简洁起见,我将使用替代建议,即古代日期为A1
,而今天的日期为T1
。我建议您使用以下公式:
=(YEAR(T1)-YEAR(A1)) + (DATE(YEAR(A1),MONTH(T1),DAY(T1))-A1)/365.25
这将计算两年之间的差异,然后计算开始日期和当前日期之间的小数年份差异反映在古代。例如,我是在 2013 年 6 月 12 日写下这篇文章的。上述公式的第一部分YEAR(T1)-YEAR(A1)
(不需要括号)是2013-1996
,当然,它就是17
。第二项,
(DATE(YEAR(A1),MONTH(T1),DAY(T1))-A1)/365.25
变成(DATE(1996,6,12)-A1)/365.25
或("6/12/1996"-"5/31/1996")/365.25
或12/365.25
,即0.03012
,所以和为17.03012
。但如果T1
,5/31/2013
则公式计算结果为17.00000
。
哦,我的公式有点小问题。如果古代日期是非闰年(例如 1995 年 5 月 31 日),而当前年份是闰年(例如 2012 年),那么T1
=2/29/2012
和T1
=3/1/2012
将产生相同的结果,因为即使 Excel 对 产生错误2/29/1995
,它也会将DATE(1995,2,29)
其视为3/1/1995
。