Excel函数根据单元格值重复一组单元格一定次数

我正在寻找一种方法来重复一组单元格水平一定的次数,然后再移动到下一组单元格。 例如:

如果我有这3列:

5 4 3 0 1 2 

我有3列决定了我想迭代的次数:

 4 2 3 

拖动范围时,这个函数应该给我这个:

 5 5 5 5 4 4 3 3 3 0 0 0 0 1 1 2 2 2 

有谁知道最好的方式来做到这一点?

我一直在使用一些令人费解的推理来解决这个问题,使用数组公式(在它周围有{{}括号,你必须使用Shift + Enter)。 我正在使用SUMIF和COUNTIF函数做一些事情,但它从来没有真正解决。

这是一个hacky VBA解决scheme。 这假定“重复计数”在第一行(4,2,3),“重复的值”在第二行(5,4,3,0,1,2)。

 Sub outputRepeatedValues() Dim xStart As Integer, yStart As Integer Dim i As Integer, j As Integer Dim valueToRepeat As Integer, numTimesRepeat As Integer Dim xOffset As Integer, yOffset As Integer xStart = ActiveCell.Column yStart = ActiveCell.Row i = 1 j = 1 xOffset = 0 yOffset = 0 While Cells(2, j) <> "" If Cells(1, i) = "" Then i = 1 yOffset = yOffset + 1 xOffset = 0 End If numTimesRepeat = Cells(1, i) valueToRepeat = Cells(2, j) For k = 1 To numTimesRepeat Cells(yStart + yOffset, xStart + xOffset) = valueToRepeat xOffset = xOffset + 1 Next k j = j + 1 i = i + 1 Wend End Sub 

坚持这个新的模块。 要使用此代码,请select代表输出区域左上angular的单元格。 然后按Alt + F8调出macros框,然后你可以运行macros。