对Excel上具有名称的项目进行分类
我试图重新排列矩阵元素,对与名称匹配的项目进行分类。例如: 原始矩阵:对Excel上具有名称的项目进行分类,excel,categorization,Excel,Categorization,我试图重新排列矩阵元素,对与名称匹配的项目进行分类。例如: 原始矩阵: Name, item1, item2, item3 ... A, apple, banana, cherry B, milk, apple, cherry C, milk, chocolate, apple 然后我想把这个矩阵转换成: items, names apple, A B C banana, A cherry, A B milk, B C chocolate, C 目前,我
Name, item1, item2, item3 ...
A, apple, banana, cherry
B, milk, apple, cherry
C, milk, chocolate, apple
然后我想把这个矩阵转换成:
items, names
apple, A B C
banana, A
cherry, A B
milk, B C
chocolate, C
目前,我只是在excel上复制和粘贴,效率很低。有什么方法可以对项目进行分类吗?请参考此内容,了解如何在您的Excel版本上使用Power Query。它在Excel 2010 Professional Plus及更高版本中提供。我的演示使用的是Excel 2016
步骤如下:
项目
列,使用Transform
选项卡下的Unpivot columns功能取消pivot这些列,然后按值
然后按名称
列对表进行排序李>
转换
选项卡下的分组依据功能,按值
列对名称
列进行分组,如下所示:let
Source = Excel.CurrentWorkbook(){[Name="Table3"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}, {" item1", type text}, {" item2", type text}, {" item3", type text}}),
#"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Name"}, "Attribute", "Value"),
#"Sorted Rows" = Table.Sort(#"Unpivoted Columns",{{"Value", Order.Ascending}, {"Name", Order.Ascending}}),
#"Trimmed Text" = Table.TransformColumns(#"Sorted Rows",{{"Value", Text.Trim, type text}}),
#"Cleaned Text" = Table.TransformColumns(#"Trimmed Text",{{"Value", Text.Clean, type text}}),
#"Grouped Rows" = Table.Group(#"Cleaned Text", {"Value"}, {{"names", each Text.Combine([Name]," "), type text}})
in
#"Grouped Rows"
如果你有任何问题,请告诉我。干杯:)显示Excel 365(16.0.11929.20384)。感谢您的帮助,Powerquery看起来不错。但我相信这个编辑有点慢?也许vba更快?@Goldhund是的,只需遵循步骤4,即返回步骤3,用正确的公式替换原始公式(因为正确的公式不是内置函数..然而?)哦,只是powerquery看起来很粗糙,而不是它所需要的过程。我觉得它很好用。顺便问一下,有什么命令可以计算名字的数量吗?例如,对于apple,@Goldhund将步骤3替换为按
Value
列分组,并将操作设置为Count Rows
。如果你认为我的答案对你来说很好,请考虑把它标记为解决方案,点击我的答案旁边的“下投票”按钮:“我建议你玩PQ编辑器,在你有时间的时候测试每个函数。”如果遇到任何特定问题,您可以提出新问题,展示您的尝试,并指定您想要实现的目标,然后在标记中使用#powerquery
,以便其他贡献者(如果不是我)可以帮助您。