当前位置:首页 > 函数大全 > 时间和日期函数 > 正文

DATE函数

本文介绍 Microsoft Excel 中 DATE函数 的公式语法和用法。

函数功能:
DATE函数返回表示特定日期的连续序列号。例如,公式=DATE(2008,7,8)返回 39637,该序列号表示 2008-7-8。
注释 :如果在输入该函数之前单元格格式为“常规”,则结果将使用日期格式,而不是数字格式。若要显示序列号或要更改日期格式,请在“开始”选项卡的“数字”组中选择其他数字格式。
在通过公式或单元格引用提供年月日时,DATE 函数最为有用。例如,可能有一个工作表所包含的日期使用了 Excel 无法识别的格式(如 YYYYMMDD)。通过将 DATE 函数与其他函数结合使用,可以将这些日期转换为 Excel 可识别的序列号。有关详细信息,请参阅本文示例一节中的表。

DATE函数语法

DATE(year,month,day) ,DATE 函数语法具有下列参数:

Year 必需。year 参数的值可以包含一到四位数字。Excel 将根据计算机所使用的日期系统来解释 year 参数。Windows系统会默认使用 1900 日期系统,为避免出现意外结果,建议对 year 参数使用四位数字。例如,使用“23”将返回“1923”作为年值,而不是返回“2023”。
如果 year 介于 0(零)到 1899 之间(包含这两个值),则 Excel 会将该值与 1900 相加来计算年份。例如,DATE(108,1,2) 将返回 2008 年 1 月 2 日 (1900+108)。
如果 year 介于 1900 到 9999 之间(包含这两个值),则 Excel 将使用该数值作为年份。例如,DATE(2008,1,2) 将返回 2008 年 1 月 2 日。
如果 year 小于 0 或大于等于 10000,则 Excel 将返回错误值 #NUM!。

Month 必需。一个正整数或负整数,表示一年中从 1 月至 12 月(一月到十二月)的各个月。
如果 month 大于 12,则 month 从指定年份的一月份开始累加该月份数。例如,DATE(2008,14,2) 返回表示 2009 年 2 月 2 日的序列号。
如果 month 小于 1,month 则从指定年份的一月份开始递减该月份数,然后再加上 1个月。例如,DATE(2008,-3,2) 返回表示 2007 年 9 月 2 日的序列号。

Day 必需。一个正整数或负整数,表示一月中从 1 日到 31 日的各天。
如果 day 大于指定月份的天数,则 day 从指定月份的第一天开始累加该天数。例如,DATE(2008,1,35) 返回表示 2008 年 2 月 4 日的序列号。
如果 day 小于 1,则 day 从指定月份的第一天开始递减该天数,然后再加上 1 天。例如,DATE(2008,1,-15) 返回表示 2007 年 12 月 16 日的序列号。

DATE函数公式示例

=DATE(A2,B2,C2)

通过使用单元格 A2、B2 和 C2 作为 DATE 函 数 的 参 数 并 使 用1900 日期系统而得到的日期的序列日期。

=DATE(YEAR(TODAY()),12,31)

当前年份的最后一天的序列日期。

=DATE(LEFT(A4,4),MID(A4,5,2),RIGHT(A4,2))

将日期从 YYYYMMDD 格式转换为序列日期。

DATE函数应用举例

DATE函数主要用法如下。

1.常规用法
DATE函数的常规用法为:直接使用数字,定义日期,即输入年、月、日三个参数,生成日期序列号。
如A2单元格中录入公式:=DATE(2015,5,1),该序列号表示2015-5-1,如果单击右键“设置单元格格式(F)”选项,在“数字”组中选择其他数字格式,如“数值”格式,则显示为42125。在1900日期系统中,表示以1900年1月1日为基准日(序列号为1),2015年5月1日的序列号为42125,距离1900年1月1日是42124天(即42125-1=42124天)。

2.引用单元格,转换成日期
如A2单元格中数据是2015,B2单元格中数据是10,C2单元格中数据是1,在D2单元格中录入公式:=DATE(A2,B2,C2),即产生2015-10-1的日期序列号。

3.提取字符变日期
为了实现快速输入,在输入日期数据时可以先输入类似20150501字符串的形式。完成输入后,提取单元格中录入的字符,变为日期型数据,即通过DATE()函数和MID()函数将文本进行一次性转换为标准日期格式。如图3.1所示,在B2单元格中录入公式:=DATE(MID(A2,1,4),MID(A2,5,2),MID(A2,8,2)),最终产生2015年5月1日的序列号。

提取字符变日期

4.以某个日期为基准日,推算其前或后多少天的准确日期
DATE函数以某个日期为基准日,推算期前或后多少天的准确日期,假设:2015年1月0日是计算机中虚拟的一个日期(存在这样一类虚拟日期),以此为基准日,即以2014年12月31日为基准日,推算其前91天的日期,以及其后的多少天的准确日期,并生成相对应的日期序列号。

5.以某个日期为基准日,取指定日期的当月最后一天
如A2单元格中录入数据:2015年2月5日,在B2单元格中录入公式:=DATE(YEAR(A2),MONTH(A2)+1,0),则返回值为:2015年2月28日,得到了2015年2月最后一天的日期是2015年2月28日。

6.对年份和月份数据进行加减计算
上述第4点和第5点主要讲了对日期的加减计算,同样,对于日期,对其年份和月份数据同样可以进行加减计算。
如A2单元格中数据为:2015-5-1,在B2单元格中录入公式:=DATE(YEAR(A2)+1,MONTH(A2),DAY(A2)),这样就求出了单元格中指定日期的第二年的同样日期,即年份数加上1,月份及天的数据不变。
如A3单元格中数据为:2015-5-1,在B3单元格中录入公式:=DATE(YEAR(A2),MONTH(A2)+1,DAY(A2)),此公式对月份数进行加1,最后结果为2015-6-1。
上述讲了对日期型数字的年份和月份的加法计算,同样也可以做减法计算,返回其  结果。

7.计算两日期之间占全年的百分比
DATE函数能够计算两日期之间占全年的百分比,相当于实现YEARFARC函数功能。
如在A2单元格中录入公式:=(DATE(2015,5,1)-DATE(2015,1,1))/360,返回2015年5月1日与2015年1月1日之间的天数占全年(全年按360天计算)的百分比,返回值为0.333333333。
如在A3单元格中录入公式:=(DATE(2015,5,1)-DATE(2015,1,1))/365,返回2015年5月1日与2015年1月1日之间的天数占全年(全年按365天计算)的百分比,返回值为0.328767123。

8.DATE函数最特殊一例
公式=DATE(2015,0,0)表示2014年11月30日的序列号,具体算法为:首先看年月组成,2015年0月(计算机虚拟,实际是指2014年12月),再加上日期即2014年12月0日(又是一个计算机虚拟日期),正常数是0、1、2、3…,如果日期为1时,则是2014年12月1日,但现在日期是0,即2014年12月1日减1天,因此返回值为2014年11月30日。

下一篇:DATEDIF函数