第8章 19个日期和时间函数
- 格式:pdf
- 大小:550.47 KB
- 文档页数:20
第8章日期和时间函数在EXCEL中,日期和时间函数是用来处理日期和时间对象的函数,熟练掌握这些函数,用户可以处理各种复杂和时间相关的实际问题。
在本章中,将会详细讲解它们各自的功能、表达式和参数,并且结合案例进行说明。
8.1 日期系统介绍在详细介绍各种日期和时间函数之前,首先向用户介绍EXCEL提供的日期系统。
在EXCEL中,包含两种不同的日期系统,分别是1900年日期系统和1904年日期系统。
本章所介绍的日期和时间函数都分别以不同的日期系统作为参照基础。
在1900日期系统中,1900年的1月1号是系统的第一天,在日期系列编号中是1;在1904日期系统中,1904年的1月1号为第一天,在日期系列中编号是1;两种日期系统的最后一天,也就是日期序列的最大值都是9999年12月31号。
如果用户需要切换两种日期系统,可以进行如下的操作:(1)选择工具栏中的【工具】|【选项】命令,打开【选项】对话框。
(2)选择【重新计算】选项卡,在【工作薄选项】选项框中选中【1904年日期系统】复选框,将系统时间设置为“1904年日期系统”,如图8.1所示。
图8.1 设置日期系统8.2 函数应用实战8.2.1 DATE函数:返回特定日期的序列号DATE函数的功能是返回特定日期的系列编号,这个编号是指计算的日期相对于起始日期的天数值。
DATE函数的表达式是:DATE(year,month,day)参数year、month、day分别代表年、月、日。
【实际应用】140141某唱片公司今年推行了5张专辑,公司的销售部门需要了解每张专辑在市面上的流通时间,专辑的上市时间和下市时间如图8.2所示。
图8.2 专辑的上市和下市时间在单元格H3中输入函数表达式“=DATE(E3,F3,G3)-DATE(B3,C3,D3)”,计算专辑A 的流通时间,然后利用自动填充功能计算其他专辑的流通时间,结果如图8.3所示。
图8.3 计算专辑的流通时间在上面的公式中,首先使用DATE(E3,F3,G3)计算专辑A 下市的日期编号,然后使用DATE(B3,C3,D3)计算出上市的日期编号,两者的差值就是专辑A 的流通时间。
同时,该公式的计算结果与日期系统无关,因为这个例子计算的是相对的差值,与基准的日期没有关系。
说明:用户在使用DATE 函数的时候,需要注意到单元格的数字格式会影响返回值。
如果单元格的数字格式是“日期”,那么DATE 函数返回的是日期,而不是日期的序列编号。
8.2.2 DATEIF 函数:计算两个日期间的天数DATEDIF 计算两个日期之间的天数、月数或年数。
提供此函数是为了与 Lotus 1-2-3兼容。
DATEDIF 的表达式为:DATEDIF(start_date,end_date,unit)参数start_date 表示时间段内的第一个日期或起始日期;参数end_date 表示时间段内的最后一个日期或结束日期;参数unit 表示所需信息的返回类型。
【实际应用】某公司统计了公司员工的入职日期,公司需要计算每位员工的工龄,需要精确到“日”,员工的人力资源信息如图8.4所示。
图8.4 基础员工信息在单元格D2中输入“=DATEDIF(C2,TODAY(),"y")&" 年, "&DATEDIF(C2,TODAY() ,"ym")&" 月零"&DATEDIF(C2,TODAY(),"md")&" 日"”,计算第一名员工的工龄,然后利用自动填充功能计算其他员工的工龄,结果如图8.5所示。
图8.5 计算员工的工龄在上面的公式中,使用“DATEDIF(C2,TODAY(),"y")”计算员工的入职日期和当前日期之间相差的年份,使用“DATEDIF(C2,TODAY(),"ym")”计算员工的入职日期和当前日期之间相差的月份,使用“DATEDIF(C2,TODAY(),"md")”计算员工的入职日期和当前日期之间相差的日期,三个公式之间的主要差别是参数unit。
说明:在函数DA TEIF函数中,参数start_date和end_date的日期有多种输入方法:带引号的文本串(例如"2001/1/30")、系列数(例如,如果使用1900 日期系统则36921 代表2001 年1 月30 日)或其他公式或函数的结果(例如,DATEV ALUE("2001/1/30"))等。
8.2.3 DATEVALUE函数:将日期转换为序列号DATEVALUE函数的功能是计算某个日期的系列编号。
DATEVALUE函数的表达式是:DATEVALUE(date_text)参数date_text是一个字符串,其中的内容是日期,只要是EXCEL中可以识别的日期格式就可以作为参数。
【实际应用】某唱片公司今年推行了5张专辑,公司的销售部门需要了解每张专辑在市面上的流通时间,专辑的上市时间和下市时间如图8.2所示。
在单元格D3中输入函数表达式“=DATEVALUE(C2)-DATEVALUE(B2)”,计算专辑A的流通时间,然后利用自动填充功能计算其他专辑的流通时间,结果如图8.7所示。
图8.6 专辑的上市和下市时间图8.7 计算专辑的流通时间142说明:使用DA TEVALUE函数似乎比DATE函数复杂,但是DATEV ALUE函数有一个十分重要的优点,就是他的参数的个数比较少,而且范围广泛。
只要是EXCEL可以识别的日期格式都可以作为DATEV ALUE函数的参数。
8.2.4DAY函数:返回日期天数DAY函数返回一个序列数所代表的日期在当月的天数,DAY函数的表达式是:DAY(serial_number)参数serial_number表示日期序列,格式是数值或者日期格式。
【实际应用】根据某公司员工的出生日期,计算员工出生日期的星期数,员工的信息如图8.8所示。
根据上面的数据信息,可以计算员工出生日期的星期数,具体步骤如下:(1)在单元格D2中输入函数表达式“=DAY(C2)”,计算单元格C2中的日期在当月中天数,如图8.9所示。
图8.8 基础数据信息图8.9 计算出生日期在当前月的天数(2)设置单元格的格式。
选择单元格D2,单击鼠标右键,在弹出的快捷菜单中选择【设置单元格格式】选项,打开【单元格格式】对话框,选择【数字】选项卡,然后选择【自定义】选项,然后在【类型】选框中输入“dddd”,如图8.10所示。
(3)利用自动填充功能计算其他员工出生日期的星期数,得到的结果如图8.11所示。
图8.10 设置单元格格式图8.11 计算员工出生的星期数说明:DAY函数的参数除了是日期格式,还可以是数值格式,这个时候数值格式的参数代表的是某个日期在时间系统中的序列号(类似于DATE函数的返回值)。
1438.2.5 DAYS360函数:返回相差天数DAYS360函数的功能是按照一年360天的计算方法计,DAYS360函数的表达式为:DAYS360(start_date,end_date,method)。
参数start_date表示的是起始日期;参数end_date表示的终止日期;参数method表示的是采用的计算方法。
【实际应用】几个投资者分别考察了不同的投资项目,分析了各项投资项目的起始日期和回收日期,计算投资周期,基础信息如图8.12示。
在单元格D2中输入函数表达式“=DAYS360(B2,C2,TRUE)”,计算第一个投资人的投资周期,然后利用自动填充功能计算其他投资者的周期,结果如图8.13所示。
图8.12 基础投资信息图8.13 计算投资周期说明:在函数中,如果参数method是FALSE或者省略,计算方法是美国方法。
在这个方法中,如果起始日期是一个月的31号,则等于同月的30号。
如果终止日期是一个月的31号,并且起始日期早于30号,则终止日期等于下一月的1号,否则,终止日期等于本月的30号;如果method参数如果是TRUE,那么选择的计算方法就是欧洲方法。
在这个方法中,如果起始日期和终止日期是一个月的31号,都等于本月的30号。
8.2.6 EDATE函数:返回日期之前或之后月数的序列号EDATE函数的功能是返回指定日期之前或之后指定月份数的日期系列数。
EDATE函数的表达式为:EDATE(start_date,months)参数start_date代表开始日期的一个日期;参数months表示在start_date 之前或之后的月份数,未来日期用正数表示,过去日期用负数表示。
【实际应用】某公司统计了一批产品的生产日期和保质期,计算各产品的过期日期,关于产品的基础信息如图8.14所示。
在单元格D2中输入函数表达式“=EDATE(B2,C2)”,计算产品A的过期日期,然后利用自动填充功能计算其他产品的过期日期,结果如图8.15所示。
144145图8.14 基础产品信息 图8.15 计算产品的过期日期 说明:如果该函数不存在,请运行“安装”程序安装“分析工具库”。
安装完毕之后,必须通过“工具”菜单中的“加载宏”命令进行启动。
如果参数 start_date 不是有效日期,函数 EDATE 返回错误值 #NUM!。
如果参数 months 不是整数,将截尾取整。
8.2.7 EOMONTH函数:返回数月之前或之后的月末序列号 EOMONTH函数的功能是返回参数start-date 之前或之后指定月份中最后一天的系列数。
EOMONTH 函数的表达式为:EOMONTH(start_date,months)参数start_date 代表开始日期的一个日期;参数months 表示在 start_date 之前或之后的月份数,未来日期用正数表示,过去日期用负数表示。
【实际应用】已知多个投资项目的投入日期以及投资周期,计算每个投资项目的回收日期。
其中项目的基础信息如图8.16所示。
在单元格D2中输入函数“=EOMONTH(B2,C2)”,得到第一个投资项目的回收日期,然后利用自动填充功能得到其他投资项目的回收日期,如图8.17所示。
图8.16 投资的基础信息 图8.17 计算投资的回收周期 8.2.8 HOUR、MINUTE 和 SECOND 函数:返回小时、分和秒HOUR 函数的功能是计算某个时间值或者代表时间的序列编号对应的小时数;MINUTE 函数的功能是计算某个时间值对应的分钟数;SECOND 函数的功能是计算某一个时间值的秒数。
HOUR 、MINUTE 和 SECOND 函数的表达式分别为:HOUR(serial_number)MINUTE(serial_number)SECOND(serial_number)参数serial_number 表示需要计算小时数、分钟数和秒数的时间,可以是所有EXCEL 可以识别的时间格式。