Вот A way ...
Начиная с этой таблицы как Таблица1:
Вы можете выбрать столбец «Клиент» и «Отключить другие столбцы», чтобы получить это:
Затем вы можете добавить столбец индекса (оставьте его с именем Index), а затем также пользовательский столбец (оставьте его с именем Custom) с if Text.EndsWith([Attribute],"Cost") then 1 else 0
в качестве формулы, чтобы получить это:
Затем добавьте еще один пользовательский столбец ... Назовите его Total Cost и введите #"Unpivoted Other Columns"[Value]{[Index]+(List.Count(#"Added Custom"[Custom])/List.Sum(#"Added Custom"[Custom]))}
в качестве формулы, чтобы получить:
Двумя шагами выше было, во-первых, настроить поиск соответствующей стоимости футболок на основе позиции стоимости в столбце «Значение», а затем фактически определить стоимость и записать ее в той же строке, что и соответствующая строка. Tshirts. Столбец «Индекс» предоставляет информацию о расположении строк, в то время как столбец «Пользовательский» предоставляет информацию о количестве - как общее количество в списке, так и количество строк со стоимостью. Я использую информацию счетчика, чтобы определить, сколько позиций индекса нужно переместить вниз по столбцу Значение для динамического получения связанных значений затрат.
Затем выполните фильтрацию в столбце Атрибут, используя Текстовые фильтры> Не заканчивается ... и введите слово Стоимость. Все строки с записью атрибута, заканчивающейся словом Cost, должны исчезнуть:
Удалите столбцы «Индекс» и «Пользовательский» и переименуйте столбцы «Атрибут» и «Значение» в «Имя продукта» и «Количество» соответственно, чтобы получить окончательный результат:
Вот мой код М:
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(Source, {"Customer"}, "Attribute", "Value"),
#"Added Index" = Table.AddIndexColumn(#"Unpivoted Other Columns", "Index", 0, 1),
#"Added Custom" = Table.AddColumn(#"Added Index", "Custom", each if Text.EndsWith([Attribute],"Cost") then 1 else 0),
#"Added Custom2" = Table.AddColumn(#"Added Custom", "Total Cost", each #"Unpivoted Other Columns"[Value]{[Index]+(List.Count(#"Added Custom"[Custom])/List.Sum(#"Added Custom"[Custom]))}),
#"Filtered Rows" = Table.SelectRows(#"Added Custom2", each not Text.EndsWith([Attribute], "Cost")),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Index", "Custom"}),
#"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Attribute", "Product Name"}, {"Value", "Quantity"}})
in
#"Renamed Columns"