Страницы: 1
RSS
Как сгруппировать дубликаты по ячейке транспонированием
 
Здравствуйте, ситуация следующая:
Столбец А - Номер товара
Столбец B - Название товара

Так получилось, что номер товара дублируется, а названия разные, но это не ошибка, такое бывает, когда у одного и того же товара разные названия, теперь задача сгруппировать по номеру товара, а названия перенести в строку родительского номера товара. Пример загрузил. Помогите, пожалуйста, строк много, можно с ума сойти делая в ручную.
 
Для АйДи:
=НАИМЕНЬШИЙ($A$8:$A$12;СУММ(СЧЁТЕСЛИ($A$8:$A$12;$D$7:D7))+1)
для товара:
=ИНДЕКС($B$8:$B$12;НАИМЕНЬШИЙ(ЕСЛИ($A$8:$A$12=$D8;СТРОКА($A$8:$A$12)-7);СТОЛБЕЦ(A8)))
Обе формулы массивные.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Вариант на Power Query:
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"ID товара", type text}, {"Название товара", type text}}),
    #"Сгруппированные строки" = Table.Group(#"Измененный тип", {"ID товара"}, {{"Таб", each Table.AddIndexColumn(_, "Индекс", 1, 1), type table}}),
    #"Развернутый элемент Таб" = Table.ExpandTableColumn(#"Сгруппированные строки", "Таб", {"Название товара", "Индекс"}, {"Название товара", "Индекс"}),
    #"Сведенный столбец" = Table.Pivot(Table.TransformColumnTypes(#"Развернутый элемент Таб", {{"Индекс", type text}}, "ru-RU"), List.Distinct(Table.TransformColumnTypes(#"Развернутый элемент Таб", {{"Индекс", type text}}, "ru-RU")[Индекс]), "Индекс", "Название товара")
in
    #"Сведенный столбец"
Вот горшок пустой, он предмет простой...
 
Bema, здравствуйте, подскажите пожалуйста, как формулой пользоваться, я в экселе до массивов не дошел
 
Цитата
rustf написал: до массивов не дошел
примеры
прямо сейчас можно дойти
 
rustf, изучайте Формулы массива в Excel
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Прочитал, спасибо
Для АйДи я вставил в ячейку D8:
Код
=НАИМЕНЬШИЙ($A$8:$A$12;СУММ(СЧЁТЕСЛИ($A$8:$A$12;$D$7:D7))+1)

для товара я вставил в ячейку E8:
Код
=ИНДЕКС($B$8:$B$12;НАИМЕНЬШИЙ(ЕСЛИ($A$8:$A$12=$D8;СТРОКА($A$8:$A$12)-7);СТОЛБЕЦ(A8)))

Растягиваю вниз, но у меня получается не то, что нужно. Посмотрите пожалуйста скриншот.
 
Формулы массива необходимо вводить сочетанием клавиш Ctrl + Shift + Enter. Вы так ввели?
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Цитата
Bema написал:
Формулы массива необходимо вводить сочетанием клавиш Ctrl + Shift + Enter. Вы так ввели?
Спасибо Вам большое, все получилось, очень выручили
Цитата
PooHkrd написал:
Вариант на Power Query:Код ? 12345678let    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"ID товара", type text}, {"Название товара", type text}}),    #"Сгруппированные строки" = Table.Group(#"Измененный тип", {"ID товара"}, {{"Таб", each Table.AddIndexColumn(_, "Индекс", 1, 1), type table}}),    #"Развернутый элемент Таб" = Table.ExpandTableColumn(#"Сгруппированные строки", "Таб", {"Название товара", "Индекс"}, {"Название товара", "Индекс"}),    #"Сведенный столбец" = Table.Pivot(Table.TransformColumnTypes(#"Развернутый элемент Таб", {{"Индекс", type text}}, "ru-RU"), List.Distinct(Table.TransformColumnTypes(#"Развернутый элемент Таб", {{"Индекс", type text}}, "ru-RU")[Индекс]), "Индекс", "Название товара")in    #"Сведенный столбец"
И Вам тоже спасибо, что потратили свое время, жаль, что я не смог оценить Ваше решения из-за избытка информации о Power Query
 
rustf, кнопка цитирования не для ответа! Вернитесь в своё сообщение и удалите то, что Вы ошибочно считаете цитатой.
 
Цитата
rustf написал:
я не смог оценить Ваше решения из-за избытка информации
- от избытка голова пухнет? :)
Я как всегда предлагаю такой вариант (код UDF в копилке форума) - см. скрин по ссылке http://prntscr.com/m92m3d
Т.к. это не совсем то что заказано - только скрин. Но вся необходимая инфа тут есть.
Изменено: Hugo - 18.01.2019 23:51:35
Страницы: 1
Наверх