日期与时间

Excel中的日期和时间本质上是以数值处理的,表示与基准时间点的距离。基准时间点为1900年1月0日0时(方便计算而设置的基准点,看起来怪怪的)。表示日期和时间数据时,整数部分指定距离基准时间的天数,小数部分表示当天时间的百分比,如1表示1900年1月1日0时,1.5表示1900年1月1日中午12时。应注意,Excel中只能处理1900到9999年的日期。

单元格中显示日期和时间时,可以通过设置单元格格式窗口“数字”页中的“日期”、“时间”或“自定义”项进行设置,如下图显示的就是“日期”的选项。

设置日期格式

获取日期和时间

首先来看如何获取日期和时间数据,获取系统的日期和时间可以使用如下函数:

  • NOW()函数,获取当前日期和时间。默认格式为“年/月/日 时:分”。
  • TODAY()函数,获取当前日期。默认格式为“年/月/日”。

请注意,重新打开工作表后,NOW()和TODAY()函数都会重新载入新的系统时间。

根据年、月、日组合日期时可以使用DATE()函数,其参数依次为年、月、日数据,如DATE(2026,1,25)返回“2026/1/25”。相应的,可以使用TIME()函数通过时、分、秒组合时间数据,如TIME(11,22,33)返回“11:22:33”。

从日期和时间数据中可以通过YEAR()、MONTH()、DAY()、HOUR()、MINUTE()、SECOND()函数分别提取年、月、日、时、分、秒数据。

获取星期几时可以使用WEEKDAY()函数,参数1指定日期信息,函数默认返回1到7的数字,其中1为星期日、2为星期一、3为星期二,以此类推;虽然WEEKDAY()函数的第2个参数可以改变返回结果类型,不过,我们建议在工作中统一使用默认规则。显示星期名称时可以使用TEXT()函数进行格式化,如TEXT(WEEKDAY(NOW()),"aaaa")返回系统当前时间的星期名称,显示的名称与系统语言设置有关,如中文时会显示“星期一”、“星期二”、……。计算指定日期是一年中的第几周时可以使用WEEKNUM()函数,如WEEKNUM(NOW())可以获取系统当前时间是一年中的第几周。

此外,将文本内容转换为日期时可以使用DATEVALUE()函数,转换为时间可以使用TIMEVALUE()函数。

日期与时间计算

由于Excel中的日期和时间处理方式比较特殊,在根据天数或时间进行推算时是比较方便的,比如系统当前日期加10天只需要使用公式“=TODAY()+10”即可,而加10.5就是加上10天12小时。需要相加具体的年、月、日数据时,可以使用DATE()函数生成,如“=NOW()+DATE(1,2,3)”返回系统当前时间加上1年2个月3天。如果需要加上具体的时间,可以使用通过TIME()函数生成所需要加的时间信息,如公式“=TODAY()+TIME(11,30,50)”可以返回系统时间当天11点30分50秒的日期和时间,如果单元格无法显示完整信息,可以在设置单元格格式窗口中的“数字”页的自定义中设置格式“yyyy/m/d h:mm:ss”。

需要计算两个日期时间值之间的整年、整月、整天数据可以使用DATEDIF()函数,其中,参数1和参数2指两个日期时间值,参数2日期应大于参数1;参数3指定返回类型,"Y"返回整年,"M"返回整月,"D"返回天数。通过出生日期计算周岁时就可以使用DATEDIF()函数,如公式“=DATEDIF("1996/10/22",NOW(),"Y")”就可以计算1996年10月22日出生人员到当前系统时间的周岁。

下一篇文章《逻辑运算与条件判断》中还将介绍闰年的判断方法。