如何在冗长的NETWORKDAYS公式中扣除节假日
解决NETWORKDAYS排除节假日及多行计算的问题
单个日期范围的公式修改
你的原公式是:
=(NETWORKDAYS(MAX(E3,K4),MIN(F3,EOMONTH(K4,0))))
要排除$N3:$N9区域内的节假日,直接给NETWORKDAYS函数添加第三个参数(指定节假日区域)即可,修改后公式如下:
=NETWORKDAYS(MAX(E3,K4),MIN(F3,EOMONTH(K4,0)),$N$3:$N$9)
这里用$N$3:$N$9绝对引用,避免下拉公式时节假日区域发生偏移。
多行日期范围的公式处理
你当前把多行的NETWORKDAYS结果逐个相加,必须给每一个NETWORKDAYS函数都加上节假日参数——因为每个NETWORKDAYS都是独立计算对应时间段内的工作日,需要单独排除该时间段覆盖到的节假日。
修改后的完整公式示例:
=NETWORKDAYS(MAX(E4,K7),MIN(F4,EOMONTH(K7,0)),$N$3:$N$9)+ NETWORKDAYS(MAX(E5,K7),MIN(F5,EOMONTH(K7,0)),$N$3:$N$9)+ NETWORKDAYS(MAX(E6,K7),MIN(F6,EOMONTH(K7,0)),$N$3:$N$9)+ NETWORKDAYS(MAX(E7,K7),MIN(F7,EOMONTH(K7,0)),$N$3:$N$9)+ NETWORKDAYS(MAX(E8,K7),MIN(F8,EOMONTH(K7,0)),$N$3:$N$9)
也可以用SUMPRODUCT简化公式,避免重复编写多个NETWORKDAYS,效果完全一致:
=SUMPRODUCT(NETWORKDAYS(MAX(E4:E8,K7),MIN(F4:F8,EOMONTH(K7,0)),$N$3:$N$9))
这个简化公式会自动遍历E4:E8和F4:F8的每一行,计算对应时间段的工作日并求和。
内容的提问来源于stack exchange,提问作者Sophie Higgins
相关产品推荐
相关产品推荐

