2

У меня есть 4 элемента данных в столбце B. Первоначально мне нужно было заполнить еще один столбец с повторением исходных данных 7 раз. Таким образом, первый элемент должен появиться 7 раз, затем второй элемент должен появиться 7 раз и т.д.

В А1 я вошел:

=INDEX(B$1:B$4,ROUNDUP(ROW()/7,0),0)

и скопировал:


Маленькая формула, кажется, работает просто отлично. Теперь мне нужно сгенерировать второй столбец, но вместо 7 повторений используйте заданные значения в столбце C.

Я сделал это с помощью короткого макроса:

Sub Repititions()
    Dim N As Long, i As Long, j As Long, v As String
    Dim M As Long, K As Long
    N = Cells(Rows.Count, "A").End(xlUp).Row
    K = 1
    For i = 1 To N
        v = Cells(i, "B").Value
        M = Cells(i, "C").Value
        For j = 1 To M
            Cells(K, "D").Value = v
            K = K + 1
        Next j
    Next i
End Sub


Это тоже работает ..... есть 3 альфы, 7 бета и т.д.

Мой вопрос, могу ли я получить этот переменный фактор повторения, используя формулу, а не VBA Sub ??

1 ответ1

4

Вот один подход с использованием вспомогательного столбца:

Скриншот

Столбец A является начальной строкой для каждого значения.

A1:  1
A2:  =A1+C1
etc.

Результаты в столбце Е. Ячейка E1:

=VLOOKUP(ROW(),A$1:B$4,2)

Определив диапазоны строк, вы можете сделать простой VLOOKUP для значения в каждой строке.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .