如何将Excel单元格区域A1:A4重复指定n次?
Excel单元格区域重复n次的解决方案
针对将A1:A4(内容为California、Off、Texas、Off)重复n次的需求,以下是几种实用方法:
方法1:基础公式法(兼容所有Excel版本)
在输出区域的第一个单元格(比如B1)输入以下公式,然后下拉填充至第4*n行(n=4时需下拉到16行):=INDEX($A$1:$A$4, MOD(ROW()-1,4)+1)
原理:利用MOD函数生成0-3的循环序列,配合INDEX循环提取A1:A4的内容。
方法2:动态序列公式(适用于Excel 365/2021)
如果你的Excel支持动态数组函数,可直接生成完整的重复序列:
- 按行输出:
=TOROW(REPT($A$1:$A$4,C1),,TRUE) - 按列输出:
=TOCOL(REPT($A$1:$A$4,C1),,TRUE)
注:将公式中的C1替换为存放重复次数n的单元格(比如C1输入4),公式会自动溢出所有结果。
方法3:Power Query法(批量处理更高效)
- 选中A1:A4区域,点击「数据」选项卡→「从表格/区域」(若A1不是标题,取消勾选「我的表格有标题」)。
- 进入Power Query编辑器后,打开「高级编辑器」,将代码修改为:
let Source = Excel.CurrentWorkbook(){[Name="表1"]}[Content], #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}}), RepeatedList = List.Repeat(#"Changed Type"[Column1], 4), // 将4替换为你的n值,或引用单元格如Excel.CurrentWorkbook(){[Name="C1"]}[Content]{0}[Column1] #"Converted to Table" = Table.FromList(RepeatedList, Splitter.SplitByNothing(), null, null, ExtraValues.Error) in #"Converted to Table"
- 点击「关闭并上载」,结果将自动导入Excel工作表。
方法4:VBA宏法(适合重复执行该操作)
按Alt+F11打开VBA编辑器,插入新模块,粘贴以下代码:
Sub RepeatRange() Dim repeatTimes As Integer repeatTimes = 4 ' 可改为InputBox("请输入重复次数:")或引用单元格如repeatTimes = Range("C1").Value Dim sourceRng As Range Set sourceRng = ThisWorkbook.Sheets("Sheet1").Range("A1:A4") ' 替换为你的工作表名称 Dim targetRng As Range Set targetRng = ThisWorkbook.Sheets("Sheet1").Range("B1") ' 替换为输出起始位置 targetRng.Resize(sourceRng.Rows.Count * repeatTimes).Value = _ Application.Transpose(Evaluate("REPT(" & sourceRng.Address & "," & repeatTimes & ")")) End Sub
运行宏后,指定区域会自动重复n次输出。
内容的提问来源于stack exchange,提问作者taaka
相关产品推荐
相关产品推荐

