Страницы: 1
RSS
Консолидация артикулов напротив наименования
 

Добрый день!

Помогите решить задачу по трансформации таблицы к заданному виду. Во вложении пример как есть и как должно получится.

Имеем таблицу с двумя столбцами, левый наименование товара, правый столбец артикул товара. У одного товара может быть множество разных артикулов, их все нужно связать с товаром. Необходимо сделать так чтобы, артикул выводился  напротив строчки  наименования товара в каждой новой ячейки.

Прошу прощения за сумбур. )

Спасибо!.

 
zender001,
Знакома ли Вам эта статья?
Многоразовый ВПР (VLOOKUP)
 
Нет, спасибо ознакомлюсь.
 
Добрый день. Еще, как вариант, через Power Query (см.файл). При изменении исходных данных - данные, обновить все.
Кому решение нужно - тот пример и рисует.
 
Цитата
Пытливый написал:
При изменении исходных данных - данные, обновить все.
спасибо, можно по подробнее что надо сделать?
Что то не пошло у меня через ваш файлик.
Изменено: zender001 - 11.12.2019 14:42:52
 
Закладка "Данные", надавить "обновить все".
Кому решение нужно - тот пример и рисует.
 
zender001,
В таблице ананас и ананс - это опечатка или разные фрукты?
 
Цитата
Пытливый написал:
Закладка "Данные", надавить "обновить все".
так работает.
 
Код
=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$9;АГРЕГАТ(15;6;(СТРОКА($B$3:$B$9)-2)/($A$3:$A$9=$F3);СТОЛБЕЦ(A$1)));"")
 
Макросом
Код
Sub Fruit()
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("F3:M" & iLastRow).ClearContents    'границу М определить по мах кол-ву артикулов
 Range("A2:A" & iLastRow).AdvancedFilter xlFilterCopy, CopyToRange:=Range("F2"), Unique:=True
 iLastRow = Cells(Rows.Count, "F").End(xlUp).Row
      For i = 3 To iLastRow
        Set FoundArticul = Columns(1).Find(Cells(i, "F"), , xlValues, xlWhole)
         If Not FoundArticul Is Nothing Then
            FAdr = FoundArticul.Address
            k = 0
          Do
           Cells(i, 7 + k) = Cells(FoundArticul.Row, "B")
           k = k + 1
           Set FoundArticul = Columns(1).FindNext(FoundArticul)
          Loop While FoundArticul.Address <> FAdr
         End If
      Next
End Sub
 
Цитата
Kuzmich написал:
то опечатка или разные фрукты?
Да)
 
Цитата
Пытливый написал:
Кому решение нужно - тот пример и рисует.
так и делаю, но не всё соспоставляет, где то треть делал таблицу на 10 000 строк.  Также при обработке создаётся  много ошибок, это так и должно быть?
 
А макрос попробовали?
 
Цитата
Kuzmich написал:
А макрос попробовали?
Да, работает. бомба!!!!  Спасибо!!!!
 
Нет, так быть не должно, Показали бы пример с ошибкой - можно было бы понять, из-за чего... А так - как определить? Да никак! :)
Кому решение нужно - тот пример и рисует.
 
Цитата
Пытливый написал:
Показали бы пример с ошибкой - можно было бы понять, из-за чего...
https://yadi.sk/i/mzlrXzOi1Ys-RQ по ссылке файл
 
Цитата
Stics написал:
1=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$9;АГРЕГАТ(15;6;(СТРОКА($B$3:$B$9)-2)/($A$3:$A$9=$F3);СТОЛБЕЦ(A$1)));"")
Работает, спасибо!
Но, что делать когда 10 000 строк и есть не уникальные значения (яблоко может быть в 10 строке, так и в 1001) формула будет делать дубли?
Страницы: 1
Наверх