如何在 Excel 中计算年龄?2025年3月17日 | 阅读 10 分钟 MS Excel,或 Excel,是一款广泛使用的电子表格软件,具有广泛的内置工具和功能。它帮助我们记录各种数据集,并在多个单元格中对它们进行计算。计算两个日期之间差值就是一个经典的例子。然而,这听起来并不是一个有用的计算。但是,同样的技术对于在 Microsoft Excel 中查找或计算某人或某物的年龄至关重要。 除了计算任何人的年龄,我们还可以使用相同的概念来计算任何项目的持续时间、任何公司的成立年限、指定日期之间经过的年数等。 在本教程中,我们讨论了在 Excel 中计算年龄的不同方法或解决方案。本教程将帮助我们学习如何计算截至当前日期或任何指定日期的完整年数、月数和天数。 我们如何在 Excel 中计算年龄?虽然 Excel 中没有专门计算年龄的函数,但在不同场景下,我们有多种方法可以计算年龄。但是,我们必须知道个人的出生日期(D.O.B.)。然后,我们将出生日期与 Excel 函数(特别是 DATEDIF 和 TODAY)结合使用来计算年龄或区分日期。现在让我们讨论查找年龄的常见场景。 计算年龄(年)我们在计算任何人的年龄时通常会考虑几个因素。例如,我们可能需要计算年龄(年)、月、日,或所有这些的总和。然而,以年为单位计算年龄是 Excel 中最常用的任务。 假设我们知道出生日期,Excel 中的几个不同函数可以帮助我们计算一个人的年龄(年)。让我们详细讨论每个有用的年龄公式。 使用 DATEDIF 函数 DATEDIF 函数是 Excel 中计算年龄最常用的函数。它是一个易于使用、内置且最合适的函数,它接受出生日期作为输入日期,并返回该人的年龄作为输出数据。 换句话说,DATEDIF 函数通常将出生日期转换为相应的年龄。DATEDIF 函数的主要优点是它可以用于以各种格式计算年龄,例如仅年、仅月、仅日,或年、月、日的组合形式等。 与其他 Excel 函数不同,DATEDIF 函数不会出现在函数快速列表中。这意味着当我们开始在 Excel 单元格中键入等号后键入 DATEDIF 函数时,它不会出现在建议列表中。但是,该函数在所有 Excel 版本中都有效。我们必须知道语法和必需的参数才能在 Excel 中使用 DATEDIF 函数。 ![]() DATEDIF 函数的通用语法定义如下: 如图所示,该函数需要以下三个参数:
需要注意的是,Y、M 和 D 分别返回完整的年数、月数和天数。相比之下,YM 仅返回月数差异,忽略相应的日数和年数;MD 仅返回日数差异,忽略关联的月数和年数;YD 返回日数差异,忽略相应的年数。 使用 DATEDIF 函数计算年龄(年)时,更熟悉的语法可以定义为: =DATEDIF(Birth_Date,Specific_Date,"Y") 要从出生日期计算到当前日期的年龄,我们可以在 Specific_Date 的位置指定当前日期。此外,我们也可以使用 TODAY 函数代替当前日期。以下是计算一个人截至今天年龄(年)的相应公式: =DATEDIF(Birth_Date,TODAY(),"Y") 假设我们在 B2 单元格中有一个人的出生日期,我们需要计算其当前年龄(年)。然后,我们可以按以下方式在最后一个公式中使用出生日期的引用: =DATEDIF(B2,TODAY(),"Y") ![]() 有时,我们可能会看到特定日期而不是年龄(年)。在这种情况下,我们必须导航到“开始”选项卡 >“数字格式”下拉菜单 > 选择“常规”而不是“日期”。 使用 YEARFRAC 函数 在 Excel 中计算年龄的另一种有用方法是使用 YEARFRAC 函数。这是一个易于使用的 Excel 函数,通常用于计算年龄(年)。它帮助我们从给定的出生日期到指定日期检索年龄。 使用 YEARFRAC 函数计算一个人年龄的通用语法定义如下: 如果我们想计算从出生到今天的年龄,我们可以在 Specific_Date 的位置指定当前日期。或者,我们也可以按以下方式将 YEARFRAC 函数与 TODAY 函数结合使用: =YEARFRAC(Birth_Date,TODAY()) 默认情况下,上述公式以小数形式返回结果。计算一个人的年龄时,这看起来不太好。因此,我们将公式组合或包含在 INT 函数中,以将相应的年龄作为整数返回。因此,使用 YEARFRAC 函数在 Excel 中计算年龄的完整公式定义如下: =INT(YEARFRAC(Birth_Date,Specific_Date)) 假设我们在 A2 单元格中有当前日期,在 B2 单元格中有出生日期。在这种情况下,我们可以使用以下公式计算该特定人的年龄: =INT(YEARFRAC(B2,A2)) ![]() 如果我们使用 YEARFRAC 函数和 TODAY 函数来计算年龄(年),公式如下: =INT(YEARFRAC(B2, TODAY())) ![]() 当与 TODAY 函数结合使用时,YEARFRAC 函数仅返回当前或最近的年龄(年)。 使用 ROUNDDOWN 函数 尽管很少使用,我们也可以使用 ROUNDDOWN 函数在 Excel 中计算年龄。以下是使用 ROUNDDOWN 公式在 Excel 中计算年龄的语法: 通常,ROUNDDOWN 函数有助于向下舍入小数位数。但是,我们对公式进行了自定义,使其以年为单位计算年龄。在该公式中,我们使用 365.25 来计算闰年(一年 366 天),闰年每四年一次。我们在 ROUNDDOWN 函数中使用 0 作为最后一个参数,以忽略年龄中的小数部分。 ROUNDDOWN 公式是计算年龄的一个好习惯,但不建议使用,因为它并不完美。假设一个孩子还没有活过任何闰年,并且我们用这个公式除以 365.25 来计算年龄;公式将返回错误的年龄。 除以每年的平均天数在大多数情况下也很好,这意味着我们可以除以 365 天而不是 365.25。但是,这种情况也有一些问题,有时会产生错误的结果。例如,假设某人的出生日期是 2 月 29 日,而当前日期是 2 月 28 日。在这种情况下,如果我们除以 365,公式检索的年龄将比实际年龄大一天。因此,在这种情况下,我们必须除以 365.25 来计算日期。因此,这两种方法都不完美。始终建议使用 DATEDIF 函数计算一个人的年龄。 假设我们在 A2 单元格中拥有当前日期,并在 B2 单元格中拥有某人的出生日期。在这种情况下,我们可以使用以下公式计算该特定人的年龄: =ROUNDDOWN((A2-B2)/365.25,0) ![]() 此外,我们也可以使用 TODAY 函数代替 Specific_Date 来计算截至当前日期的年龄。 ![]() 使用 TODAY 函数 由于年龄通常是通过从出生日期减去当前日期来计算的,因此 Excel 中的 TODAY 函数在一定程度上也有助于我们计算年龄。与 ROUNDDOWN 公式一样,TODAY 公式在 Excel 中计算某人的年龄也并非完美。 假设我们有一个人的出生日期在 B2 单元格;我们可以按以下方式应用 TODAY 公式来计算年龄: =(TODAY()-B2)/365 根据某些情况,我们有时需要除以 365.25 而不是 365。在此公式中,第一部分(TODAY()-B2)通常计算当前日期与出生日期之间的差值。公式的第二部分有助于将差值除以 365,得到年数(即年龄(年))。 不幸的是,这里的 TODAY 公式与 YEARFRAC 函数一样,提供小数形式的结果。因此,我们将 TODAY 公式包含在 INT 函数中,以显示完整年数或最接近整数值的年龄。因此,计算年龄(年)的最终 TOTAL 公式如下: =INT((TODAY()-B2)/365) ![]() 计算年龄(月)正如我们之前所说,DATEDIF 函数可以帮助我们以不同的格式计算某人的年龄。因此,我们可以在工作表中再次使用相同的 DATEDIF 公式。但是,我们必须将公式中的单位从“Y”更改为“M”。这告诉 Excel 以月为单位显示或返回年龄。 让我们再次考虑相同的数据集,其中我们在 B2 单元格中有一个人的出生日期。我们需要计算其当前年龄(月)。然后,我们可以按以下方式在 DATEDIF 公式中使用出生日期的引用: =DATEDIF(B2,TODAY(),"M") ![]() 计算年龄(日)当我们已经知道 DATEDIF 函数的语法时,计算年龄(日)就变得容易了。与前面的示例一样,我们将单位参数从“Y”更改为“M”,这有助于我们计算一个人的年龄(月)。类似地,如果我们从“M”更改单位参数为“D”,函数将返回年龄(日)。因此,假设一个人的出生日期在 B2 单元格中,公式将如下: =DATEDIF(B2,TODAY(),"D") ![]() 同时计算年龄(年、月和日)如上所述,分别计算一个人的年龄(年)、月和日非常简单。但是,这可能并不总是足够的。在某些情况下,我们可能需要同时查找或计算一个人的确切年龄(年、月和日)。在这种情况下,公式会稍微长一些,但仍然很简单。 要计算一个人确切的完整年龄(年、月和日),我们必须使用三个不同的 DATEDIF 函数并将它们同时组合在一个公式中。假设一个人的出生日期在 B2 单元格中,三个不同的 DATEDIF 函数如下:
我们现在使用“&”运算符将所有这些 DATEDIF 函数组合如下: =DATEDIF(B2,TODAY(),"Y")&DATEDIF(B2,TODAY(),"YM")&DATEDIF(B2,TODAY(),"MD") ![]() 虽然我们得到了年、月、日作为单个字符串的年龄,但它没有意义。为了使结果(或年龄)有效或易于理解,我们用逗号分隔每个单位,并确定每个值的含义。因此,公式变成: =DATEDIF(B2,TODAY(),"Y") & " Years, " & DATEDIF(B2,TODAY(),"YM") & " Months, " & DATEDIF(B2,TODAY(),"MD") & " Days" ![]() 上图显示年龄结果比之前的结果更具可读性。然而,它也显示了一些零值。我们可以通过将三个不同的 IF 语句组合起来检查和消除零值来进一步改进我们的 DATEDIF 公式。因此,计算某人当前年龄(年、月、日)的最终 Excel 年龄公式如下: =IF(DATEDIF(B2, TODAY(),"Y")=0,"",DATEDIF(B2, TODAY(),"Y")&" Years, ")& IF(DATEDIF(B2, TODAY(),"YM")=0,"",DATEDIF(B2, TODAY(),"YM")&" Months, ")& IF(DATEDIF(B2, TODAY(),"MD")=0,"",DATEDIF(B2, TODAY(),"MD")&" Days") ![]() 在上图的年龄中,我们只看到非零值。然而,该公式只能找到该人的当前年龄。 计算在任何指定/特定日期的年龄在上述公式的语法中,我们已经讨论了告诉我们如何在特定日期查找某人年龄的方法。例如,以下 DATEDIF 公式计算了特定日期某人的年龄: =DATEDIF(Birth_Date,Specific_Date,"Y") 根据需要可以更改单位参数。在上述公式中,我们可以通常提供两个日期的单元格引用,结果将出现在目标单元格中。 使用相同公式计算特定日期某人年龄的另一种典型方法是将所需的日期直接提供到公式中。例如,假设我们有一个人的出生日期(30/05/1995)在 B2 单元格中,我们想知道该人在 01/01/2021 的年龄。因此,我们可以结合使用 DATEDIF 函数和 DATE 函数,如下所示: =DATEDIF(B2,DATE(2021,1,1),"Y") ![]() 在上图的公式中,我们使用 DATE 函数将特定日期直接提供到 DATEDIF 函数中,而 B2 引用用于出生日期。 除此之外,如果我们想在特定日期找到该人的年龄(年、月和日),我们可以使用上面讨论的相同 DATEDIF 概念,其中我们组合了三个 DATEDIF 函数。但是,我们必须将第二个参数中的 TODAY() 函数替换为我们想要的日期。 因此,当一个人的出生日期在 B2 单元格中,而我们需要计算截至 01/01/2021 的年龄时,我们使用以下公式: =IF(DATEDIF(B2, "1/1/2021","Y")=0,"",DATEDIF(B2, "1/1/2021","Y")&" Years, ")& IF(DATEDIF(B2, "1/1/2021","YM")=0,"",DATEDIF(B2, "1/1/2021","YM")&" Months, ")& IF(DATEDIF(B2, "1/1/2021","MD")=0,"",DATEDIF(B2, "1/1/2021","MD")&" Days") ![]() 除了将特定日期放在公式中,我们还可以使用特定日期的单元格引用,使我们的公式更易于理解。假设一个人的出生日期在 B2 单元格中,而我们要计算年龄的特定日期在 C2 单元格中,则灵活的年龄公式如下: =IF(DATEDIF(B2, C2,"Y")=0,"",DATEDIF(B2, C2,"Y")&" Years, ")& IF(DATEDIF(B2, C2,"YM")=0,"",DATEDIF(B2, C2,"YM")&" Months, ")& IF(DATEDIF(B2, C2,"MD")=0,"",DATEDIF(B2, C2,"MD")&" Days") ![]() |
我们请求您订阅我们的新闻通讯以获取最新更新。