在 Excel 中转换数据的宏或方法?

Macro or method to pivot data in Excel?

我正在寻找一种在 Excel sheet 中动态旋转数据的方法,以便将数据置于通用格式中,无论数据集有多宽。

例如:我希望能够采用可能有 5 列、30 列或 x 列的跨页sheet,使其转向只有三列宽的通用格式.

这是原始数据的示例:

我希望它看起来像这样:

有没有办法做到这一点,通过宏或使用任何其他 Excel 功能?

假设 labels/data 在工作表 1 中从 A1 开始。

  1. 插入一个新的 ColumnA。

  2. 对于 Excel 2003:激活摘要中的任意单元格 table 并选择数据 - 数据透视表Table 和数据透视图报告:

  3. 对于更高版本,使用 Alt+D、P:

    [= 访问向导100=]
  4. Select多个合并范围PivotTable并单击下一页>.

  5. 在“第 2a 步,共 3 步”中,选择我将创建页面字段,然后单击下一步>

  6. 在“第 2b 步,共 3 步”中(未显示在模式中!)在 范围: 字段中指定摘要 table 范围( A2:E6 为示例数据)并单击 添加,然后单击 下一步 >.

  1. 在“Step 3 of 3”中,select Pivot 的位置Table(现有的 sheet 应该可以使用,因为 PT 只是临时需要的):

  1. 单击完成 创建枢轴Table:

  1. 在总计(此处为单元格 L4 或 16)的交叉点上向下钻取(即 double-click):

  1. 现在可以删除 PT。

  2. 在 Table 的 A2 中:

    ="Summary"&RIGHT(B2)

  3. 通过在快捷菜单中 selecting Table 将生成的 Table 转换为常规的单元格数组(Table 中的right-click)和转换为范围

  4. 在从第 2 行系列开始的备用列中向下填充整数,从 1 到您开始使用的任意多行数据(在示例中为 4)。然后系列填充那个系列以适应。

  5. 按那个(备用)列排序 sheet,从最小到最大,我的数据已 headers 检查。

  6. 删除第 1 行和备用列,希望您最终会得到: