Table of contents
这是我们的《Excel日期教程》的最后一部分,概述了所有的Excel日期函数,解释了它们的基本用途,并提供了许多公式实例。
Microsoft Excel提供了大量的函数来处理日期和时间。 每个函数都执行一个简单的操作,通过在一个公式中结合几个函数,你可以解决更复杂和具有挑战性的任务。
在Excel日期教程的前12个部分中,我们已经详细研究了Excel的主要日期函数。 在这最后一部分中,我们将总结所获得的知识,并提供各种公式实例的链接,以帮助你找到最适合计算日期的函数。
在Excel中计算日期的主要函数。
获取当前日期和时间。
- 在一个日期上增加或减少天数
- 计算一个月的天数
Excel TODAY函数
ǞǞǞ 今天()
函数返回今天的日期,正如其名称所示。
TODAY可以说是最容易使用的Excel函数之一,因为它完全没有参数。 每当你需要在Excel中获得今天的日期时,在一个单元格中输入以下公式。
=TODAY()
除了这种明显的用途外,Excel的TODAY函数可以成为更复杂的公式和基于今天日期的计算的一部分。 例如,要在当前日期上增加7天,在一个单元格中输入以下公式。
=TODAY()+7
要在今天的日期中增加30个工作日,不包括周末日,请使用这个。
=workday(today(), 30)
注意:当你的工作表被重新计算以反映当前日期时,Excel中TODAY函数返回的日期会自动更新。
关于更多演示Excel中使用TODAY函数的公式例子,请查看以下教程。
- Excel TODAY函数插入今天的日期及更多信息
- 将今天的日期转换成文本格式
- 根据今天的日期来计算工作日
- 根据今天的日期查找每月的第1天
Excel的NOW函数
现在()
函数返回当前日期和时间。 和TODAY一样,它没有任何参数。 如果你想在工作表中显示今天的日期和当前时间,只需在单元格中放入以下公式。
=NOW()
注意:和TODAY一样,Excel的NOW也是一个不稳定的函数,每次工作表重新计算时都会刷新返回值。 请注意,带有NOW()公式的单元格不会实时自动更新,只有在重新打开工作簿或重新计算工作表时才会更新。 要强制电子表格重新计算,并因此让你的NOW公式更新其值,请按以下任一方法Shift+F9只对活动的工作表进行重新计算,或F9对所有打开的工作簿进行重新计算。
Excel的DATEVALUE函数
DATEVALUE(date_text)
将一个文本格式的日期转换为代表日期的序列号。
DATEVALUE函数可以理解大量的日期格式以及对包含 "文本日期 "的单元格的引用。 DATEVALUE在计算、过滤或排序以文本形式存储的日期以及将这些 "文本日期 "转换为日期格式时非常方便。
下面是几个简单的DATEVALUE公式例子。
=DATEVALUE("20-may-2015")
=DATEVALUE("5/20/2015")
=DATEVALUE("May 20, 2015")
而下面的例子展示了DATEVALUE函数如何帮助解决现实生活中的任务。
- DATEVALUE公式,将日期转换为数字
- DATEVALUE公式将一个文本字符串转换为一个日期
Excel的TEXT函数
在纯粹的意义上,TEXT函数不能被归类为Excel日期函数之一,因为它可以将任何数字值,不仅仅是日期,转换成文本字符串。
通过TEXT(value, format_text)函数,你可以将日期改为各种格式的文本字符串,如下截图所示。
注意:尽管由TEXT函数返回的值可能看起来像通常的Excel日期,但它们在本质上是文本值,因此不能用于其他公式和计算。
下面是一些更多的TEXT公式例子,你可能会觉得有帮助。
- Excel TEXT函数将日期转换为文本
- 将日期转换为月和年
- 从日期中提取月份名称
- 将月号转换为月名
Excel的DAY函数
DAY(serial_number)
函数以1至31的整数形式返回每月的某一天。
序号 它可以是一个单元格引用,也可以是使用DATE函数输入的日期,或者是由其他公式返回的日期。
这里有几个公式的例子。
=DAY(A2)
- 返回A2中的日期的月份。
=day(date(2015,1,1))
- 返回2015年1月1日的日子
=DAY(TODAY())
- 返回今天的日期中的一天
Excel的MONTH函数
MONTH(serial_number)
函数在Excel中以整数形式返回指定日期的月份,范围从1(1月)到12(12月)。
比如说。
=MONTH(A2)
- 返回A2单元格中日期的月份。
=month(today())
- 返回当前月份。
MONTH函数在Excel日期公式中很少单独使用,最常见的是与其他函数一起使用,如下面的例子所示。
- 在Excel中为一个日期添加或减去月份
- 计算两个日期之间的月份
- 从周数中获取一个月的数据
- 在Excel中从一个日期中获得一个月的数字
- 计算一个月的第1天
- 根据月份有条件地格式化日期
关于MONTH函数语法的详细解释和更多的公式例子,请查看以下教程:在Excel中使用MONTH函数。
Excel YEAR函数
YEAR(serial_number)
返回一个与给定日期相对应的年份,是一个从1900到9999的数字。
Excel的YEAR函数是非常简单的,你在使用它进行日期计算时几乎不会遇到任何困难。
=YEAR(A2)
- 返回A2单元格中日期的年份。
=YEAR("20-May-2015")
- 返回指定日期的年份。
=YEAR(DATE(2015,5,20))
- 一个更可靠的方法来获得一个给定日期的年份。
=YEAR(TODAY())
- 返回当前年份。
关于 "年份 "功能的更多信息,请参见。
- Excel YEAR函数--语法和用途
- 如何在Excel中把日期转换为年份
- 如何在Excel中添加或减去迄今的年份
- 计算两个日期之间的年份
- 如何获得年月日(1-365)
- 如何找到一年中剩余的天数
Excel的EOMONTH函数
EOMONTH(start_date, months)
函数返回从开始日期开始的给定月数的每月最后一天。
像大多数Excel日期函数一样,EOMONTH可以对作为单元格引用输入的日期进行操作,通过使用DATE函数输入,或其他公式的结果。
A 正值 在 几个月
参数将相应的月数添加到开始日期,例如。
=eomonth(a2, 3)
- 返回该月的最后一天,3个月 之后 A2单元格中的日期。
A 负值 在 几个月 参数从开始日期中减去相应的月数。
=eomonth(a2, -3)
- 返回该月的最后一天,3个月 之前 A2单元格中的日期。
A 零 在 几个月 参数强制EOMONTH函数返回起始日期的月份的最后一天。
=eomonth(date(2015,4,15), 0)
- 在2015年4月的最后一天返回。
为了获得 当月最后一天 ,输入TODAY函数,在 开始日期 参数,而在 几个月 :
=eomonth(today(), 0)
你可以在以下文章中找到更多的EOMONTH公式例子。
- 如何获得一个月的最后一天
- 如何获得每月的第一天
- 在Excel中计算闰年
Excel的WEEKDAY函数
WEEKDAY(serial_number,[return_type])
函数返回一个日期所对应的星期,是一个从1(星期日)到7(星期六)的数字。
- 序号 可以是一个日期,一个对包含日期的单元格的引用,或由其他Excel函数返回的日期。
- 返回_类型 (可选) - 是一个数字,决定一周中的哪一天应被视为第一天。
你可以在以下教程中找到可用的返回类型的完整列表:Excel中的星期功能。
这里有几个周末公式的例子。
=WEEKDAY(A2)
- 返回A2单元格中的日期所对应的工作日;一周中的第1天是周日(默认)。
=weekday(a2, 2)
- 返回A2单元格中的日期所对应的工作日;一周从周一开始。
=weekday(today())
- 返回一个与今天的星期对应的数字;本周从星期日开始。
WEEKDAY函数可以帮助你确定Excel表格中哪些日期是工作日,哪些是周末,还可以对工作日和周末进行排序、过滤或突出显示。
- 如何从日期中获取工作日的名称
- 查找和过滤工作日和周末
- 在Excel中突出显示工作日和周末
Excel的DATEDIF函数
DATEDIF(start_date, end_date, unit)
函数是专门用来计算两个日期之间以天、月或年为单位的差额。
使用哪一个时间间隔来计算日期差取决于你在最后一个参数中输入的字母。
=DATEDIF(A2, TODAY(), "d")
- 计算出的 天 A2中的日期和今天的日期之间。
=DATEDIF(A2, A5, "m")
- 返回的是 完整的月份 在A2和B2的日期之间。
=DATEDIF(A2, A5, "y")
- 返回的是 完整的年份 在A2和B2的日期之间。
这些只是DATEDIF函数的基本应用,它还能做得更多,正如下面的例子所展示的。
- Excel DATEDIF函数--语法和用途
- 计算两个日期之间的天数
- 计算日期之间的周数
- 计算两个日期之间的月份
- 计算两个日期之间的年份
- 日期差是天、月和年
Excel的WEEKNUM函数
WEEKNUM(serial_number, [return_type])
- 返回一个特定日期的周数,是一个从1到53的整数。
例如,下面的公式返回1,因为包含1月1日的一周是一年中的第一周。
=WEEKNUM("1-Jan-2015")
下面的教程解释了关于Excel WEEKNUM函数的所有特性: WEEKNUM函数--在Excel中计算周数。
或者,你可以直接跳到其中一个公式的例子。
- 如何按周数求和
- 如何根据周数来突出显示单元格
Excel EDATE函数
EDATE(start_date, months)
函数返回在开始日期之前或之后的指定月数的日期序列号。
比如说。
=EDATE(A2, 5)
- 在A2单元格的日期上增加5个月。
=edate(today(), -5)
- 从今天的日期中减去5个月。
关于EDATE公式的详细解释,请参见公式实例。
用EDATE函数在一个日期上添加或减去月份。
Excel的YEARFRAC函数
YEARFRAC(start_date, end_date, [base])
函数计算出2个日期之间的年份比例。
这个非常具体的功能可以用来解决实际的任务,如根据出生日期计算年龄。
Excel的WORKDAY函数
WORKDAY(start_date, days, [节假日])
该函数返回一个日期,在开始日期之前或之后的N个工作日。 它在计算时自动排除了周末日以及你指定的任何假期。
这个功能对于计算里程碑和其他基于标准工作日历的重要事件非常有帮助。
例如,下面的公式在A2单元格的起始日期上增加了45个工作日,忽略了B2:B8单元格的假期。
=workday(a2, 45, b2:b85)
对于WORKDAY的语法的详细解释和更多的公式例子,请查看。
WORKDAY函数--在Excel中添加或减去工作日
Excel的WORKDAY.INTL函数
WORKDAY.INTL(start_date, days, [weekend], [holidays])
是Excel 2010中引入的WORKDAY函数的一个更强大的变化。
WORKDAY.INTL允许用自定义的周末参数计算未来或过去的N个工作日的日期。
例如,要获得A2单元格中开始日期后20个工作日的日期,并将周一和周日算作周末,你可以使用以下任一公式。
=workday.intl(a2, 20, 2, 7)
或
=workday.intl(a2, 20, "1000001")
当然,从这个简短的解释中可能很难掌握精髓,但更多的公式例子加上截图会让事情变得非常简单。
WORKDAY.INTL - 计算带有自定义周末的工作日
Excel的NETWORKDAYS函数
NETWORKDAYS(start_date, end_date, [节假日])
函数返回你指定的两个日期之间的工作日数。 它自动排除周末日,并可选择排除假日。
例如,下面的公式计算A2中的开始日期和B2中的结束日期之间的完整工作日数,忽略周六和周日,不包括C2:C5单元格中的假期。
=网络工作日(a2, b2, c2:c5)
你可以在下面的教程中找到对NETWORKDAYS函数参数的全面解释,并附有公式实例和截图。
NETWORKDAYS函数 - 计算两个日期之间的工作日
Excel的NETWORKDAYS.INTL函数
NETWORKDAYS.INTL(start_date, end_date, [周末], [节假日])
是Excel 2010及以后版本中NETWORKDAYS函数的一个更强大的修改,它同样返回两个日期之间的工作日数,但允许你指定哪些日子应该被算作周末。
下面是一个基本的NETWORKDAYS公式。
=networkdays(a2, b2, 2, c2:c5)
该公式计算A2中的日期(start_date)和B2中的日期(end_date)之间的工作日数,不包括周末的周日和周一(周末参数中的数字2),并且忽略了C2:C5单元格中的假期。
关于NETWORKDAYS.INTL函数的全部细节,请参见。
NETWORKDAYS功能--用自定义周末计算工作日
希望这篇关于Excel日期函数的10K英尺观点能够帮助你大致了解日期公式在Excel中是如何工作的。 如果你想了解更多,我鼓励你查看本页面上引用的公式实例。 感谢你的阅读,希望下周在我们的博客上再次见到你!