根据特定日期的年月日计算年龄

根据特定日期的年月日计算年龄

我想计算人的年龄,结果计算年、月和日,然后将这三者结合起来得到如下所示的文本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"
    

您可以根据需要调整公式中的单元格引用。

相关内容