今天教大家计算指定时间范围内的工作日天数,会教一个新函数。
案例:
计算 2021 年 8 月和 10 月共有几个工作日,效果如下图 2 所示。
在给出答案前,我先要介绍一下今天的主角 NETWORKDAYS.INTL 函数。
NETWORKDAYS.INTL 函数详解:
作用:
NETWORKDAYS 函数虽然也能用于计算工作日,但是 NETWORKDAYS.INTL 不仅能计算两个日期之间的所有工作日数,还能使用参数指示哪些天是周末,以及有多少天是周末。周末和任何指定为假期的日期不被视为工作日。语法:
NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])参数:
start_date 和 end_date:必需;要计算其差值的起始和截止日期。start_date 可以早于或晚于 end_date,也可以与它相同。[weekend]:可选;表示介于 start_date 和 end_date 之间但又不包括在所有工作日数中的周末日。weekend 是一个用于指定周末日的周末数字或字符串。以下是 weekend 每个数字的含义列表:
[holidays]:可选;一组可选的日期,表示要从工作日日历中排除的一个或多个日期。holidays 应是一个包含相关日期的单元格区域,或者是一个由表示这些日期的序列值构成的数组常量。holidays 中的日期或序列值的顺序可以是任意的。说明:
如果 start_date 晚于 end_date,则返回值将为负数,数量将是所有工作日的数量。如果 start_date 或 end_date 不在当前日期范围内,则返回 NUM! 错误值。如果周末字符串的长度无效或包含无效字符,则返回 VALUE! 错误值。解决方案:
1. 在 C2 单元格中输入以下公式:
=NETWORKDAYS.INTL(A2,B2)
公式释义:
计算参数中两个日期之间的工作日;第三个参数省略,默认为周六、日双休这要是在从前,很多大厂奉行 996,公式就应该如下:
=NETWORKDAYS.INTL(A2,B2,11)
加了第三个参数11:表示仅休周日还好国家出手了,996 违法,解救了广大劳动人民。所以还是用回原来的公式。
接下来计算 10 月的工作日,这个情况要复杂一些,因为 10 月有国庆长假,还有各种调休,所以我们先要列出 10 月的所有休息日。
2. 在 E 列列出 10 月的所有假期和休息日。
3. 在 C2 单元格输入以下公式:
=NETWORKDAYS.INTL(A3,B3,"0000000",E2:E15)
公式释义:
计算 A3 和 B3 单元格之间的工作日;"0000000":表示将一周 7 天全部设置为工作日;E2:E15:将这个区间的日期视为休息日但我个人认为上述公式是非常不友好的,如果我都已经费劲巴拉将所有休息日列出来了,我就有一万种方法算出工作日,何必还需要动用这么高深的公式?
所以,公式用法是公式用法,在实际工作中,要学会动脑,这个案例可以这么思考:
国庆节不管怎么腾挪假期,国家总归只给 3 天假,其余都是调休;其中有一天跟 9 月的周末调,所以 10 月总共多放 3+1=4 天因此 10 月的工作日公式为:
=NETWORKDAYS.INTL(A3,B3)-4
很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。
现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。
专栏Excel从入门到精通作者:Excel学习世界99币69人已购查看免责声明:内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,本网站所提供的信息只供参考之用。