在 Excel 中将表格转换为矩阵

在 Excel 中将表格转换为矩阵

所以我基本上遇到了类似图片中的情况,我需要将 A 中的表格转换为 B 中的矩阵。行/列标题不是必需的,只要矩阵就行。如果更简单的话,我愿意使用除 Excel 之外的其他工具,例如 Matlab、SQL、Python 或 R。是否可以直接对大量行(几千行)执行此操作

答案1

在此处输入图片描述

怎么运行的:

  • 选择源数据S28:U37
  • 插入 TAB 键ivot 表。
  • 最好在现有表中创建 PT。
  • 在行、值和列中使用公司、交易金额和行号(查看附加的屏幕截图)。
  • 现在选择数据透视表的任意单元格,然后从设计标签页,点击Grand 总计,并命中n 仅适用于列。

注意:

  • 您可以根据需要调整总计。
  • 由于您通过上述评论提出了要求,因此已添加列总计。

  • 再次选择 PT 并R右键单击。

  • 现在从弹出菜单中点击ivot 表选项。

在此处输入图片描述


现在从显示的对话框中按 TAB显示,然后取消选中显示字段标题和过滤器下拉菜单。

在此处输入图片描述

  • 完成k.

笔记:

  • 如果您不需要总计,请重置的设置Off for Rows and Columns,您将获得如下所示的结果。

在此处输入图片描述

答案2

如果你有 Excel 2010+,你可以Power Query使用Get&Transform

  • Data TabGet & TransformFrom Table/Range
  • 选择Row nr列和数据透视列
    • 值列:=Transaction Amount
    • 高级选项: Don't Aggregate

在此处输入图片描述

M 代码

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Company", type text}, {"Transaction amount", Int64.Type}, {"Row nr", Int64.Type}}),
    #"Pivoted Column" = Table.Pivot(Table.TransformColumnTypes(#"Changed Type", {{"Row nr", type text}}, "en-US"), List.Distinct(Table.TransformColumnTypes(#"Changed Type", {{"Row nr", type text}}, "en-US")[#"Row nr"]), "Row nr", "Transaction amount"),
    #"Renamed Columns" = Table.RenameColumns(#"Pivoted Column",{{"Company", "Company/Row"}})
in
    #"Renamed Columns"

结果

在此处输入图片描述

相关内容