将 Microsoft Excel 中的行重新排列为新工作表中的列

将 Microsoft Excel 中的行重新排列为新工作表中的列

我有一个数据列表,需要在下一张表中以特定的方式重新排列。

数据集

我想让数据自动输入到下一张表中,如下所示,因为总数据实际上很多,并且通过转置和复制粘贴到正确的顺序来完成此操作需要时间。

预期结果

是否可以通过函数/宏自动排列数据?

答案1

您可以使用数据透视表轻松实现它:

  1. 选择数据中的单元格,转到插入 - 数据透视表,单击确定
  2. 将所有列添加为列标题
  3. 选择数据透视表中的所有数据并按 CTRL+C(复制)
  4. 选择性粘贴 - 将值和数字格式粘贴到新位置

注意:通过数据透视表设置在记录之间添加空行对我来说不起作用,但您始终可以向源数据添加一个空列并将其包含在数据透视表中。

在此处输入图片描述

答案2

不确定您希望下一张表上的数据如何格式化。为了匹配图表,我假设 A2->A2、B2->A3 等,直到 A3 ->A13 步骤 1 在源表中将“Spot”指定为 A1 的名称。(如果不想使用名称,可以使用 ($a$1))

第 2 步偏移量使用 Val 的名称遍历数据

  • Val=OFFSET(点,1+INT((ROW()-2)/10),MOD(ROW()-2,10))

步骤 3,使用测试来判断空白单元格和原始数据中的 0 是否不同

  • =如果(Val="","",Val)

替代方案和解释

  • RW=1+INT((ROW()-2)/10) 这会计算出偏移量的行分量。10 = 数据有多宽。如果列数较多(或较少),则需要修改 10。-2 用于从第二行开始输出。如果需要,可以进行调整。目标是使第一行()等于零。

  • CW=MOD(ROW()-2,10) 这将计算出列组件偏移量。数学运算与行运算类似,10 表示宽度,-2 表示第一行。Mod 返回除法后的余数(0、1、2、3、4、5、6、7、8、9、0、1、2...)

使用这些名称,Val 变成

  • Val=偏移量(点,rw,cw)

Spot 和 RW、CW 可以根据您从哪里开始数据以及有多少列进行调整。如果输出区域变为 2 列宽,那么 RW 和 CW 需要进行微小调整,以包括 +column()-1 并将宽度更改为 5 而不是 10

相关内容