Страницы: 1
RSS
Вытащить не только первую совпадающую ячейку, а несколько релевантных "артикулу"
 
Опытные господа, помогите пожалуйста!

Задача стоит такая, у нашего магазина есть часть товара (N-тысяч), нам предоставили прайс из которого нам нужно импортировать штрих-коды на каждый товар в нашу таблицу, после уже произвести импорт в программу. Проблема такая, что в прайсе по несколько штрих-кодов на один и тот же артикул, и нам нужно в "идеальном варианте" добиться того, чтобы в нашей таблице справа от артикула в ячейке отображались все привязанные к нему штрих-коды через точку с запятой.

Например:
8-427251                         54893925527797; 14893925527799; 4893925527792
Внизу прикрепил скрин из оригинала, и часть файла

Заранее спасибо!
Изменено: Vakhtang0770 - 11.12.2019 15:37:15
 
А где пример?
Вот аналогичная тема только что разбиралась https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=123641
 
Не используйте кнопку цитирования без необходимости [МОДЕРАТОР]

Сейчас почитаю, посмотрим, спасибо!
 
Вариант на PQ.
 
Цитата
Murderface_ написал:
Вариант на PQ.

Прикрепленные файлы
Для форума.xlsx  (19.09 КБ)
Выглядит очень даже здорово, только как это самому размножить на всю таблицу мне?
 
Vakhtang0770, просто вставляете все данные в исходную таблицу и нажимаете Данные -> Обновить все.
 
Цитата
Murderface_ написал:
Vakhtang0770 , просто вставляете все данные в исходную таблицу и нажимаете Данные -> Обновить
Такое дело выдает
 
У кого нет PQ
Код
Sub Articul()
Dim i As Long
Dim k As Long
Dim iLastRow As Long
Dim FoundArticul As Range
Dim FAdr As String
 iLastRow = Cells(Rows.Count, "A").End(xlUp).Row
 Range("H1:M" & iLastRow).ClearContents
 Range("A1:A" & iLastRow).AdvancedFilter xlFilterCopy, CopyToRange:=Range("H1"), Unique:=True
 iLastRow = Cells(Rows.Count, "H").End(xlUp).Row
      For i = 2 To iLastRow
        Set FoundArticul = Columns(1).Find(Cells(i, "H"), , xlValues, xlWhole)
         If Not FoundArticul Is Nothing Then
            FAdr = FoundArticul.Address
            k = 1
          Do
           Cells(i, 8 + k) = Cells(FoundArticul.Row, "C")
           k = k + 1
           Set FoundArticul = Columns(1).FindNext(FoundArticul)
          Loop While FoundArticul.Address <> FAdr
         End If
      Next
End Sub
Страницы: 1
Наверх