Table of contents
本教程解释了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中的年份计算。 感谢你的阅读,期待下周与你见面。