Страницы: 1
RSS
Протянуть значение с одного столбца до последнего значение c другого столбца и т.д. с каждой строки
 
Добрый день!
Прошу помочь:
во вложении файл, в нем есть серийники, они идут диапазонами - 3, 4, 5 и т.д. до 200 шт., то есть в одном столбце первое значение, напротив него последнее значение и так в каждой строке.
Нужно сделать так чтоб каждый серийник был отдельно с новой строки. Может вы знаете макрос/формулу как это сделать?
Я знаю как это сделать вручную, но тут строк 1208, а серийников всего 40 000 с чем-то...
 
добрый. через PQ. Оставил только 3 строки, чтобы файл пролез на форум
 
Здравствуйте. Так подойдет?
Код
=ИНДЕКС($A$2:$B$10000;ЦЕЛОЕ((СТРОКА(A1)-1)/2)+1;ОСТАТ(СТРОКА(A1)-1;2)+1)
 
Анна C, чет не понял что нужно, нужно просто серийный номер перенести на строку или промежуток всех серийников вывести?
Код
Sub mrshkei()
Dim arr, arr2, i As Long, lr As Long
lr = Cells(Rows.Count, 1).End(xlUp).Row
k = Application.WorksheetFunction.Count(Range("C2:C" & lr)) + Application.WorksheetFunction.Sum(Range("C2:C" & lr))
arr = Range("A2:B" & lr)
ReDim arr2(1 To k, 1 To 1): n = 1
For i = LBound(arr) To UBound(arr)
    For j = arr(i, 1) To arr(i, 2)
        arr2(n, 1) = j
        n = n + 1
    Next j
Next i
Range("E2").Resize(UBound(arr2), 1) = arr2
End Sub
Изменено: Mershik - 29.09.2021 14:47:46
Не бойтесь совершенства. Вам его не достичь.
 
Решение в файле с доп. столбцом.
Основная формула массива:
Код
=ИНДЕКС(A$2:A$1209;ПОИСКПОЗ(СТРОКА()-2;МУМНОЖ(--(СТРОКА(C$2:C$1209)>ТРАНСП(СТРОКА(C$2:C$1209)));C$2:C$1209)))
До конца не тянул, Эксель сильно задумывается.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Mershik,спасибо, это то что нужно :)
 
Неправильно понял задачу. Но тогда встречный вопрос. Код от Mershik, выводит все промежутки серийников, и он вас устраивает, тогда зачем в файле указаны повторы?
Страницы: 1
Читают тему (гостей: 1)
Наверх