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

如何在Google Sheets中基于起始日期、频率自动填充至结束日期?

Google Sheets 批量生成带关联数据的日期序列完整方案

需求背景

基于输入表格的每行Start Date(起始日期)、End Date(结束日期)、Frequency(间隔天数),自动生成符合间隔要求的日期序列,同时同步对应行的Cost(费用)、Category(类别)、Company(公司)等关联数据,且支持输入表的多行扩展。目前仅实现了单一行的日期生成,需要完整的批量处理方案。

完整实现公式

将以下公式粘贴到输出表的首个单元格(比如A2):

=ARRAYFORMULA(
  IFERROR(
    FLATTEN(
      BYROW(Sheet1!A2:F, LAMBDA(row,
        LET(
          start, INDEX(row, 1),
          end, INDEX(row, 2),
          freq, INDEX(row, 3),
          cost, INDEX(row, 4),
          category, INDEX(row, 5),
          company, INDEX(row, 6),
          IF(ISBLANK(start),,
            HSTACK(
              start + SEQUENCE((end - start)/freq + 1, 1, 0)*freq,
              cost,
              category,
              company
            )
          )
        )
      ))
    )
  )
)

公式拆解说明

  • BYROW + LAMBDA:遍历输入表(Sheet1)从第2行开始的每一行数据,逐行处理生成对应序列
  • LET:定义变量简化公式逻辑,把每行的各字段分别赋值给start、end等变量,提升可读性
  • 空行判断:IF(ISBLANK(start),, ...)会跳过输入表中的空行,避免生成无效数据
  • 日期序列生成:start + SEQUENCE((end - start)/freq + 1, 1, 0)*freq沿用原单一行的日期生成逻辑,确保每个日期间隔符合Frequency要求
  • 关联数据拼接:HSTACK将生成的日期序列与当前行的Cost、Category、Company横向合并,保证每条日期记录都带对应关联信息
  • FLATTEN:把每行生成的二维数据展开成一维列表,形成最终的纵向输出结构
  • 错误处理:IFERROR捕获频率为0、日期不合法等异常情况,避免输出错误值

使用注意事项

  1. 列对应关系:确保输入表的列顺序为:A=Start Date、B=End Date、C=Frequency、D=Cost、E=Category、F=Company,若列位置不同,调整INDEX(row, N)中的数字即可
  2. 频率单位:公式默认Frequency为天数,若需支持月/年间隔,需将日期生成部分替换为EDATE(start, SEQUENCE(...)*freq)等逻辑
  3. 自动扩展:输入表新增行时,公式会自动识别并处理新行数据,无需手动调整公式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 11:10:27