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

如何在电子表格中实现输入月份及日期自动填充工作日数据?

电子表格工作日自动计算实现方案

一、自动计算指定月份的总工作日数(周一至周五)

方法1:直接用内置函数(无需额外数据源)

假设你在A1单元格(红圈位置)输入目标月份(格式如2024/5或5/2024),在B1单元格(黄圈位置)输入以下公式即可自动计算:

  • Excel/Google Sheets通用公式:
    =NETWORKDAYS.INTL(EOMONTH(A1,-1)+1,EOMONTH(A1,0),1)
    
    公式说明:
    • EOMONTH(A1,-1)+1:生成当月第一天的日期
    • EOMONTH(A1,0):生成当月最后一天的日期
    • 第三个参数1:指定周一至周五为工作日(需自定义工作日可调整该参数)

方法2:借助日历数据源实现(适用于需可视化日期列表的场景)

如果必须使用日历数据源,以Excel的Power Query为例:

  1. 点击「数据」选项卡 → 「获取数据」→ 「自其他来源」→ 「自空白查询」
  2. 在公式栏输入以下代码(关联A1单元格的月份值):
    = List.Dates(Date.StartOfMonth(Sheet1!$A$1), Date.DaysInMonth(Sheet1!$A$1), #duration(1,0,0,0))
    
    此代码会生成当月所有日期的列表
  3. 切换到「转换」选项卡 → 添加自定义列,输入公式标记工作日:
    = Date.DayOfWeek([Date], Day.Monday) < 5
    
    (返回True代表是周一至周五的工作日)
  4. 点击「开始」选项卡 → 「关闭并上载至」,将结果加载到新工作表;再用COUNTIF函数统计True的数量,关联到黄圈单元格即可

二、自动计算截至指定日期的已过工作日数

方法1:内置函数快速实现

假设你在C1单元格(绿圈位置)输入前一个工作日的日期,在D1单元格(蓝圈位置)输入公式:

  • Excel/Google Sheets通用公式:
    =NETWORKDAYS.INTL(EOMONTH(A1,-1)+1,C1,1)
    
    公式会自动统计当月第一天到指定日期之间的工作日总数

方法2:基于日历数据源的动态统计

延续上面Power Query的日历数据源:

  1. 编辑已创建的查询,添加「筛选行」步骤,筛选日期≤C1单元格的数值
  2. 统计筛选后工作日标记为True的行数,设置查询的「刷新频率」为「当单元格值变化时刷新」,即可实现输入日期后自动更新已过工作日数

关于Date Picker的问题排查

之前使用Date Picker失败,大概率是控件未正确关联目标单元格:

  • Excel中:点击「开发工具」选项卡 → 「插入」→ 选择「日期选取器(ActiveX控件)」,右键控件 → 「属性」,将LinkedCell设置为A1(月份输入框)或C1(前工作日输入框),选择日期后单元格值会自动同步
  • Google Sheets中:插入「日期」类型的单元格数据验证,即可点击单元格弹出日期选择器,无需额外控件

内容的提问来源于stack exchange,提问作者Chris Lovell

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 19:52:26