如何在Excel中按指定次数将单元格内容批量垂直填充至单列?
解决Excel中按指定次数垂直重复文本的问题
以下是几种无需手动重复操作的实现方法,适用于不同版本的Excel:
方法1:Excel 365/2021 动态数组公式
如果你的Excel支持动态数组,直接在L1单元格输入以下公式,它会自动溢出填充所有需要的行:
=INDEX(A:A,XMATCH(SEQUENCE(SUM(B1:B5)),SCAN(0,B1:B5,LAMBDA(a,b,a+b))))
- 替换
A1:A5为你的颜色文本所在区域(如Tan、Grey这些值的范围) - 替换
B1:B5为对应次数的数字区域 - 原理:
SUM(B1:B5)计算总重复行数,SCAN生成累计次数序列,XMATCH匹配每行序号对应的颜色分组,最终用INDEX提取对应文本
如果你习惯更直观的写法,也可以用TEXTSPLIT+TEXTJOIN组合:
=LET( colors, A1:A5, counts, B1:B5, repeated, MAP(colors, counts, LAMBDA(c,n, REPT(c&"|",n))), TEXTSPLIT(TEXTJOIN("|",TRUE,repeated), "|",,TRUE) )
方法2:旧版Excel 数组公式(无动态数组支持)
对于不支持动态数组的旧版Excel,先计算总重复行数(SUM(B1:B5)),然后在L1输入以下公式,按Ctrl+Shift+Enter作为数组公式提交,再下拉填充到所有行:
=INDEX($A$1:$A$5, MATCH(ROW()-ROW($L$1)+1, SUMIF($B$1:$B$5, "<="&$B$1:$B$5), 1))
- 同样替换
A1:A5和B1:B5为你的数据区域 - 原理:通过
SUMIF生成累计次数,用MATCH定位当前行对应的颜色,再用INDEX提取文本
方法3:Power Query 批量处理(适合大量数据)
如果数据量较大,Power Query的操作更稳定:
- 选中你的颜色和次数数据区域(包含Tan、Grey和对应数字的单元格范围)
- 点击「数据」选项卡 → 「从表格/区域」(Excel 2016及以后版本),确认数据包含表头
- 在Power Query编辑器中,选中次数列,点击「转换」选项卡 → 「重复行」,系统会自动按次数重复每行
- 删除次数列,只保留颜色列
- 点击「关闭并上载」,将结果导出到新工作表,再复制到L列即可
内容的提问来源于stack exchange,提问作者CallSignPhoenix
相关产品推荐
相关产品推荐

