Excel 是否有任何公式可用于复制指定次数的特定单元格?
我正在处理一个数据,我有一个公司名称列表,一个在另一个下面。例如Excel 是否有任何公式可用于复制指定次数的特定单元格?,excel,vba,Excel,Vba,我正在处理一个数据,我有一个公司名称列表,一个在另一个下面。例如 1. A 2. B 3. C 还有更多… 需要的结果是 1. A 2. A 3. A 4. A 5. A 6. B 7. B 8. B 9. B 10. B 11. C 12. C 13. C 14. C 15. C 等等…… 数据太大,无法手动执行此任务。因此,如果有人能提出一个公式来简化工作,那就太好了:)将数据复制到一个变体数组中,然后根据它构建一个所需大小的新数组 Sub Demo(
1. A
2. B
3. C
还有更多…需要的结果是
1. A
2. A
3. A
4. A
5. A
6. B
7. B
8. B
9. B
10. B
11. C
12. C
13. C
14. C
15. C
等等……数据太大,无法手动执行此任务。因此,如果有人能提出一个公式来简化工作,那就太好了:)将数据复制到一个变体数组中,然后根据它构建一个所需大小的新数组
Sub Demo()
Dim r As Range, v1 As Variant, v2 As Variant
Dim i As Long, j As Long, n As Long
n = 5 ' number of entries
With ActiveSheet
' Get existing data into array
Set r = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
v1 = r.Value
' Create new array of required size
ReDim v2(1 To UBound(v1, 1) * n, 1 To 1)
' copy and replicate original data into new array
For i = 1 To UBound(v1, 1)
For j = 1 To n
v2((i - 1) * n + j, 1) = v1(i, 1)
Next j, i
' Place new data onto sheet
Set r = r.Resize(r.Rows.Count * n, 1)
r.Value = v2
End With
End Sub
将数据复制到一个变体数组,并从中构建一个所需大小的新数组
Sub Demo()
Dim r As Range, v1 As Variant, v2 As Variant
Dim i As Long, j As Long, n As Long
n = 5 ' number of entries
With ActiveSheet
' Get existing data into array
Set r = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
v1 = r.Value
' Create new array of required size
ReDim v2(1 To UBound(v1, 1) * n, 1 To 1)
' copy and replicate original data into new array
For i = 1 To UBound(v1, 1)
For j = 1 To n
v2((i - 1) * n + j, 1) = v1(i, 1)
Next j, i
' Place new data onto sheet
Set r = r.Resize(r.Rows.Count * n, 1)
r.Value = v2
End With
End Sub
使用列A中的数据,在B1中输入:
=INDEX(A:A,ROUNDUP(ROWS($1:1)/5,0))
并抄写:
要获得六次重复,只需使用6代替5,数据位于A列中,在B1中输入:
=INDEX(A:A,ROUNDUP(ROWS($1:1)/5,0))
并抄写:
要获得六次重复,只需使用6代替5使用
indirect
函数即可获得相同的结果:=indirect(“A”&ROUNDUP(ROWS($1:1)/5;0))
@Vasily FWIW,indirect()的问题在于它是。这意味着每次Excel重新计算时,它都会完全重新计算。索引函数仅在目标数据更改时重新计算。在小范围内,这并不重要,但如果间接函数或任何其他易失性函数使用过多,则会降低计算速度。在我看来,应该尽可能避免间接。使用间接
函数可以获得相同的结果:=Indirect(“A”)和ROUNDUP(ROWS($1:1)/5;0))
@Vasily FWIW,间接()的问题在于它是。这意味着每次Excel重新计算时,它都会完全重新计算。索引函数仅在目标数据更改时重新计算。在小范围内,这并不重要,但如果间接函数或任何其他易失性函数使用过多,则会降低计算速度。在我看来,如果可能的话,应该尽量避免间接的。如果下面的问题之一回答了你的问题,你应该点击答案旁边的复选标记。请参阅:如果以下选项之一回答了您的问题,您应该单击答案旁边的复选标记。看:@Gary的学生。。。只是有点好奇想知道你建议的配方。。。就像$sign的功能是锁定特定的单元格或列一样,/在公式中的功能是什么?@Gary的学生。。。只是有点好奇想知道你建议的配方。。。就像$sign的功能是锁定特定的单元格或列一样,/在公式中的功能是什么?