使用NetWorkDays.INTL函数统计员工工作天数的方法

时间:2019-11-20
阅读:

在制作工资表、计算新员工或辞职员工工资时,由于很多情况下员工不是月初入职或月末离职的,算员工的工作日天数时就会遇到一个棘手的难题:扣除周末天数。

记得有位HRMM是这样做的,翻开日历,然后在上面一天天的数天数。酒店行业每月都会有几十名新入职和离职员工,一个数一分种,要数一个多小时。

其实,在excel2010新增的NetWorkDays.INTL函数,正好可以解决这个问题。它就是:

NetWorkDays.INTL

(返回两个日期之间的所有工作日数,使用参数指示哪些天是周末,以及有多少天是周末。周末和任何指定为假期的日期不被视为工作日。)

下面是2015年1月份的工资表局部。

可以帮这位HR妹妹这样设置公式:

C2=NETWORKDAYS.INTL(IF(B2<DATE(2015,1,1),DATE(2015,1,1),B2),DATE(2015,1,31),11)

NetWorkDays.INTL函数公式说明

1、IF(B2<DATE(2015,1,1),DATE(2015,1,1),B2);区分是不是新入职,如果不是新入职按本月1日作为开始日期,否则即为新入职,按实际入职日期算。

2、DATE(2015,1,31):本月最后一天作为计算的截止日期。

3、11: 表示本公司是一周六天工作日,星期日是休息日期。

NetWorkDays.INTL函数语法(来自excel帮助文件)

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

NETWORKDAYS.INTL 函数语法具有以下参数 (参数:为操作、事件、方法、属性、函数或过程提供信息的值。):

1、start_date 和 end_date 必需。要计算其差值的日期。start_date 可以早于或晚于 end_date,也可以与它相同。

2、weekend 可选。表示介于 start_date 和 end_date 之间但又不包括在所有工作日数中的周末日。weekend 是周末数值或字符串,用于指定周末时间。

weekend 数值表示以下周末日:

weekend 字符串值为 7 个字符长,该字符串中的每个字符代表一周中的一天,从星期一开始。1 代表非工作日,0 代表工作日。该字符串中只允许使用字符 1 和 0。使用 1111111 将始终返回 0。

例如,0000011 得到的结果是星期六和星期日为周末。

3、holidays 可选。一个包含一个或多个日期的可选集合,这些日期将从工作日日历中排除。假期应该是包含日期的单元格区域,也可以是代表这些日期的序列值的数组常量。假期中的日期或序列值的顺序可以是任意的。

注解

1、如果 start_date 晚于 end_date,则返回值将为负数,数量将是所有工作日的数量。

2、如果 start_date 在当前日期基准值的范围之外,则 NETWORKDAYS.INTL 返回错误值 #NUM!。

3、如果 end_date 在当前日期基准值的范围之外,则 NETWORKDAYS.INTL 返回错误值 #NUM!。

4、如果 weekend 字符串的长度无效或包含无效字符,则 NETWORKDAYS.INTL 返回错误值 #VALUE!。

返回顶部
顶部