您的位置 首页 > 娱乐休闲

任你一周休几天,仅一个 Excel 函数就能算出区间内的工作日总数

今天教大家计算指定时间范围内的工作日天数,会教一个新函数。


案例:


计算 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 高手。

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“如何计算两个日期之间的工作日,如何计算两个日期之间的工作日天数”边界阅读