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

Google Sheets动态数组公式需求:按ID生成日期范围数组

Google Sheets 动态数组公式实现需求方案

场景2(优先需求):ID与日期区间展开

针对输入表(A列ID、B列起始日期、C列结束日期),使用以下单一动态数组公式,可自动生成每个ID对应其起始到结束日期的所有行:

=SORT(ARRAYFORMULA(SPLIT(
  FLATTEN(BYROW(A2:C, LAMBDA(row, 
    LET(id, INDEX(row,1), start, INDEX(row,2), end, INDEX(row,3),
      IF(start="",, id&"|"&SEQUENCE(end-start+1, 1, start, 1))
    )
  ))), "|")), 1, TRUE, 2, TRUE)

公式说明

  • BYROW + LAMBDA:逐行处理输入数据,提取当前行的ID、起始日期、结束日期
  • SEQUENCE:根据日期区间生成连续的日期序列
  • FLATTEN:将各行生成的日期序列平铺为一维数组
  • SPLIT:把ID与日期的拼接字符串拆分为两列
  • SORT:按ID、日期升序排序结果

使用时直接将公式放入空白单元格,会自动适配输入数据的动态变化。

场景1:ID与所有日期组合的优化方案

你原用公式效率欠佳,可改用CROSSJOIN函数实现更高效的笛卡尔积生成:

=SORT(CROSSJOIN(A2:A6, B1:D1),1,TRUE,2,TRUE)

CROSSJOIN直接生成两个数组的全组合,避免了文本拼接拆分的性能损耗,适合大数据量场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 14:05:16