Excel VBA 编程开发应用系列 (二十一)— Excel常用的日期函数
Excel为我们提供了大约有20个日期和时间的处理函数,这些函数对于处理表格中的日期数据都是非常有用的。下面介绍几个 常用的Excel日期函数 及其实际应用案例。
获取当前日期和时间的函数:today() 和now()
today函数,仅插入当前的日期。now函数,同时插入日期和具体时间。
日期及时间的拆分函数:Year(),Month(),day(),hour(),minute()及second()
函数year、month、day分别返回日期值对应的年份、月份、日期,函数hour、minute、second分别返回日期值对应的时、分、秒,见下图;
判断日期是哪个周的函数:weeknum()
如果要判断某个日期是该年份的第几周,可以使用WEEKNUM函数,其语法为:
=WEEKNUM(serial_num,return_type)、
参数含义如下:
=WEEKNUM(日期,类别)
当参数return_type省略或为1时,表示将星期日作为一个星期的起始日;当参数return_type为2时,表示将星期一作为一个星期的起始日。
例如:判断2019年12月21为2019年的哪个周时,使用如下函数:=WEEKNUM("2019-12-21".2)
判断日期是星期几的函数:WEEKDAY()
要判断某个日期是星期几,需要使用WEEKDAY函救。这个函数常常用在设计日程安排表或者制作相关的报表方面。
WEEKDAY函数用于获取某日期为星期几。默认情况下。其值为1(星期日)—7 (星期六)之间的整数。其语法如下:
=WEEKDAY(serial_number, return_type)
参数含义如下:
=WEEKDAY(日期,[类型])
参数serial_number为日期序列号。可以是日期数据或日期数据单元格的引用。
参数return_type为确定返回值类型的数字。如下所示:
1或省略 数字1表示星期日。2表示星期……7表示星期六
2 数字1表示星期一。2表示星期二……7表示星期日
3 数字0表示星期一。1表示星期二……6表示星期日
计算在某日期(起始日期)之前或之后、与该日期相隔指定工作日的某一日期的日期值函数:workday()
workday()函数返回在某日期(起始日期)之前或之后、与该日期相隔指定工作日的某一日期的日期值。(工作日不包括周末和专门指定的假日。)
WORKDAY函数的语法结构
WORKDAY(start_date, days, [holidays])
WORKDAY 函数语法具有下列参数:
Start_date 开始日期
Days start_date 之前或之后不含周末及节假日的天数。Days 为正值将生成未来日期;为负值生成过去日期。
Holidays 可选参数,一个可选列表,其中包含需要从工作日历中排除的一个或多个日期,例如各种省/市/自治区和国家/地区的法定假日及非法定假日。该列表可以是包含日期的单元格区域,也可以是由代表日期的序列号所构成的数组常量。
获取指定日期往前或往后几个月的特定月份的月底日期函数:EOMONTH()
其语法为:
=EOMONTH(start_date,months)
参数含义:
=EOMONTH(开始日期,几个月)
计算两个日期间的工作日:networkdays()
使用函数networkdays(start_date,end_date,holidays),返回起始日start_date和截止日end_date之间的净工作日天数(不包含holidays),例如:计算2019/1/1至2019/12/31的净工作日,见下图;
计算两个日期间隔的天\月\年数:datedif()
使用函数datedif计算两个日期间隔的天\月\年数,函数第3个参数("d"代表天,"m"代表月,"y"代表年),见下图;