Спасибо заранее за помощь!
Как бы вы посоветовали мне перейти от этой таблицы:
Equipment Desc | Ship To Name
------------------+----------
Small | Bob
Small | Dylan
Small | Joe
Small | Ethan
Small | Bob
Medium | Joe
Medium | Michael
Medium | Bob
Big | Bob
Big | Joe
Big | Michael
К этой таблице:
Ship To Name | Equipment Desc
-------------+-------------
Bob | 1 Big, 1 Medium, 2 small
Dylan | 1 Small
Joe | 1 Big, 1 Medium, 1 Small
Ethan | 1 Small
Michael | 1 Big, 1 Medium
Я попробовал решение powerquery из более старого поста.
https://superuser.com/a/1054653/1136022
Это было мое мнение.
= Table.Group(#"Changed Type", {"Ship To Name"}, {{"Installed Base", each Text.Combine([Equipment Desc], "#(cr)"), type text}})
Но он не суммирует инструменты. Он просто возвращает список инструментов.
То есть он не показывает "2 Big", а "1 big, 1 big".
Заранее спасибо за ваше внимание.
С наилучшими пожеланиями,
Томас
решение1
По сути, это должно приблизить вас к следующему:
- группировка по количеству
- Объединить столбцы, чтобы объединить количество и описание оборудования
- поворот на описании оборудования
- объединить столбцы
Похоже, ваш предыдущий шаг также назывался #"Измененный тип", поэтому вы должны иметь возможность вставить мой код с этого места. Всегда немного хлопотно интегрировать чужой код M.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCs5NzMlR0lFyyk9SitVB8F0qcxLzUES88lMVUARcSzLQlMAM8U1NySzNRdYDF/HNTM5ITM1BFYTpc8pMx+DBjYBw4fpjAQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Equipment Desc" = _t, #"Ship To Name" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Ship To Name", type text}, {"Equipment Desc", type text}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"Ship To Name", "Equipment Desc"}, {{"Count", each Table.RowCount(_), type number}}),
#"Duplicated Column" = Table.DuplicateColumn(#"Grouped Rows", "Equipment Desc", "Equipment Desc - Copy"),
#"Merged Columns" = Table.CombineColumns(Table.TransformColumnTypes(#"Duplicated Column", {{"Count", type text}}, "en-AU"),{"Count", "Equipment Desc - Copy"},Combiner.CombineTextByDelimiter(" ", QuoteStyle.None),"Merged"),
#"Sorted Rows" = Table.Sort(#"Merged Columns",{{"Equipment Desc", Order.Ascending}}),
#"Pivoted Column" = Table.Pivot(#"Sorted Rows", List.Distinct(#"Sorted Rows"[#"Equipment Desc"]), "Equipment Desc", "Merged"),
#"Merged Columns1" = Table.CombineColumns(#"Pivoted Column",{"Big", "Medium", "Small"},Combiner.CombineTextByDelimiter(", ", QuoteStyle.None),"Equipment Desc")
in
#"Merged Columns1"
решение2
Вот метод:
- Группировка по обоим столбцам, выполняющим
RowCount
- Объедините столбцы «Оборудование» и «Количество», используя
<space>
разделитель. - Группировка по столбцу Имя, выполняющая
All Rows
- Добавьте пользовательский столбец для преобразования результирующей таблицы в список.
- Формула пользовательского столбца:
=Table.Column([Equipment],"Merged")
- Формула пользовательского столбца:
- Извлечь значения из
List
столбца (используя двунаправленную стрелку) с,
помощью разделителя
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Equipment Desc", type text}, {"Ship To Name", type text}}),
#"Trimmed Text" = Table.TransformColumns(#"Changed Type",{{"Ship To Name", Text.Trim, type text}, {"Equipment Desc", Text.Trim, type text}}),
#"Grouped Rows" = Table.Group(#"Trimmed Text", {"Ship To Name", "Equipment Desc"}, {{"Count", each Table.RowCount(_), type number}}),
#"Merged Columns" = Table.CombineColumns(Table.TransformColumnTypes(#"Grouped Rows", {{"Count", type text}}, "en-US"),{"Count", "Equipment Desc"},Combiner.CombineTextByDelimiter(" ", QuoteStyle.None),"Merged"),
#"Grouped Rows1" = Table.Group(#"Merged Columns", {"Ship To Name"}, {{"Equipment", each _, type table [Ship To Name=text, Merged=text]}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows1", "Eqpt List", each Table.Column([Equipment],"Merged")),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Equipment"}),
#"Extracted Values" = Table.TransformColumns(#"Removed Columns", {"Eqpt List", each Text.Combine(List.Transform(_, Text.From), ", "), type text})
in
#"Extracted Values"