返回首页
当前位置: 主页 > Excel教程 > Excel函数教程 >

如何在Excel中计算两个日期之间的工作日数量

时间:2012-07-08 18:13来源:Office教程学习网 www.office68.com编辑:麦田守望者

在日常工作中经常需要计算两个日期之间的工作日数量,如计算出勤天数等。在Excel中可以使用NETWORKDAYS函数来进行计算,该函数的语法如下:

NETWORKDAYS(start_date, end_date, [holidays])

其中:

start_date 为开始日期

end_date 为终止日期

holidays 为星期六、星期日以外的假日列表,可选参数

例如要计算日期“2010-5-14”与“2010-6-23”之间的工作日数量。由于这两个日期之间的6月14日至16日为端午节放假调休,实际放假为“2010-6-16”端午节1天,所以这两个日期之间的工作日数量为:

=NETWORKDAYS("2010-5-14","2010-6-23","2010-6-16")

或:

=NETWORKDAYS("2010-5-14","2010-6-23")-1

公式返回结果为28,即日期“2010-5-14”与“2010-6-23”之间的工作日数量为28(含这两个日期)。

有些时候使用第二个公式来计算显得更为方便一些,特别是当假日适逢星期六、星期日需放假调休时。由于国家规定如果假日适逢星期六、星期日,应当在工作日补假,因而只需减去两个日期之间的假日数即可得到工作日数量。例如A1单元格中包含起始日期“2010-8-23”,B1单元格中包含终止日期“2010-10-20”,由于这两个日期之间包含中秋节放假1天、国庆节放假3天,在C1单元格中输入公式:

=NETWORKDAYS(A1,B1)-4

公式返回结果为39,注意由于A1、A2单元格为日期格式,公式所在的C1单元格也会被自动设置为日期格式,这时需将其单元格格式调整为“常规”。

NETWORKDAYS函数在Excel 2010、Excel 2007中可以直接使用,但在Excel 2003需加载“分析工具库”后才能使用。 方法是单击菜单“工具→加载宏”,在 弹出的“加载宏”对话框中勾选“分析工具库”,单击“确定”。

如何在Excel中计算两个日期之间的工作日数量

上述工作日的计算是默认星期六、星期日为周末的,有时需要把星期六也算作工作日,即仅星期日为周末,这时怎样计算两个日期之间的工作日呢?例如要计算2010年3月中包含星期六的工作日数量,假如A1单元格中为开始日期“2010-3-1”,B1单元格中位终止日期“2010-3-31”,在C1单元格中输入公式:

=SUMPRODUCT(--(MOD(ROW(INDIRECT("1:"&(B1-A1+1)))+A1-2,7)>0))

即可得到2010年3月份包含星期六的工作日数量,公式返回结果为27。

在Excel 2010中,还可以使用新增函数NETWORKDAYS.INTL直接进行计算。NETWORKDAYS.INTL函数可以指定一个星期中的任意某天为周末,其语法为:

NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])

其中可选参数“weekend”用数值或7个字符长的字符串指定周末。该参数为数值时:

周末数

周末日

1 或省略

星期六、星期日

2

星期日、星期一

3

星期一、星期二

4

星期二、星期三

5

星期三、星期四

6

星期四、星期五

7

星期五、星期六

11

仅星期日

12

仅星期一

13

仅星期二

14

仅星期三

15

仅星期四

16

仅星期五

17

仅星期六

该参数为字符串时,必须为7个字符长。该字符串由“1”和“0”组成,其中的每个字符代表一周中的一天,从星期一开始,用“1代表非工作日,“0代表工作日。如仅指定星期日为周末,该参数为“0000001”。本例中可使用下面的公式:

=NETWORKDAYS.INTL(A1,B1,11)

或:

=NETWORKDAYS.INTL(A1,B1,"0000001")

两个公式都返回27

------分隔线----------------------------
标签(Tag):excel excel2007 excel2010 excel2003 excel技巧 excel教程 excel实例教程 excel2010技巧
------分隔线----------------------------
推荐内容
猜你感兴趣