Страницы: 1
RSS
Перенос данных из одного столбца в конец другого, нужно из таблицы с множеством колонок собрать таблицу с двумя для ВПР
 
Ситуация такая:
есть таблица, в которой имеются колонки с артикулами от разных поставщиков и колонка с артикулом нашим внутренним. ВПР не обрабатывает (как я помню) разом много колонок, а мне нужно, чтоб артикулы поставщика соответствовали моим. Я уже голову себе сломал. Единственное, что придумал - это через PowerQuery выдергивать попарно нужные столбцы, выгружая их на отдельный лист каждый и потом макросом сводить их в один на новом... но вдруг у кого-то есть вариант проще. Заранее благодарен за любой совет.
Пример в прикреплёнке.
Изменено: multsib - 20.09.2020 13:04:21 (Замена файла на правильный)
 
multsib, не понятно  причем тут ВПР?
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Mershik написал:
причем тут ВПР?
Это как конечная цель данной сборки. Мне в конечном счете нужна будет таблица, которую я буду использовать для ВПР подстановок.
 
multsib, так может нужно показать нормальный пример что есть и что нужно на выходе ?
Не бойтесь совершенства. Вам его не достичь.
 
Код
=ИНДЕКС($A$2:$C$21;ОСТАТ(СТРОКА(A1)-1;СЧЁТЗ($D$2:$D$21))+1;ЦЕЛОЕ((СТРОКА(A1)-1)/СЧЁТЗ($D$2:$D$21))+1)&""
Соблюдение правил форума не освобождает от модераторского произвола
 
multsib,
Код
Sub sds()
Dim i As Long, lr As Long, lcol As Long, c As Long
k = 2
lr = Cells(Rows.Count, 1).End(xlUp).Row
For c = 1 To 3
    For i = 2 To lr
        Cells(k, 9) = Cells(i, c)
        Cells(k, 10) = Cells(i, 4)
        k = k + 1
    Next i
Next c
End Sub
Не бойтесь совершенства. Вам его не достичь.
 
Доброе время суток
Цитата
multsib написал:
это через PowerQuery выдергивать попарно нужные столбцы, выгружая их на отдельный лист
Зачем? Не лучше ли всё в Power Query сделать?
 
Цитата
Mershik написал:
что есть и что нужно на выходе
в первом посте именно то, что мне нужно, только данные в таблице другие.
Вот другая вырезка, только тут исходная таблица и требуемый результат на разных листах:
Изменено: multsib - 20.09.2020 12:58:27
 
Цитата
Андрей VG написал:
Зачем? Не лучше ли всё в Power Query сделать?
Великолепно, только это не масштабируемая выгрузка? То-есть, если колонок входных будет больше, то она не сработает? Или как-то её можно подстроить?
 
multsib, если в #1 файл неправильный", то зачем его оставлять  на форуме? Ведь можно было ЗАМЕНИТЬ его, а не показывать в отдельном сообщении.
 
Цитата
multsib написал:
это не масштабируемая выгрузка?
А разобрать код, а провести эксперимент? :)
 
Цитата
Юрий М написал:
Ведь можно было ЗАМЕНИТЬ его
заменил, прошу прощения...
 
multsib,  для второго файла...
Код
Sub arewr()
Dim arrIN(), arrOUT(), i As Long, c As Long, lcol As Long, lr As Long
lr = Worksheets("Исходные данные").Cells(Rows.Count, 1).End(xlUp).Row
lcol = Worksheets("Исходные данные").Cells(1, Columns.Count).End(xlToLeft).Column
arrIN = Range(Cells(2, 1), Cells(lr, lcol))
ReDim arrOUT(UBound(arrIN) * lcol - 1, 1)
k = 0
For c = 1 To lcol - 1
    For i = LBound(arrIN) To UBound(arrIN)
        arrOUT(k, 0) = arrIN(i, c)
        arrOUT(k, 1) = arrIN(i, lcol)
        k = k + 1
    Next i
Next c
Worksheets("Требуемые данные").Range("D2").Resize(UBound(arrOUT), 2) = arrOUT
End Sub
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Андрей VG написал:
А разобрать код, а провести эксперимент?
ЕЕЕ! Спасибищще! Имя таблицы у меня только не нашел (в коде на своё поменял), прям благодарен!

Остальным участникам тоже спасибо!
Изменено: multsib - 20.09.2020 13:14:36
 
Цитата
Mershik написал:
для второго файла...
Спасибо макрос полезный! Буду юзать)
Страницы: 1
Наверх