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

如何使用ARRAYFORMULA动态生成多个长度可变的递增序列

动态序列生成适配A列新增数值问题

假设我在A列有一组数值,数值数量不固定可随时新增,示例如下:

|A|B
-+-+-+-
1|4|
2|2|
3|3|

我想要在B列生成对应序列,每段序列长度等于A列对应行的数值,每段从1开始递增。示例中A列值4、2、3对应的序列分别为1,2,3,4;1,2;1,2,3,最终输出表格如下:

预期序列:
4 = 1,2,3,4
2 = 1,2
3 = 1,2,3

预期表格:

  A|B
---+-
1|4|1
2|2|2
3|3|3
4| |4
5| |1
6| |2
7| |1
8| |2
9| |3

我目前在B1使用公式={SEQUENCE(A1);SEQUENCE(A2);SEQUENCE(A3)}实现该效果,但A列新增数值时需要手动修改公式,请问如何实现动态适配?


解决方案

Google Sheets

直接在B1单元格输入以下单公式即可自动适配A列所有新增数值,无需手动调整:
=TOCOL(MAKEARRAY(COUNTA(A:A),MAX(A:A),LAMBDA(r,c,IF(c<=INDEX(A:A,r),c,NA()))),2)
公式逻辑:

  • 自动统计A列非空行数,生成对应维度的二维数组
  • 对每个A行数值,仅保留小于等于该数值的列号作为序列值
  • 自动过滤无效错误值,输出连续的目标序列

Excel 365/2021

在B1输入以下动态数组公式,自动识别A列新增内容:
=DROP(REDUCE("",FILTER(A:A,A:A<>""),LAMBDA(acc,cur,VSTACK(acc,SEQUENCE(cur)))),1)
公式逻辑:

  • 自动筛选A列所有非空数值
  • 遍历每个数值生成对应长度的递增序列,逐个拼接
  • 去掉初始占位空值,输出最终结果

旧版Excel(无LAMBDA函数)

需要配合辅助列实现:

  • 在C1单元格输入公式=SUM(A$1:A1),下拉到你预估A列会用到的最大行数
  • 在B1单元格输入公式=IF(ROW()<=MAX(C:C),ROW()-INDEX(C:C,MATCH(ROW()-1,C:C,1),1),""),下拉到和C列相同范围即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:45:08