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

Google Sheets:按指定次数重复行并生成对应递增序列需求

在Google Sheets中按指定次数重复数据并生成递增序列

假设你的原始数据在A列(建筑编号)和B列(对应入口数量),表头分别是Building #和QTY of Entrances,可以用以下数组公式直接生成目标结果:

=ARRAYFORMULA(
  LET(
    data, FILTER(A2:B, A2:A<>""),
    buildings, INDEX(data,,1),
    counts, INDEX(data,,2),
    HSTACK(
      FLATTEN(MAP(buildings, counts, LAMBDA(b, c, IF(c>0, TRANSPOSE(SEQUENCE(c, 1, b)), "")))),
      FLATTEN(MAP(counts, LAMBDA(c, IF(c>0, SEQUENCE(c), ""))))
    )
  )
)

公式说明

  • LET 定义变量简化结构,先通过FILTER筛选出非空的数据行,避免处理无效空值
  • 第一个MAP函数:对每个建筑编号,生成重复对应次数的数组(比如编号2对应4次,就生成[2,2,2,2])
  • 第二个MAP函数:对每个入口数量,生成从1到该数量的递增序列(比如数量4对应[1,2,3,4])
  • FLATTEN将所有子数组合并成单列,HSTACK把两列结果横向拼接,得到最终的建筑编号+入口编号组合

使用步骤

  1. 在空白列(比如D列)输入表头Building #,E列输入Entrance #
  2. 在D2单元格粘贴上述公式,回车后会自动填充所有符合要求的结果,且支持自动适配原始数据的行数变化

如果不需要处理空行的兼容,也可以用更简洁的版本:

=ARRAYFORMULA(HSTACK(
  FLATTEN(MAP(A2:A,B2:B,LAMBDA(b,c,IF(c="",,TRANSPOSE(SEQUENCE(c,1,b)))))),
  FLATTEN(MAP(B2:B,LAMBDA(c,IF(c="",,SEQUENCE(c)))))
))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 21:51:04