Страницы: 1
RSS
Группировка без промежуточных строк и с условиями
 
Вечер добрый!
Выгружал с 1с, не учел, что один из параметров незначительно отличается, поэтому один и тот же вид товара представлен в несколько строк.
Нужно по принципу уникальный артикул - 1 строка, если в столбцах идут разные данные( как в Параметрах), нужно брать значение у первого.
Сложность с размерами, их нужно так же в строку, суммируя количество, но цену при этом выбирая максимальную.
На втором листе - как выглядит итог.
 
Вариант: сводной таблицей
 
Андрей_26, спасибо, но один в один я могу настроить в 1с такую структуру данных. От нее и исходил, в общем-то. Даже здесь на форуме макрос искал чтобы пустые размерные колонки удалять. Эти данные импортируются, и для импорта нужна именно такая структура как в моем примере на листе 2.
 
Sharmat, что то похожее получилось, но без столбца Номенклатура.Параметр.
И где то упустил суммирование количества
 
Михаил Л, спасибо, по сути только отбор по максимальной цене осталось сделать
 
По сути только отбор по максимальной цене сделал
Осталось сделать суммирование количества
 
Код
// Таблица1 (3)
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(Source, {"Артикул", "Номенклатура.Вид номенклатуры", "Номенклатура.Группа", "Номенклатура.Поставщик", "Уник", "Номенклатура.Параметр"}, "Атрибут", "Значение"),
    #"Extracted Text Before Delimiter" = Table.TransformColumns(#"Unpivoted Other Columns", {{"Атрибут", each Text.BeforeDelimiter(_, " "), type text}}),
    #"Added Index" = Table.AddIndexColumn(#"Extracted Text Before Delimiter", "Индекс", 0, 1),
    #"Integer-Divided Column" = Table.TransformColumns(#"Added Index", {{"Индекс", each Number.IntegerDivide(_, 3), Int64.Type}}),
    #"Pivoted Column" = Table.Pivot(#"Integer-Divided Column", List.Distinct(#"Integer-Divided Column"[Атрибут]), "Атрибут", "Значение"),
    Group = Table.Group(#"Pivoted Column", {"Артикул", "Номенклатура.Вид номенклатуры", "Номенклатура.Группа", "Номенклатура.Поставщик"}, {{"Номенклатура.Параметр", each _[#"Номенклатура.Параметр"]{0}}, {"Уник", each _[Уник]{0}}, {"Индекс", each _[Индекс]{0} }, {"a", (sub)=> let
    #"Grouped Rows" = Table.Group(sub, {"размер"}, {{"кол", each List.Sum([#"кол-во"]), type number}, {"цена", each List.Max([цена]), type number}}),
    #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Grouped Rows", {}, "Атрибут", "Значение"),
    #"Transposed Table" = Table.Transpose(#"Unpivoted Columns"){1} in
    #"Transposed Table", type record}}),
    #"Sorted Rows" = Table.Sort(Group,{{"Индекс", Order.Ascending}}),
    #"Added Custom" = List.Transform({1..List.Max(Table.AddColumn(#"Sorted Rows", "b", each List.Count(Record.FieldNames([a])))[b])}, each "Column"& Text.From(_)),
    #"Expanded {0}" = Table.ExpandRecordColumn(#"Sorted Rows", "a", #"Added Custom"),
    #"Removed Columns" = Table.RemoveColumns(#"Expanded {0}",{"Индекс"})
in
    #"Removed Columns"
 
Михаил Л, спасибо еще раз!
Страницы: 1
Наверх