在Excel中按指定的重复次数填充数据到一列
导读:在工作中有时需要将Excel某列中的数据按指定的次数依次重复填充到另一列。例如在下图的示例中,要将A列的编号按B列对应次数重复填充到D列,即首先将第一个编号WOY756在D列中填充
在工作中有时需要将Excel某列中的数据按指定的次数依次重复填充到另一列。例如在下图的示例中,要将A列的编号按B列对应次数重复填充到D列,即首先将第一个编号“WOY756”在D列中填充2次,接着将第二个编号“QLG752”填充1次,将第三个编号“RWR880”填充5次,……。
可用数组公式或VBA来实现这样的填充
在D2单元格输入下面的数组公式后按Ctrl+Shift+Enter结束(下同),然后拖动填充柄向下填充公式,直到最后一个编号按指定的次数全部出现为止。
公式1:
=OFFSET(A$1,MIN(IF(COUNTIF($D$1:D1,A$2:A$21)
说明:COUNTIF函数统计公式所在单元格以上区域中所产生的各个“编号”数量,将其与B列对应次数进行对比,如果未达到B列对应次数,则返回“编号”相对A1单元格的偏移量,否则返回“FALSE”,这将得到一个包含“FALSE”和偏移量的数组。MIN函数取得最小值,即“编号”的偏移量,最后用OFFSET函数返回“编号”。
公式2:
=INDEX(A$1:A$21,SMALL(IF($B$2:$B$21>=COLUMN($A:$J),ROW($B$2:$B$21)),ROW(A1)))
说明:“IF($B$2:$B$21>=COLUMN($A:$J),ROW($B$2:$B$21))”产生一个20行10列由FALSE和数字组成的数组(本例A列共有20个数据,最大重复次数为10),其中的数字为各“编号”对应的行号,且各数字的数量与B列的重复次数相同。如16行“BXQ763”对应的“重复次数”为3,数组中即包含3个“16”。“COLUMN($A:$J)”需根据B列的最大值进行修改,例如“重复次数”中最大值为26,则改为“COLUMN($A:$Z)”。
公式3:
=INDEX(A$2:A$21,MATCH(ROW(A1)-1,SUBTOTAL(9,OFFSET(B$1,,,ROW($1:$21))),1))
说明:MATCH函数的第二个参数“SUBTOTAL(9,OFFSET(B$1,,,ROW($1:$21)))”,在本例中产生一个对B列数字进行累加的内存数组“{0;2;3;8;10;13;22;29;31;37;44;46;56;59;69;72;75;85;94;97;99}”,第三个参数为“1”,MATCH函数会查找小于或等于第一个参数的最大值,并返回其在数组中的相对位置,即A2:A21区域中的相对行号。例如对于D17单元格,MATCH函数的第一个参数“ROW(A16)-1”返回15,数组中小于等于15的最大值为13,13处于数组中的第6个位置,MATCH函数返回6,公式返回A2:A21区域中的第6行数据,即编号“JGN347”。
如果数据量较大,用下面的VBA代码较为快捷。按Alt+F11,打开VBA编辑器,在代码窗口中粘贴下列代码并运行即可。
Sub 按指定次数重复数据()
Dim Rng, Arr()
Dim i As Integer, j As Integer, k As Integer
Dim LastRow As Integer, Total As Integer
LastRow = [A65536].End(xlUp).Row
Total = Application.WorksheetFunction.Sum(Range("B2:B" & LastRow))
Rng = Range("A1:B" & LastRow)
ReDim Arr(1 To Total, 1 To 1)
For i = 2 To UBound(Rng, 1)
For j = 1 To Rng(i, 2)
k = k + 1
Arr(k, 1) = Rng(i, 1)
Next
Next
Range("D2").Resize(k, 1).Value = Arr
End Sub

- 以前年度损益调整科目余额方向 2025-12-19
- 机械设备租赁会计账务处理流程 2026-01-01
- 深圳专用发票过多长时间不能抵扣 2025-12-19
- 合同履约成本的会计分录 2026-02-17
- 存款利息属于投资吗 2025-12-31
- 办公桌椅折旧会计分录 2025-12-30
- 以前年度发票退回怎么处理 2025-12-21
- 没有金税盘可以报税吗 2026-02-11
- 股权收购溢价摊销方式 2025-12-27
- 发票跳号了怎么处理 2025-12-19
- 请问小规模纳税人是不是不用每个月填写《地方各项基金费申报表(工会经费)申报表》?要不然怎么会出现申报错误?我是零申报的。 2025-12-22
- 请教下,我们跟国外供应商采购的货品,如果不报关,就是快递或者手带回来,那我们可以有办法支付吗?就是付款的时候要付外汇出去。一般支付外汇是需要有进口报关单银行才会支付的对吗? 2026-03-02
- 注销公司时未分配利润太多了怎么办 2026-03-20
- 怎么把扫描出来的合同,做成PDF格式 2026-02-28
- 会计学堂还有另外一个软件,叫做会计考试go,可以练题,是吗 2026-04-01
- 麻烦发一个长投和金融工具之间的转换的分录总结 能发个总结的具体分录例子吗 2026-03-20
- 您好老师 @会计学堂-玉老师 我现在在一家做母婴用品的公司做会计,公司下面是五个门店,然后公司和五个店铺的账都是独立的。 现在公司好像注销了。现在账我在做,没报税。之前公司没注销之前有没报税我不知道,现在我在这里才开始干,这样我会有什么分险吗,该怎么避免呢。 2026-03-02
- 开票金额远远低于成本采购价 可以开发票吗 会引起税局怀疑吗 2026-01-06
- 老师请问下,代开发票认证时,销方是填写公司的税号还是代税务机关的税号 2026-02-19
- 老师,我们给其他公司投资,投资款如何做分录? 2026-01-13