Excel YEAR函数--将日期转换为年份

  • Share This
Michael Brown

本教程解释了Excel YEAR函数的语法和用途,并提供了从日期中提取年份、将日期转换为月份和年份、从出生日期计算年龄和从年份中提取年份的公式示例。 确定闰年。

在最近的几篇文章中,我们探讨了在Excel中计算日期和时间的不同方法,并学习了各种有用的函数,如WEEKDAY、WEEKNUM、MONTH和DAY。 今天,我们将关注一个更大的时间单位,谈谈在Excel工作表中计算年份的问题。

在本教程中,你将学会。

    Excel中的YEAR函数

    Excel中的YEAR函数以1900至9999的整数形式返回与给定日期对应的四位数年份。

    Excel YEAR函数的语法简单到不能再简单。

    YEAR(serial_number)

    其中serial_number是你想找到的当年的任何有效日期。

    Excel YEAR公式

    要在Excel中制作一个YEAR公式,你可以通过几种方式提供源日期。

    使用日期功能

    在Excel中提供日期的最可靠方法是使用DATE函数。

    例如,以下公式返回2015年4月28日的年份。

    =year(date(2015, 4, 28))

    作为一个代表日期的序列号

    在Excel内部系统中,日期以序列号的形式存储,从1900年1月1日开始,被存储为1号。 更多关于日期在Excel中的存储方式的信息,请参见Excel日期格式。

    2015年4月28日被存储为42122,所以你可以在公式中直接输入这个数字。

    =YEAR(42122)

    虽然可以接受,但不建议使用这种方法,因为不同的系统中,日期的编号可能不同。

    作为一个单元格参考

    假设你在某个单元格中有一个有效的日期,你可以简单地引用该单元格。 例如。

    =YEAR(A1)

    由于其他一些公式的作用

    例如,你可以使用TODAY()函数从当前日期中提取年份。

    =YEAR(TODAY())

    作为文本

    在一个简单的例子中,YEAR公式甚至可以理解以文本形式输入的日期,像这样。

    =YEAR("28-Apr-2015")

    当使用这种方法时,请仔细检查你是否以Excel理解的格式输入日期。 另外,请记住,当日期以文本值提供时,微软不保证结果正确。

    下面的截图展示了上述所有YEAR公式的运行情况,正如你所期望的那样,全部返回2015年 :)

    如何在Excel中把日期转换为年份

    当你在Excel中处理日期信息时,你的工作表通常会显示完整的日期,包括月、日和年。 然而,对于重大的里程碑和重要事件,如产品发布或资产收购,你可能希望只查看年份,而不需要重新输入或修改原始数据。 下面,你会发现3种快速方法。

    例1.使用YEAR函数从日期中提取一个年份

    事实上,你已经知道如何使用Excel中的YEAR函数将日期转换为年份。 上面的截图演示了一堆公式,你可以在下面的截图中看到更多的例子。 注意,YEAR函数完全可以理解所有可能的格式的日期。

    例2.在Excel中把日期转换成月份和年份

    要将一个给定的日期转换为年和月,你可以使用TEXT函数来单独提取每个单位,然后在一个公式中串联这些函数。

    在TEXT功能中,你可以使用不同的代码来表示月份和年份,如:。

    • "mmm" - 缩写的月名,如1-12月。
    • "mmmm" - 完整的月份名称,如1月-12月。
    • "yy" - 2位数的年份
    • "yyyy" - 4位数的年份

    为了使输出更易读,你可以用逗号、连字符或任何其他字符来分隔代码,如下面的例子 日期改为年月日 公式。

    =TEXT(B2, "mmmm") & ", " & TEXT(B2, "yyyy")

    =TEXT(B2, "mmm") & "-" & TEXT(B2, "yy")

    其中B2是一个包含日期的单元格。

    例3.将一个日期显示为一个年份

    如果日期如何存储在工作簿中并不重要,你可以让Excel只显示年份而不改变原来的日期。 换句话说,你可以让完整的日期存储在单元格中,但只显示年份。

    在这种情况下,不需要任何公式。 你只需打开 格式化单元格 按下Ctrl + 1,选择 定制 的类别。 数量 选项卡,并在以下代码中输入一个代码。 类型 箱子。

    • yy - 显示2位数的年份,如00 - 99。
    • yyyy - 显示4位数的年份,如1900 - 9999。

    请记住,这种方法 不改变原来的日期 如果你在公式中引用这些单元格,Microsoft Excel将执行日期计算而不是年份计算。

    你可以在本教程中找到更多关于改变日期格式的细节:如何在Excel中改变日期格式。

    如何在Excel中根据出生日期计算年龄

    有几种方法可以在Excel中计算出生日期的年龄--使用DATEDIF、YEARFRAC或INT函数与TODAY()相结合。 TODAY函数提供了计算年龄的日期,确保你的公式总是返回正确的年龄。

    根据出生日期计算年龄,以年为单位

    计算一个人的年龄的传统方法是用当前日期减去出生日期。 这种方法在日常生活中很好用,但类似的Excel年龄计算公式却不完全正确。

    INT((TODAY()- 出生日期 )/365)

    其中DOB是出生日期。

    公式的第一部分(TODAY()-B2)计算的是日差,你用它除以365得到年数。 在大多数情况下,这个公式的结果是一个小数,你让INT函数把它四舍五入到最近的整数。

    假设出生日期在B2单元格,完整的公式如下。

    =int((today()-b2)/365)

    如上所述,这个年龄计算公式并不总是无懈可击的,原因就在这里。 每四年是一个闰年,包含366天,而这个公式是将天数除以365天。 因此,如果某人出生于2月29日,而今天是2月28日,这个年龄公式将使一个人年长一天。

    除以365.25而不是365也不是无懈可击的,例如,在计算一个还没有经历过闰年的孩子的年龄时。

    鉴于上述情况,你最好把这种计算年龄的方法留到正常生活中,并使用以下公式之一来计算Excel中出生日期的年龄。

    DATEDIF( 出生日期 , TODAY(), "y") ROUNDDOWN(YEARFRAC( 出生日期 , today(), 1), 0)

    上述公式的详细解释见《如何在Excel中计算年龄》。 而下面的截图展示了一个真实的年龄计算公式的操作。

    =DATEDIF(B2, TODAY(), "y")

    根据出生日期计算准确年龄(以年、月、日为单位)

    要计算以年、月、日为单位的准确年龄,请编写三个DATEDIF函数,最后一个参数为以下单位。

    • Y - 计算完整的年数。
    • YM--得到月份之间的差异,忽略了年份。
    • MD--得到天数的差异,忽略了年和月。

    然后,将3个DATEDIF函数连接到一个公式中,用逗号分开每个函数返回的数字,并定义每个数字的含义。

    假设出生日期在B2单元格,完整的公式如下。

    =DATEDIF(B2,TODAY(), "Y") & " Years, " & DATEDIF(B2,TODAY(), "YM") & " Months, " & DATEDIF(B2,TODAY(), "MD" ) & " Days"

    这个年龄公式可能非常有用,比如说,医生可以显示病人的确切年龄,或者人事官员可以知道所有雇员的确切年龄。

    关于更多的公式例子,如计算某一特定日期或某一年的年龄,请查看以下教程:如何在Excel中计算年龄。

    如何获得一年中的日数(1-365)?

    这个例子演示了如何获得一年中某一天的数字,在1到365之间(闰年为1-366),1月1日被视为第1天。

    为此,请以这种方式将YEAR函数与DATE一起使用。

    =a2-date(year(a2), 1, 0)

    其中A2是一个包含日期的单元格。

    现在,让我们看看这个公式的实际作用。 年份 函数检索A2单元格中日期的年份,并将其传递给 DATE(年, 月, 日) 函数,它返回代表某一日期的序列号。

    因此,在我们的公式中。 是从原始日期(A2)中提取的。 为1(1月)和 事实上,零日迫使Excel返回前一年的12月31日,因为我们希望1月1日被视为第一天。 然后,你用DATE公式返回的序列号减去原始日期(在Excel中也被存储为序列号),差值就是你要找的那一年的日子。 例如,2015年1月5日被存储为42009,而2014年12月31日是42004,所以42009-42004=5。

    如果你觉得第0天的概念不对,你可以用以下公式代替。

    =a2-date(year(a2), 1, 1)+1

    如何计算一年中剩余的天数

    为了计算一年中剩余的天数,我们将再次使用日期和年份函数。 该公式基于与上面例3相同的方法,所以你在理解其逻辑时不太可能有任何困难。

    =DATE(YEAR(A2),12,31)-A2

    如果你想知道根据当前日期离年底还有多少天,你可以使用Excel的TODAY()函数,如下所示。

    =date(2015, 12, 31)-today()

    其中,2015年是当前年份。

    在Excel中计算闰年

    如你所知,几乎每四年的2月29日都会多出一天,被称为闰年。 在Microsoft Excel工作表中,你可以通过各种方式确定某个日期是属于闰年还是普通年份。 我只演示几个公式,在我看来,这些公式最容易理解。

    公式1.检查二月是否有29天

    这是一个非常明显的测试。 由于闰年的2月有29天,我们计算出某年第2个月的天数,然后与数字29进行比较。 例如。

    =DAY(DATE(2015,3,1)-1)=29

    在这个公式中,DATE(2015,3,1)函数返回2015年3月的第1天,我们从中减去1。 DAY函数从这个日期中提取日数,我们将这个数字与29进行比较。 如果数字匹配,公式返回TRUE,否则返回FALSE。

    如果你在Excel工作表中已经有了一个日期列表,并且你想知道哪些是闰年,那么就在公式中加入YEAR函数,从一个日期中提取年份。

    =DAY(DATE(YEAR(A2),3,1)-1)=29

    其中A2是一个包含日期的单元格。

    该公式返回的结果如下。

    另外,你可以使用EOMONTH函数来返回2月份的最后一天,并将这个数字与29进行比较。

    =day(eomonth(date(year(a2),2,1),0))=29

    为了使公式更方便使用,可以使用IF函数,让它返回,例如,"闰年 "和 "普通年",而不是TRUE和FALSE。

    =IF(DAY(DATE(YEAR(A2),3,1)-1)=29, "闰年", "普通年份")

    =IF(DAY(EOMONTH(DATE(YEAR(A2),2,1),0))=29, "闰年", "普通年份")

    公式2.检查一年是否有366天

    这是另一个明显的测试,几乎不需要任何解释。 我们用一个日期函数返回下一年的1月1日,用另一个日期函数得到今年的1月1日,用后者减去前者,检查差值是否等于366。

    =date(2016,1,1)-date(2015,1,1)=366

    要根据某个单元格中输入的日期计算出一个年份,你可以使用Excel的YEAR函数,方法与我们在上一个例子中的方法完全相同。

    =date(year(a2)+1,1,1)-date(year(a2),1,1)=366

    其中A2是一个包含日期的单元格。

    当然,你也可以将上述日期/年份公式包含在IF函数中,使其返回比TRUE和FALSE的布尔值更有意义的东西。

    =IF(DATE(YEAR(A2)+1,1,1) - DATE(YEAR(A2),1,1)=366, "闰年", "非闰年")

    如前所述,这些并不是在Excel中计算闰年的唯一可能的方法。 如果你想知道其他的解决方案,你可以查看微软建议的方法。 像往常一样,微软的人并没有寻找简单的方法,不是吗?

    希望这篇文章能帮助你弄清Excel中的年份计算。 感谢你的阅读,期待下周与你见面。

    Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.