无需VBA:如何按单元格指定次数重复序列数组(用VSTACK)
解决方案
可以使用以下两种动态数组公式实现需求,无需VBA:
方法一:INDEX + SEQUENCE 组合
=INDEX(SEQUENCE(C1), ROUNDUP(SEQUENCE(C1*B2, 1)/C1, 0))
逻辑说明:
SEQUENCE(C1*B2,1):生成总长度为「序列长度×重复次数」的连续序列(比如C1=3、B2=2时,生成1到6的序列)。ROUNDUP(...,0):将每个数值除以序列长度后向上取整,得到重复的索引序列(如1,1,1,2,2,2)。INDEX(SEQUENCE(C1), ...):根据索引提取原序列的元素,自动完成重复堆叠。
方法二:MAKEARRAY + LAMBDA 组合
=MAKEARRAY(C1*B2, 1, LAMBDA(r,c, INDEX(SEQUENCE(C1), CEILING(r/C1, 1))))
逻辑说明:
MAKEARRAY创建指定行数(C1*B2)、列数(1)的数组。LAMBDA(r,c,...)遍历数组的每个行号r,用CEILING(r/C1,1)计算对应原序列的位置,再通过INDEX提取元素。
两种方法在Excel 365/2021中均可直接使用,当B2或C1的值变化时,结果会自动更新。
内容的提问来源于stack exchange,提问作者scott.pilgrim.vs.r
相关产品推荐
相关产品推荐

