Вот способ ...
Начиная с этой таблицы как Table1:
Вы можете выбрать столбец «Клиент» и «Отменить сводку других столбцов», чтобы получить следующее:
Затем вы можете добавить столбец индекса (оставьте его с именем Index), а затем также настраиваемый столбец (оставьте его с именем Custom) с if Text.EndsWith([Attribute],"Cost") then 1 else 0
в качестве формулы, чтобы получить следующее:
Затем добавьте еще один настраиваемый столбец ... Назовите его Общая стоимость и введите #"Unpivoted Other Columns"[Value]{[Index]+(List.Count(#"Added Custom"[Custom])/List.Sum(#"Added Custom"[Custom]))}
в качестве формулы, чтобы получить:
Два вышеуказанных шага были, во-первых, для настройки определения соответствующей стоимости футболок на основе положения стоимости в столбце «Значение», а затем для фактического определения стоимости и записи ее в той же строке, что и соответствующие футболки. Столбец «Индекс» предоставляет информацию о расположении строк, а столбец «Пользовательский» предоставляет информацию о количестве - как общее количество в списке, так и количество строк с указанием стоимости. Я использую информацию о счетчике, чтобы определить, на сколько позиций индекса нужно переместиться вниз по столбцу «Значение» для динамического получения связанных значений затрат.
Затем отфильтруйте столбец «Атрибут» с помощью «Текстовые фильтры»> «Не заканчивается на ...» и введите слово «Стоимость». Все строки с записью атрибута, заканчивающейся словом Cost, должны исчезнуть:
Удалите столбцы Index и Custom и переименуйте столбцы Attribute и Value в Product Name и Quantity соответственно, чтобы получить окончательный результат:
Вот мой M-код:
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"
person
Marc Pincince
schedule
24.06.2018