我有一个包含数千行的Excel表格,如下所示:
|---------------------|------------------|------------------|------------------|
| COUNTRY | DATE | ITEM 1 | ITEM 2 |
|---------------------|------------------|------------------|------------------|
| Ireland | Jan-1 | 40 | 56 |
|---------------------|------------------|------------------|------------------|
我需要让它看起来如下:
|---------------------|------------------|------------------|------------------|
| COUNTRY | DATE | COUNT | ITEM |
|---------------------|------------------|------------------|------------------|
| Ireland | Jan-1 | 40 | ITEM 1 |
|---------------------|------------------|------------------|------------------|
| Ireland | Jan-1 | 56 | ITEM 2 |
|---------------------|------------------|------------------|------------------|
您能否建议如何做到这一点?我对非VBA和VBA解决方案都持开放态度。
谢谢。
答案 0 :(得分:2)
Powerquery插件2013,数据标签>获取并转换Excel 2016
选择范围内的单元格>数据选项卡(或powerquery选项卡)>来自表格的数据>选择列项1和项2>右键单击> unpivot>将属性列重命名为Item,将Value重命名为Count,方法是双击headers.Re-order列,拖放所需的列。主页标签>关闭并加载到新工作表
M代码:
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"COUNTRY ", type text}, {" DATE ", type date}, {" ITEM 1 ", Int64.Type}, {" ITEM 2 ", Int64.Type}}),
#"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"COUNTRY ", " DATE "}, "Attribute", "Value"),
#"Renamed Columns" = Table.RenameColumns(#"Unpivoted Columns",{{"Value", "Count"}, {"Attribute", "Item"}}),
#"Reordered Columns" = Table.ReorderColumns(#"Renamed Columns",{"COUNTRY ", " DATE ", "Count", "Item"})
in
#"Reordered Columns"
结果: