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

Excel如何使用公式列出指定月份日期并排除周五和周六

可以实现,分两个版本的公式供你选择:


方案1:适用于Excel 365/2021及以上版本

用SEQUENCE+FILTER组合,逻辑简洁,不需要额外处理空值和日期合法性,自动适配大小月、闰月:

=LET(
  月份起始, EOMONTH(A1,-1)+1,
  当月总天数, DAY(EOMONTH(A1,0)),
  当月全部日期, SEQUENCE(当月总天数,,月份起始),
  过滤后日期, FILTER(当月全部日期, WEEKDAY(当月全部日期,2)<6),
  TRANSPOSE(过滤后日期)
)
  • WEEKDAY(日期,2)规则为周一返回1、周五返回5、周六返回6、周日返回7,筛选<6即可直接排除周五、周六
  • 若需要单行精简写法可使用:
=TRANSPOSE(FILTER(SEQUENCE(DAY(EOMONTH(A1,0)),,EOMONTH(A1,-1)+1),WEEKDAY(SEQUENCE(DAY(EOMONTH(A1,0)),,EOMONTH(A1,-1)+1),2)<6))

方案2:适用于旧版本Excel(无FILTER/LET函数)

基于你原有公式逻辑调整,需使用数组公式操作:

  1. 提前选中足够容纳结果的横向单元格区域(单月工作日最多23天左右,选25个单元格即可)
  2. 输入以下公式,按Ctrl+Shift+Enter确认数组公式生效
=IFERROR(INDEX(IFERROR(DATEVALUE(DAY(ROW($1:$31))&"-"&MONTH($A$1)&"-"&YEAR($A$1)),""),SMALL(IF(WEEKDAY(IFERROR(DATEVALUE(DAY(ROW($1:$31))&"-"&MONTH($A$1)&"-"&YEAR($A$1)),""),2)<6,ROW($1:$31),""),COLUMN(A1))),"")
  • 此处ROW($1:$31)相比你原有公式的ROW(1:30),可适配31天月份的日期生成
  • 超出实际结果数量的单元格会自动显示为空

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:54:04