Google Sheets数组公式需求:按指定步长递增日期至今日前
Google Sheets 按步长生成不超截止日期的递增日期数组公式
核心需求实现
以下公式可直接生成从指定起始日期开始,按设定步长递增,且所有结果不超过目标截止日期的日期序列,无需手动向下填充。
场景1:使用动态今日日期作为截止日
假设:
- 起始日期存于单元格
A1 - 步长天数存于单元格
B1 - 公式输入到单元格
C1
公式:
=ARRAYFORMULA(IFERROR(DATEVALUE(A1 + (SEQUENCE(ROUNDUP((TODAY()-A1)/B1), 1, 0)*B1))))
公式说明:
TODAY():获取当前系统日期ROUNDUP((TODAY()-A1)/B1):计算需要生成的日期总个数(向上取整确保覆盖最后一个符合条件的日期)SEQUENCE(...,1,0):生成从0开始的整数序列,对应需要累加的步长次数DATEVALUE:强制结果以标准日期格式显示IFERROR:避免起始日期已超过今日时返回错误值
场景2:使用固定截止日期(如示例中的2023/7/29)
假设:
- 起始日期存于单元格
A1(示例值:2023/7/18) - 步长天数存于单元格
B1(示例值:3) - 固定截止日期存于单元格
C1(示例值:2023/7/29) - 公式输入到单元格
D1
公式:
=ARRAYFORMULA(IFERROR(DATEVALUE(A1 + (SEQUENCE(ROUNDUP((C1-A1)/B1), 1, 0)*B1))))
如果需要直接写死所有参数(无需单元格引用),公式为:
=ARRAYFORMULA(IFERROR(DATEVALUE("2023/7/18" + (SEQUENCE(ROUNDUP((DATEVALUE("2023/7/29")-DATEVALUE("2023/7/18"))/3), 1, 0)*3))))
验证示例:生成的日期序列为 2023/7/18、2023/7/21、2023/7/24、2023/7/27,均不超过截止日2023/7/29。
注意事项
- 确保起始日期、截止日期为Google Sheets可识别的日期格式(如
YYYY/MM/DD或MM/DD/YYYY) - 步长必须为正整数
- 数组公式输入后自动填充所有符合条件的日期,无需拖拽填充
内容的提问来源于stack exchange,提问作者William Toscano
相关产品推荐
相关产品推荐

