首页 > 解决方案 > 如何将多列excel表格转换为附有标题的单列

问题描述

嗨,谁能告诉我是否有一种在excel中将表1转换为表2的好方法?这只是一个示例,实际数据有数千行。

表格1

表 2

谢谢!

标签: excelexcel-formula

解决方案


您可以使用 Excel 2010+ 中提供的 Power Query

它是 Excel 2016+ 的一部分,在早期版本中作为 Microsoft 提供的免费插件提供。

  • Data / Get & Transform / From Table/Range
  • If A, Band Care not the Headersthen (在 Power Query UI 中)
    • Home / Transform / Use First Row as Headers
  • 选择所有列并
    • Transform / Any Column / Unpivot Columns
  • Attribute和排序Value,按此顺序
  • Value列移动到第一列位置
  • Home / Close / Close & Load

在此处输入图像描述

上述所有步骤都可以从 Power Query UI 完成,但这里是生成的 M-Code

M-代码

let
    Source = Excel.CurrentWorkbook(){[Name="Table3"]}[Content],
    #"Promoted Headers" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"A", Int64.Type}, {"B", Int64.Type}, {"C", Int64.Type}}),
    #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {}, "Attribute", "Value"),
    #"Sorted Rows" = Table.Sort(#"Unpivoted Columns",{{"Attribute", Order.Ascending}, {"Value", Order.Ascending}}),
    #"Reordered Columns" = Table.ReorderColumns(#"Sorted Rows",{"Value", "Attribute"})
in
    #"Reordered Columns"

推荐阅读