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

如何用ARRAYFORMULA横向根据日期范围为谷歌表格标注递增周数

用ARRAYFORMULA实现谷歌表格年度周数横向自动填充

问题说明

  • 年度表格布局,蓝色区域每行对应日期与星期
  • 每月开头有空白列(比如灰色的February列),这类列不参与日期/星期递增
  • 需要在每个周日的上方单元格填充Wk01到Wk52的递增周数,周数间默认间隔6个空白单元格;如果跨了月空白列,间隔改为7个
  • 必须用ARRAYFORMULA实现横向批量生成

解决公式

假设日期/星期所在行是第2行,周数要填在第1行,把下面的公式放在第1行的起始单元格(比如B1):

=ARRAYFORMULA(
  LET(
    date_row, B2:ZZ2, // 替换成你表格里日期/星期实际所在的行范围
    month_gaps, ISBLANK(date_row), // 标记出空白的月分隔列
    wk_seq, SEQUENCE(1, 52, 1), // 生成1-52的周数序列
    // 定位所有周日的列位置,同时处理跨月空白列的情况
    sun_cols, REDUCE(, SEQUENCE(COLUMNS(date_row)), LAMBDA(acc,col,
      IF(OR(INDEX(date_row,col)="周日", 
            AND(col>1, INDEX(date_row,col-1)="周日", INDEX(month_gaps,col)=TRUE)),
        VSTACK(acc,col),
        acc
      )
    )),
    // 生成基础结果:在周日位置填周数,其余留空
    base_res, IF(ISNUMBER(XMATCH(SEQUENCE(1,COLUMNS(date_row)), sun_cols)),
      "Wk"&TEXT(wk_seq,"00"),
      ""
    ),
    // 确保月分隔列保持空白
    IF(month_gaps, "", base_res)
  )
)

公式细节解释

  • LET用来定义变量,让公式更易读和维护
  • date_row:指定包含日期/星期的行,根据你的表格实际结构修改范围
  • month_gaps:识别出那些作为月分隔的空白列
  • sun_cols:遍历所有列,找到周日所在的列;如果周日后面跟着月空白列,就把周数放在空白列的下一列,保证间隔为7个单元格
  • base_res:在定位好的周日位置填充格式化后的周数(补零成两位),其他位置留空
  • 最后一步过滤掉月分隔列,确保这些列保持空白

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 09:55:24