大家好,今天我们来探讨如何精准计算给定日期区间内的正常工作日天数与放假天数。以 2025 年 3 月份为例,若想知道该月的工作日和放假天数,常规做法是手动数,通过肉眼统计可知,假设周六和周日为固定休息日,2025 年 3 月上班天数为 21 天,放假天数为 10 天。但手动计数不仅效率低,而且极易出错。这里,我们将介绍一个实用函数 ——NETWORKDAYS.INTL,它能够高效、准确地计算工作日和放假天数。
NETWORKDAYS.INTL 函数详解
NETWORKDAYS.INTL函数包含多个参数。
下面通过实际案例来深入理解其用法。
若要计算 2025 年 3 月 1 日至 31 日的上班天数,在相应单元格中输入公式:=NETWORKDAYS.INTL(B2,C2,"0000011")。该函数的第一参数 B2 代表起始日期,第二参数 C2 代表结束日期。第三参数 “0000011” 用于指定一周中的周末情况,它既可以是数字,也可以是文本字符串。其中,“0” 代表工作日,“1” 代表周末休息日。在此例中,“0000011” 表示周一至周五为工作日,周六和周日为休息日。若设置为 “1100000”,则意味着周一周二是休息日,周三至周日为工作日。
为方便记忆,我们可以采用这样的技巧:计算上班天数时,将上班日期对应的标识设为 “0”,休息天设为 “1”;计算休息天数时,将休息天设为 “0”,上班日期设为 “1”,即对 “0” 出现的次数进行求和。但需注意,在系统底层逻辑中,始终是 “0” 代表工作日,“1” 代表休息日。
按照上述逻辑,计算放假天数时,同样利用 NETWORKDAYS.INTL函数,只需将周六和周日对应的标识设为 “0”,即可通过公式得出放假天数。
比如,当周一周二为休息日,其余时间为上班日时,重新计算放假天数,会得到休息日为 9 天。
进阶应用:考虑法定假期与调休
当日期区间内存在法定假期及调休情况时,计算会稍微复杂一些。
以 2025 年 2 月份为例,如上图所示,1 日、2 日、3 日、4 日为法定休息日,8 日为调休日,此时计算 2 月份上班天数和休息天数的方法如下:
计算上班天数,在目标单元格(假设为黄色单元格)中输入公式:=NETWORKDAYS.INTL(B2,C2,"0000011",B7:B10)+COUNTIFS (C7,C7) 。
这里,前三个参数与前面介绍的一致,第四参数B7:B10表示除正常周末外的额外假期,即 2 月份列出的放假日期。通过选中这些日期区域作为第四参数,可将法定假期纳入计算。最后,利用COUNTIFS函数对调休日期(在此例中即 8 日)的天数进行计数,并将其加到 NETWORKDAYS.INTL函数的计算结果中,从而得到 2 月份总的上班天数。
最后计算放假天数:
计算放假天数,使用公式:总天数 - 上班天数 1 。这里加 1 是因为日期相减时,如 5 号减去 4 号,直接相减结果为 4,但实际包含的天数是 5 天,所以需要加 1 进行修正。
同样原理,我们还能计算从当天到年底的上班天数和休息天数。
假设本年的放假日期和调休日期已确定,要实现每天自动更新剩余上班天数,在黄色目标单元格中输入公式:=NETWORKDAYS.INTL(F24,G24,"0000011",B16:B43)+COUNTIFS (F16:F20,">="&F24,F16:F20,"<="&G24) 。通过这个公式,结合当前日期和全年假期安排,就能动态、准确地获取剩余工作天数。
通过以上对 NETWORKDAYS.INTL函数的详细讲解与应用示例,我们全面掌握了在不同场景下计算工作日和放假天数的高效方法。无论是常规月份,还是存在法定假期与调休的复杂情况,借助这一函数都能精准得出结果,极大提升工作效率,告别手动计数的繁琐与易错。
评论 (0)