EXCEL中如何让一列数从上之下第一个数重复30遍 第二个数重复31遍 第三个数重复30遍 依次排列

比如说 第一列是 123456789
我希望得到第二列是 1111111111111(30遍)22222222222222(31遍)333333333333(30遍)··········
很急 在线等!

两种做法,不知道你要哪个,自己选吧

D列手动输入

C2=30+MOD(ROW(),2)向下复制

E2=SUM(C1:C$1)+1向下复制

A2=IF(ROW(A1)>SUM($C$2:$C$5),"",LOOKUP(ROW(A1),$E$2:$E$5,$D$2:$D$5))向下复制

B2=REPT(A2,30+MOD(ROW(),2))向下复制

C2=LEN(B2)向下复制

追问

不好意思 我没表达清楚,我想要的是列的效果 就像图上这样 你能帮我再看看么?非常感谢

追答

我的第一个做法就是你要的。按照我的回答输入数据、公式,结果就是30个1下面31个a,再下来30个2,31个b。每个单元格里几个字符你随意输入,填充几行也随意输入,数据、填充次数、数据、辅助列的位置先后次序也可以调整。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-19

在B1单元格输入以下公式,然后向下填充公式

=REPT(A1,IF(MOD(ROW(),2),30,31))

 

详见附图

 

追问

前面试过这种方法,出来是行的效果 我想要这样的,麻烦了 会的话再教教我

追答

没理解你附图的规则。

第2个回答  2015-04-19
Sub rep()

Dim i, k
Dim er
Dim j

j = 30

er = Range("A65535").End(xlUp)
Range("B:iv").ClearContents
For i = 1 To er
    For k = 1 To j
        Cells(k, Range("a" & i).Row + 1) = Range("a" & i).Value
    Next k
    k = k + 1
    j = j + 1
Next i

End Sub

第3个回答  2015-04-19
因为重复的次数不一样,还是用VBA解决吧。
相似回答