绝了!Excel可以这样用:Excel函数范例实战精粹(速查版)
上QQ阅读APP看书,第一时间看更新

3.1 DATE函数:返回特定日期数值

【函数名称】DATE

【主要功能】用于返回特定日期数值,也就是特定日期的序列号。

【使用格式】=DATE(year, month, day)

【参数说明】

掌握基本的时间日期函数DATE, DATE(year, month, day)这三个参数能直接从日期参数中提取对应的年份、月份和所在月的第几天。

1.第一个参数year可以为一到四位。Excel将根据所使用的日期系统解释year参数。默认情况下,Excel for Windows使用1900日期系统,而Excel for Macintosh使用1904日期系统

注意:对于1900日期系统:

❑ 如果year位于0(零)到1899(含)之间,则Excel会将该值加上1900,再计算年份。例如,DATE(115,5,1)将返回2015(1900+115)年5月1日。

❑ 如果year位于1900到9999(含)之间,则Excel将使用该数值作为年份。例如,DATE(2015,5,1)将返回2015年5月1日。如果year小于0或大于等于10000,则Excel将返回错误值#NUM!。

对于1904日期系统:

❑ 如果year位于4到1899(含)之间,则Excel会将该值加上1900,再计算年份。例如,DATE(115,5,1)将返回2015(1900+115)年5月1日。

❑ 如果year位于1904到9999(含)之间,则Excel将使用该数值作为年份。例如,DATE(2015,5,1)将返回2015年5月1日。

❑ 如果year小于4或大于等于10000,或者位于1900到1903(含)之间,则Excel将返回错误值#NUM!。

2.第二个参数month代表每年中月份的数字,可以是一个正整数或负整数

❑ 如果month大于12,将从指定年份的一月份开始往上加算。

例如:公式=DATE(2015,14,2)返回代表2016年2月2日的系列数。具体算法为:以2015年1月0日(即2014年12月31日)为基准日期,2014年12月加上14个月,这时变为2016年2月,由于day参数为2,因此返回值为2016年2月2日。

❑ 如果month小于1, month则从指定年份的一月份开始递减该月份数,然后再减去1个月。

例如:公式=DATE(2015, -3,2)表示2014年9月2日的序列号。具体算法为:以2015年1月0日(计算机虚拟日,实际日期为2014年12月31日)为基准日期,2014年12月减去3个月,这时变为2014年9月,由于day参数为2,因此返回值为2014年9月2日。也可以这样计算2015年1月减去3个月再减去1个月,最终得2014年9月,日期参数为2,返回值2014年9月2日。

注意:上述数据也可以为0,如公式=DATE(2015,0,2)返回值为2014年12月2日。

❑ 如果month为大于等于1,且小于等于12,则直接为计算的月份数据。

例如:公式=DATE(2015,10,1)返回代表2015年10月1日的系列数。

3.第三个参数day代表在该月份中第几天的数字

❑ 如果day大于该月份的最大天数时,将从指定月份的第一天开始往上累加。

例如:公式=DATE(2015,1,35)返回代表2015年2月4日的系列数。具体算法为:以2015年1月0日(计算机虚拟日,实际日期为2014年12月31日)为基准日期,加上15天,2014年12月31日代表数值42004,42004加上35变成42039,表示2015年2月4日的日期序列号(此值是单元格格式为日期型的数据)。

❑ 如果day小于1,则day从指定月份的第一天开始递减该天数,然后再减去1天。

例如:公式=DATE(2015,1, -15)表示2014年12月16日的序列号。具体算法为:以2015年1月0日(计算机虚拟日,实际日期为2014年12月31日)为基准日期,减去15天,2014年12月31日代表数值42004,42004减去15变成41989,表示2014年12月16日的日期序列号(此值是单元格格式为日期型的数据)。也可以这样计算:以2015年1月1日减去15天再减去1天,最终得2014年12月16日。

【应用举例】

DATE函数用于返回特定日期数值,也就是特定日期的序列号。

Excel按顺序的系列数保存日期,这样就可以对其进行计算。如果工作簿使用的是1900日期系统,则Excel会将1900年1月1日保存为系列数1。而如果工作簿使用的是1904日期系统,则Excel会将1904年1月1日保存为系列数0,(1904年1月2日将保存为系列数1)。例如,在1900日期系统中,Excel会将2015年5月1日保存为系列数42125,因为该日期距离1900年1月1日有42124天。

Excel中通常采用的是1900日期系统。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日的序列号。

图3.1 DATE函数提取字符变日期

向下复制公式,得到其他相应结果。

4.以某个日期为基准日,推算其前或后多少天的准确日期

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

图3.2 DATE函数基准日前(或后)多少天的计算

上述正号表示基准日后多少天,负号表示基准日前多少天。如以2014年12月31日为基准日,其前面91天的日期公式为:=DATE(2015,1, A2), A2单元格数据为-91,计算结果为2014-10-1。向下复制公式,就可得到如表3.1所示的结果。

表3.1 DATE函数基准日前(或后)推算日期

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日。