你可以像这样使用 Powerquery。
在示例中,我从 Excel 中获取了一个输入表,这意味着您必须相应地调整 Source
let
Source = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
#"Hinzugefügter Index" = Table.AddIndexColumn(Source, "Index", 1, 1, Int64.Type),
groupedbyType = Table.Group(#"Hinzugefügter Index", {"Type"}, {{"CountIt", each _, type table [Type=text, Index=number]}}),
addCol = Table.AddColumn(groupedbyType, "Count", each List.Count([CountIt][Type])),
#"Erweiterte CountIt" = Table.ExpandTableColumn(addCol, "CountIt", {"Index"}, {"CountIt.Index"}),
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Erweiterte CountIt", "Result", each [Type] & " (" & Text.From([Count]) & ")"),
#"Sortierte Zeilen" = Table.Sort(#"Hinzugefügte benutzerdefinierte Spalte",{{"CountIt.Index", Order.Ascending}}),
#"Entfernte Spalten" = Table.RemoveColumns(#"Sortierte Zeilen",{"Type", "CountIt.Index", "Count"})
in
#"Entfernte Spalten"
Power Query 的第一步看起来像
最后一步看起来像
我正在做的是
- 稍后我添加一个索引来恢复排序
- 我按类型分组,但保留行
- 我计算每组的行数
- 我扩展结果
- 我根据要求将类型和计数结果结合起来
- 我恢复排序
- 我删除了所有其他列
更新:以下步骤与翻译步骤相同
let
Source = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
addedIndex = Table.AddIndexColumn(Source, "Index", 1, 1, Int64.Type),
groupedbyType = Table.Group(addedIndex, {"Type"}, {{"CountIt", each _, type table [Type=text, Index=number]}}),
addCol = Table.AddColumn(groupedbyType, "Count", each Table.RowCount([CountIt])),
extendCountIt = Table.ExpandTableColumn(addCol, "CountIt", {"Index"}, {"CountIt.Index"}),
addedColResult = Table.AddColumn(extendCountIt, "Result", each [Type] & " (" & Text.From([Count]) & ")"),
sortAgain = Table.Sort(addedColResult,{{"CountIt.Index", Order.Ascending}}),
removedCol = Table.RemoveColumns(sortAgain,{"Type", "CountIt.Index", "Count"})
in
removedCol
Power BI 更新:对于 Power BI,M 代码可能类似于使用 Excel 文件作为数据源的代码。
let
Source = Excel.Workbook(File.Contents("Excelfilename.xlsx"), null, true),
Table1 = Source{[Item="Tabelle1",Kind="Table"]}[Data],
addedIndex = Table.AddIndexColumn(Table1, "Index", 1, 1, Int64.Type),
groupedbyType = Table.Group(addedIndex, {"Type"}, {{"CountIt", each _, type table [Type=text, Index=number]}}),
addCol = Table.AddColumn(groupedbyType, "Count", each Table.RowCount([CountIt])),
extendCountIt = Table.ExpandTableColumn(addCol, "CountIt", {"Index"}, {"CountIt.Index"}),
addedColResult = Table.AddColumn(extendCountIt, "Result", each [Type] & " (" & Text.From([Count]) & ")"),
sortAgain = Table.Sort(addedColResult,{{"CountIt.Index", Order.Ascending}}),
removedCol = Table.RemoveColumns(sortAgain,{"Type", "CountIt.Index", "Count"})
in
removedCol