每隔第n行填充一定值,然后重复

时间:2015-09-22 14:15:28

标签: excel

我希望打印每隔n(在这种情况下为第5行)具有特定值的行,然后是具有另一个值的下一个n,然后依此类推。我希望能够从另一个表中提取值进行打印。例如,我有一张表:

    Table A:
    George Washington
    Alexander Hamilton
    Thomas Jefferson

我想使用表A中的信息来创建表B.

    TABLE B 
    George Washington
    George Washington
    George Washington
    George Washington
    George Washington
    Alexander Hamilton
    Alexander Hamilton
    Alexander Hamilton
    Alexander Hamilton
    Alexander Hamilton
    Thomas Jefferson
    Thomas Jefferson
    Thomas Jefferson
    Thomas Jefferson
    Thomas Jefferson
    George Washington
    George Washington
    George Washington
    George Washington
    George Washington
    Alexander Hamilton
    Alexander Hamilton
    Alexander Hamilton
    Alexander Hamilton
    Alexander Hamilton
    Thomas Jefferson 
    Thomas Jefferson 
    Thomas Jefferson 
    Thomas Jefferson 
    Thomas Jefferson 
    ...

5 个答案:

答案 0 :(得分:1)

假设你的源数据在Sheet1的A列中,这可以在Sheet2上完成,从A1开始并向下拖动:

=INDEX('Sheet1'!A:A,ROUNDUP(ROW()/5,0))

INDEX采用给定范围(在本例中,是Sheet1中存储名称的所有列A),并返回该范围的给定行号中显示的值。取ROW()[显示公式所在的单元格行],除以5,向上舍入,这将重复1次,然后是2次,5次,等等。因此,索引将重复5次并继续通过Sheet1中的列表。

答案 1 :(得分:0)

如果Table A在单元格A1中开始,则将以下公式插入单元格C1(或任何其他列,但必须位于第1行)并正确复制:< / p>

=OFFSET($A$1,MOD(FLOOR((ROW()-1)/5,1),COUNTA($A:$A)),0)

其中5是您要重复名称的次数。

答案 2 :(得分:0)

如果您想使用VBA,请尝试以下方法:

Public Sub DuplicateItems(rInputRange As Range,rOutputStartCell As Range,lDuplicateCount As Long)

Dim rCell   As Range
Dim lOffset As Long
Dim i       As Long

For Each rCell In rInputRange
    For i = 1 To lDuplicateCount
        rOutputStartCell.Offset(lOffset, 0) = rCell
        lOffset = lOffset + 1
    Next i
Next rCell

End Sub

rInputRange代表表A, rOutputStartCell作为启动输出的单元格 lDuplicateCount作为复制量

答案 3 :(得分:0)

一种简单的方法:手动创建整个第一个循环。然后将公式=A1放在下一个单元格中(假设A1是第一个单元格)。复制或填写。

答案 4 :(得分:0)

或者很简单:

Sub MacroMan()

n = 5 '// number of rows to fill
For Each var In WorksheetFunction.Transpose([A1:A3]) '// Change to range of Table A
    Range("B" & n - 4).Resize(5).Value = CStr(var)
    n = n + 5
Next

End Sub