You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel公式需求:计算两日期间各月工作日天数(排除周末)

可横向拖拽的Excel公式:计算起止日期间每月工作日(排除周末)天数

需求背景

需要编写可横向拖拽的Excel公式,计算指定起止日期范围内每个月的工作日天数(排除周六周日),原公式已实现自然天数计算,需修改适配工作日场景。示例数据如下:

START DATEEND DATEMayJunJulAug...
228/06/2304/07/230320...

原自然天数公式

=MAX(0,MIN(IF($B2="",TODAY(),$B2),EOMONTH(DATEVALUE(C$1&"-23"),0))-MAX($A2,DATEVALUE(C$1&"-23"))+1)

修改后的工作日公式

=MAX(0,NETWORKDAYS(MAX($A2,DATEVALUE(C$1&"-23")),MIN(IF($B2="",TODAY(),$B2),EOMONTH(DATEVALUE(C$1&"-23"),0))))

公式说明

  • 日期边界定位
    • DATEVALUE(C$1&"-23"):将表头的月份名称(如May)转换为对应年份(示例为2023)的当月1号日期
    • MAX($A2, DATEVALUE(C$1&"-23")):取实际起始日期与当月1号的较晚值,作为工作日计算的有效起始点
    • MIN(IF($B2="",TODAY(),$B2), EOMONTH(DATEVALUE(C$1&"-23"),0)):取实际结束日期(若B2为空则用当日)与当月最后一天的较早值,作为工作日计算的有效结束点
  • 工作日计算核心
    • NETWORKDAYS(起始点, 结束点):Excel内置函数,自动统计两个日期之间的工作日数量(默认排除周六、周日)
  • 异常值修正
    • MAX(0, ...):当起始点晚于结束点时(如示例中May列的情况),返回0避免出现负数结果

示例验证

以第2行数据为例:

  • May列:起始点(28/06/23)晚于May最后一天(31/05/23),返回0
  • Jun列:计算28/06/23至30/06/23的工作日,共3天(周三、周四、周五)
  • Jul列:计算01/07/23至04/07/23的工作日,共2天(周一、周二,排除周六、周日)

内容的提问来源于stack exchange,提问作者Dylan Fischer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 22:35:13