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

如何统计两日期间指定星期几的天数(单单元格多星期输入)

统计两日期区间内指定多星期的总天数

针对你需要在单个单元格指定多个星期(如“周二,周三”或“3,4”),并统计两日期间对应星期天数的需求,以下是适配多星期输入的公式方案:

方案1:单元格输入星期名称(支持中文/英文)

假设:

  • 开始日期存于单元格 A1
  • 结束日期存于单元格 B1
  • 指定星期(如“周二,周三”或“Tuesday,Wednesday”)存于单元格 C1

中文星期名称公式:

=SUMPRODUCT(--(ISNUMBER(MATCH(WEEKDAY(ROW(INDIRECT(A1&":"&B1))),MATCH(TRIM(MID(SUBSTITUTE(C1,",",REPT(" ",99)),(ROW(INDIRECT("1:"&LEN(C1)-LEN(SUBSTITUTE(C1,",",""))+1))-1)*99+1,99)),{"周日","周一","周二","周三","周四","周五","周六"},0),0)))

英文星期名称公式:

把公式中的中文星期数组替换为英文即可:

=SUMPRODUCT(--(ISNUMBER(MATCH(WEEKDAY(ROW(INDIRECT(A1&":"&B1))),MATCH(TRIM(MID(SUBSTITUTE(C1,",",REPT(" ",99)),(ROW(INDIRECT("1:"&LEN(C1)-LEN(SUBSTITUTE(C1,",",""))+1))-1)*99+1,99)),{"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"},0),0)))

公式逻辑:

  1. 通过 SUBSTITUTE+MID+TRIM 拆分单个单元格中的多星期名称为独立项
  2. 用 MATCH 将星期名称转换为 WEEKDAY 函数对应的数字(周日=1、周一=2…周六=7)
  3. 用 MATCH+ISNUMBER 判断区间内每个日期的星期数是否在目标列表中,最后用 SUMPRODUCT 求和符合条件的天数

方案2:单元格输入星期对应数字(如“3,4”对应周二、周三)

如果直接输入 WEEKDAY 对应的数字(周日=1、周一=2…周六=7),公式更简洁:

新版Excel(支持TEXTSPLIT函数):

=SUMPRODUCT(--(ISNUMBER(MATCH(WEEKDAY(ROW(INDIRECT(A1&":"&B1))),TEXTSPLIT(C1,","),0))))

旧版Excel(无TEXTSPLIT):

用拆分公式替代TEXTSPLIT:

=SUMPRODUCT(--(ISNUMBER(MATCH(WEEKDAY(ROW(INDIRECT(A1&":"&B1))),--TRIM(MID(SUBSTITUTE(C1,",",REPT(" ",99)),(ROW(INDIRECT("1:"&LEN(C1)-LEN(SUBSTITUTE(C1,",",""))+1))-1)*99+1,99)),0))))

公式逻辑:

  1. 将逗号分隔的数字拆分为数组
  2. 判断区间内每个日期的星期数是否在目标数字数组中,最终求和符合条件的天数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 19:10:40