如何在Excel中计算跨月周内的当月工作日天数
解决跨月周的当月工作日统计问题
针对你需要统计每周中仅属于周结束日期所在月份的工作日天数(排除节假日)的需求,可以用以下Excel公式解决:
假设:
E50= 周的起始日期F50= 周的结束日期(即Week Ending日期)$H$49:$H$61= 节假日日期范围
核心公式
=IF(MONTH(E50)=MONTH(F50), NETWORKDAYS(E50,F50,$H$49:$H$61), NETWORKDAYS(EOMONTH(F50,-1)+1,F50,$H$49:$H$61) )
公式说明
- 同月判断:先用
MONTH(E50)=MONTH(F50)检查周的起止日期是否在同一个月。如果是,直接用常规NETWORKDAYS计算整周工作日。 - 跨月处理:如果周跨两个月,就只计算周结束日期所在月份的第一天到周结束日的工作日:
EOMONTH(F50,-1)+1用于生成周结束日期所在月份的第一天(比如F50是06/08/2023,这个函数会返回01/08/2023)- 再用
NETWORKDAYS计算这段日期内的工作日,就得到该周中属于当月的天数,和你示例中06/08/2023周返回1天的结果一致。
扩展:如果需要统计周起始日期所在月份的天数
如果你需求是统计周中属于起始日期所在月份的天数,只需调整公式为:
=IF(MONTH(E50)=MONTH(F50), NETWORKDAYS(E50,F50,$H$49:$H$61), NETWORKDAYS(E50,EOMONTH(E50,0),$H$49:$H$61) )
这里EOMONTH(E50,0)会返回起始日期所在月份的最后一天,计算起始日到当月末日的工作日即可。
内容的提问来源于stack exchange,提问作者Vicky
相关产品推荐
相关产品推荐

