对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

步骤如下:

  • 将源数据添加到power query editor
  • 突出显示所有
    项目
    列,使用
    Transform
    选项卡下的Unpivot columns功能取消pivot这些列,然后按
    然后按
    名称
    列对表进行排序
  • 使用
    转换
    选项卡下的分组依据功能,按
    列对
    名称
    列进行分组,如下所示:
  • 返回到右侧“应用步骤”部分的最后一步,转到公式栏,将公式列表的这一部分替换为文本。合并([名称],“”)
  • 关闭并加载结果到新工作表(默认情况下)
  • 如果所有名称都一致,且字符串前面或末尾没有任何隐藏空格,则应具有以下结果:

    以下是我的电源查询M代码,供您参考:

    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
    ,以便其他贡献者(如果不是我)可以帮助您。