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

如何动态生成两组起止日期间含首尾的所有周五日期?

提取起止日期区间内的所有周五(动态数组公式实现)

针对A1:C3中多任务的起止日期数据,仅用SEQUENCE只能生成连续日期,需搭配筛选与多任务遍历才能得到符合要求的结果。以下是可行的动态数组公式:

=LET(
    任务数据,A2:C3,
    遍历生成,BYROW(任务数据,LAMBDA(行,
        HSTACK(INDEX(行,1), FILTER(SEQUENCE(INDEX(行,3)-INDEX(行,2)+1,1,INDEX(行,2)), WEEKDAY(SEQUENCE(INDEX(行,3)-INDEX(行,2)+1,1,INDEX(行,2)),2)=5))
    )),
    WRAPROWS(TOCOL(遍历生成,2),2)
)

公式拆解

  • LET:定义变量简化公式逻辑,避免重复计算
  • BYROW(任务数据, LAMBDA(行,...)):逐行处理每个任务的起止日期
    • HSTACK(INDEX(行,1), ...):将任务名称和对应的周五日期横向配对
    • FILTER(SEQUENCE(...), WEEKDAY(...)=5):用SEQUENCE生成起止日期间的所有连续日期,再通过WEEKDAY(...,2)判断是否为周五(参数2表示周一为1,周五对应5),筛选出符合条件的日期
  • TOCOL(遍历生成,2):把所有任务的结果展开成一维数组,自动忽略空值(无周五的任务会被跳过)
  • WRAPROWS(...,2):将一维数组重新整理成两列表格,对应任务名称和周五日期

常见错误修正

你之前用SEQUENCE出错,大概率是这两个原因:

  1. 未搭配FILTER筛选周五,仅生成了连续日期
  2. WEEKDAY参数设置错误:如果用默认参数(周日为1),周五对应的是6而非5,判断值不匹配会导致筛选结果为空或错误

注意事项

  • 仅支持Excel 365/2021及以上版本(需动态数组功能)
  • 如果任务区间内没有周五,公式会自动跳过该任务的相关行,不会生成空行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 12:27:13