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

在Google Sheets中生成带关联ID的扁平化日期序列(无宏)

解决方案

针对你的需求,这里提供两种可直接使用的Google Sheets公式,同时拆解逻辑帮你理解如何关联ID与日期序列:

公式1(带表头,自动累加结果)

=REDUCE({"ID","日期"}, A2:C, 
  LAMBDA(acc, row, 
    LET(id, INDEX(row,1), start, INDEX(row,2), end, INDEX(row,3),
      IF(start="", acc, 
        VSTACK(acc, 
          HSTACK(
            REPT(id, end-start+1), 
            SEQUENCE(end-start+1,1,start)
          )
        )
      )
    )
  )
)

逻辑拆解

  • REDUCE:从表头开始,逐行累加构建最终结果数组
  • INDEX(row,1/2/3):提取当前行的ID、起始日期、结束日期
  • REPT(id, end-start+1):根据日期区间的天数,生成对应次数的ID重复数组
  • SEQUENCE(end-start+1,1,start):生成从起始到结束的连续日期序列
  • HSTACK:将重复的ID数组和日期序列横向拼接,形成当前ID对应的所有ID-日期对
  • VSTACK:把当前行的结果拼接到之前的累加结果中,最终得到完整的扁平化列表

公式2(无表头,更简洁)

=ARRAYFORMULA(
  SPLIT(
    FLATTEN(
      IF(B2:C<>"", 
        A2:A&"|"&SEQUENCE(C2:C-B2:C+1,1,B2:C), 
        ""
      )
    ),
    "|"
  )
)

逻辑拆解

  • SEQUENCE(...):生成每行的日期序列
  • A2:A&"|"&...:将ID与每个日期用|拼接成字符串,比如1|2024-01-01
  • FLATTEN:把所有行的拼接字符串展开成单列
  • SPLIT:用|分割字符串,得到ID和日期两列的扁平化结果

你之前使用的原问题公式只单独生成了日期序列,没有将ID与每个日期绑定,通过上面的拼接/重复ID的方式,就能实现ID与对应日期的一一关联。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 05:22:17