我想计算人的年龄,结果计算年、月和日,然后将这三者结合起来得到如下所示的文本31 Years, 7 Months, and 16 Days
。
答案1
DATEDIF 函数解决了该问题:
:警告:
- 在某些旧版本中,单元“MD”返回错误的值,但现在该错误已得到修复。
- 下面显示公式在 2010 及更高版本中正常运行。
如果您想使用当前日期,则在单元格 T2 中使用以下公式:
=DATEDIF(R2,TODAY(),"Y")&" Years "&DATEDIF(R2,TODAY(),"YM")&" Months "&DATEDIF(R2,TODAY(),"MD")&" Days"
如果您想使用当前日期以外的任何日期,请使用单元格 T4:
=DATEDIF(R2,S2,"Y")&" Years "&DATEDIF(R2,S2,"YM")&" Months "&DATEDIF(R2,S2,"MD")&" Days"
注意:
- 在某些情况下,公式会针对年、月或日返回零,您可以通过将 IF 与 DATEDIF 结合使用来避免这种情况。
我在单元格 T2 中使用了标准 DATEDIF,对月份返回零,为避免这种情况,您可以使用带有 IF 的公式,就像我在单元格 T4 中使用的那样。
=IF(DATEDIF(R2,S2,"y")=0,"",DATEDIF(R2,S2,"y")&" years, ")&IF(DATEDIF(R2,S2,"ym")=0,"",DATEDIF(R2,S2,"ym")&" months, ")&IF(DATEDIF(R2,S2,"md")=0,"",DATEDIF(R2,S2,"md")&" days")
如果您不喜欢使用 DATEDIF 函数,那么您可以使用这个函数,位于单元格 T6 中。
=INT((S2-R2)/365.25)&" Years, " & INT(MOD((S2-R2)/365.25,1)*12)&" Months, " & INT(MOD((S2-R2)/30.4375,1)*30.4375)&" Days"
您可以根据需要调整公式中的单元格引用。