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

求优化:计算指定月份第N个/最后一个指定工作日的Excel公式

计算指定年月的第N个/首尾指定工作日的Excel实现

单元格配置

  • 单元格B3:下拉选项为 First、Second、Third、Fourth、Last(用于选择目标是第1/2/3/4个或最后一个指定工作日)
  • 单元格C3:下拉选项为 Sunday、Monday、Tuesday、Wednesday、Thursday、Friday、Saturday(指定目标工作日类型)
  • 单元格A6:输入4位整数年份
  • 单元格B6:输入整数月份

现有公式实现

辅助单元格公式

  • 单元格B2(将选择的文本序号转为数字):
    =IF(B3="First",1,IF(B3="Second",2,IF(B3="Third",3,IF(B3="Fourth",4,5))))
    
  • 单元格C2(映射工作日为WEEKDAY函数的参数值):
    =IF(C3="Sunday",16,IF(C3="Monday",17,IF(C3="Tuesday",11,IF(C3="Wednesday",12,IF(C3="Thursday",13,IF(C3="Friday",14,15))))))
    
    注:映射规则为11(Tuesday)、12(Wednesday)、13(Thursday)、14(Friday)、15(Saturday)、16(Sunday)、17(Monday)

核心计算单元格(C6,输出目标日期)

=IF(B2<5,DATE(A6,B6,B2*7+1)-WEEKDAY(DATE(A6,B6,B2*7-1),C2),EOMONTH(DATE(A6,B6,1),0)-MOD(WEEKDAY(EOMONTH(DATE(A6,B6,1),0)+5,C2),7))

当月首尾日期计算

=DATE(A6,B6,1)  // 计算当月第一天
=EOMONTH(DATE(A6,B6,1),0)  // 计算当月最后一天

求优说明

目前已实现需求,但希望得到更简洁高效的优化方案,欢迎提供改进思路。

内容的提问来源于stack exchange,提问作者Mark Main

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 22:09:22