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

Excel中创建正确周日期范围求助:公式拖拽后结束日期异常

解决Excel周日期范围生成问题

核心问题分析

你原来的公式错误在于:固定从$R$2累加6天,未让周范围的起始日期随周数递进,导致后续周的结束日期和上一周重叠、出现异常。下面提供三种适配不同场景的解决方案:


方案1:生成连续无重叠的周范围(从指定日期开始)

如果需要从R2的日期出发,生成连续、无重叠的周范围(比如第一周是R2到R2+6,第二周是R2+7到R2+13),直接用以下公式拖拽填充:

=TEXT($R$2+(ROWS($A$1:A1)-1)*7,"MMM D") & " - " & TEXT($R$2+ROWS($A$1:A1)*7-1,"MMM D")

逻辑说明:

  • $R$2+(ROWS($A$1:A1)-1)*7:计算当前周的起始日期(第一周为R2,第二周自动跳至R2+7,以此类推)
  • $R$2+ROWS($A$1:A1)*7-1:计算当前周的结束日期(比起始日期多6天,刚好覆盖完整一周)

方案2:基于工单日期生成不重复的周范围(适配重复日期)

如果需要根据工单的实际日期,自动过滤重复周,只生成每个周一次的范围:

步骤1:提取不重复的工单日期

在空白列(比如S列)输入公式,提取R列所有不重复的日期:

=UNIQUE(R:R)

(旧版Excel无UNIQUE函数时,可使用数组公式=INDEX(R:R,MATCH(0,COUNTIF(S$1:S1,R:R),0)),输入后按Ctrl+Shift+Enter确认,再拖拽填充)

步骤2:生成对应周的日期范围

根据你的周起始习惯选择公式(以S2为不重复日期单元格):

  • 周日到周六的周范围:
    =TEXT(S2-WEEKDAY(S2,1)+1,"MMM D") & " - " & TEXT(S2-WEEKDAY(S2,1)+7,"MMM D")
    
  • 周一到周日的周范围:
    =TEXT(S2-WEEKDAY(S2,2)+1,"MMM D") & " - " & TEXT(S2-WEEKDAY(S2,2)+7,"MMM D")
    

逻辑说明:

  • WEEKDAY(S2,1):返回1(周日)到7(周六),S2-WEEKDAY(S2,1)+1可得到本周周日的日期
  • WEEKDAY(S2,2):返回1(周一)到7(周日),S2-WEEKDAY(S2,2)+1可得到本周周一的日期
  • 加7即可得到本周最后一天的日期

方案3:在原工单列直接标记周范围(重复周留空)

如果不想单独提取不重复日期,直接在原工单列旁生成范围,同一周的工单仅显示一次周范围,其他行留空:
假设R列是工单日期,在T2输入以下公式后拖拽填充:

=IF(WEEKNUM(R2,1)=WEEKNUM(R1,1),"",TEXT(R2-WEEKDAY(R2,1)+1,"MMM D") & " - " & TEXT(R2-WEEKDAY(R2,1)+7,"MMM D"))

(需将WEEKNUM的第二个参数1改为2,可切换为周一作为周起始)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 18:22:46