在Excel中透视数据的宏或方法?

时间:2015-10-07 01:23:25

标签: excel vba excel-vba excel-formula unpivot

我正在寻找一种在Excel工作表中动态转动数据的方法,无论数据集有多宽,都可以将数据放入通用格式。

例如:我希望能够获取一个可能包含5列,30列或x列数的电子表格,以使其转换为只有三列宽的通用格式。

以下是原始数据的外观示例:

enter image description here

我希望它看起来像这样:

enter image description here

有没有办法通过宏或使用任何其他Excel函数来做到这一点?

1 个答案:

答案 0 :(得分:2)

假设标签/数据位于从A1开始的Sheet1中。

  1. 插入新的ColumnA。

  2. 对于Excel 2003:激活摘要表中的任何单元格,然后选择“数据 - 数据透视表和数据透视图报表”:

    SO20541905 first example

  3. 对于更高版本,使用 Alt + D 访问向导,P:

  4. 选择多个合并范围数据透视表,然后点击下一步>

    SO20541905 second example

  5. 在“Step 2a of 3”中,选择我将创建页面字段,然后单击 Next>

    SO20541905 third example

  6. 在“步骤2b of 3”中(未在模态中显示!)在范围:字段中指定汇总表范围(A2:E6表示样本数据),然后单击< kbd>添加,然后下一步&gt;

  7. SO32982294 fourth example

    1. 在“第3步(共3步)”中,选择数据透视表的位置(现有工作表应该投放,因为临时只需要PT):
    2. SO32982294 fifth example

      1. 单击完成以创建数据透视表:
      2. SO32982294 sixth example

        1. 在Grand Totals(此处为Cell L4或16)的交叉处向下钻取(即双击):
        2. SO32982294 seventh example

          1. 现在可以删除PT。

          2. 在表格A2中:

            ="Summary"&RIGHT(B2)

          3. 通过在快捷菜单(右键单击表格)和转换为范围中选择表格,将生成的表格转换为传统的单元格数组。

          4. 在从Row2系列开始的备用列中,填充整数,从1到您开始使用的多行数据(4,在示例中)。然后系列填充该系列以适应。

          5. 按照(备用)列对工作表进行排序,从最小到最大,我的数据有标题已选中。

          6. 删除Row1和备用列,希望您最终得到:

            SO32982294 eighth example