根据Excel中的列中的值添加新行

时间:2018-05-22 08:36:38

标签: excel

我有一个包含数千行的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解决方案都持开放态度。

谢谢。

1 个答案:

答案 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"

结果:

Result