因为每年的公休都不固定,微软看了也是蒙圈,所以咱们首先要把公休日期和调休日期做一个对照表。
如下图所示,F列是放假时间,G列是调休上班时间。

接下来,咱们就可以在C2单元格中写公式了:
=NETWORKDAYS(A2,B2,F$2:F$28) COUNTIFS(G$2:G$28,">="&A2,G$2:G$28,"<="&B2)

这样就计算出每个月的工作日天数了。
如果要计算任意两个日期之间的工作日天数,只要修改一下A列和B列的起止日期就OK。
公式看起来有点长,其实咱们把他拆分成两部分就容易理解了:
先说这部分:
=NETWORKDAYS(A2,B2,F$2:F$28)
NETWORKDAYS函数用于计算两个日期之间,去除周末和法定节假日的工作日天数。用法为:
=NETWORKDAYS(开始日期,结束日期,需要排除的法定节假日)
把这个用法套到上面的公式里,A2是开始日期,B2是结束日期,而F$2:F$28单元格区域则是要排除的法定节假日。
刚刚这部分,是没有考虑到调休这种特殊情况的。而计算调休的就是下面这部分公式了:
COUNTIFS(G$2:G$28,">="&A2,G$2:G$28,"<="&B2)
COUNTIFS函数的作用是用来统计符合多个条件的个数,这里第一组条件是G$2:G$28,">="&A2,第二组条件是G$2:G$28,"<="&B2。
就是以对照表中的调休日期为统计区域,看看这个区域中的日期有多少个大于等于A2的开始日期,并且小于等于B2的结束日期。说白了,就是看看从开始日期到结束日期这个阶段中,有几天是需要调休上班的。
把前面计算出的去掉法定节假日的工作日天数,加上这个要调休上班的天数,就是实际的工作日天数了。
怎么样,我说明白了吧?
为了便于大家计算使用,老祝把这个对照表上传到百度云了,小伙伴们可以下载计算一下试试看。

好了,今天的内容就是这些吧,祝各位小伙伴一天好心情!
图文制作:祝洪忠
,