将多列和多行数据重新格式化为一行

将多列和多行数据重新格式化为一行

我有四列数据,每两个单元格相关。换句话说,每个 4x2 单元格块。在下面,每个字母都在自己的单元格中。我一直在尝试使用 INDEX 和 OFFSET 公式来解决这个问题,但没有任何运气。整个数据集超过 1000 行。

当前格式:

在此处输入图片描述

所需格式:

在此处输入图片描述

答案1

这是一种黑客方法,但只需几秒钟。下面的灰色列代表您的原始数据。我添加了 A 列表示“保留”。交替 Y/空白,可以使用公式或手动完成。

然后在单元格 F2 中输入以下公式:

=IF(ISBLANK($A2),"",B3)

拖动方向为横向和向下。

最后,复制 A:I 列并将其作为特殊文本粘贴到其他地方(以删除公式)。然后按保留排序并删除空白。

在此处输入图片描述

答案2

这是一个将行复制到新工作簿的简单方法。

  • 在第一个数据行的第五列中添加公式 =MOD(ROW(),2)=MOD(ROW();2) (以适合您的版本为准)。我发现要使此方法有效,第一行必须仅包含标题,因此您应该将公式添加到第二行(即第一个数据行)的第五个单元格。
  • 单击公式并将其向下拖动到所有行
  • 选择包含公式的列并单击数据 > 过滤器 在横幅中
  • 根据值进行过滤,0仅显示偶数行
  • 选择所有显示的数据并按Ctrl+C
  • 转到新工作簿,定位到第一个单元格并单击 Ctrl+V
  • 返回旧工作簿并进行过滤1,以便仅显示奇数行
  • 选择所有显示的数据并按Ctrl+C
  • 转到新工作簿,定位到第一行第五个单元格并单击Ctrl+V
  • 完毕。

答案3

如果您有该SEQUENCE功能(Office 365,Excel Online),您可以使用单个公式执行此操作。

我假设您提到的是 4x2,并且您可以在原始表中添加行对;公式应该适应这一点。

姓名'd 数据范围myRng,但如果您愿意,也可以使用常规寻址。

将此公式输入到某个单元格中,结果将SPILL显示到其周围的区域。

H1: =INDEX(myRng,INT(SEQUENCE(,8,0,1)/4)+SEQUENCE(ROWS(myRng)/2,,1,2),MOD(SEQUENCE(,4*2,0,1),4)+1)

在此处输入图片描述

rows该函数的参数返回INDEX一个二维数组:

=INT(SEQUENCE(,8,0,1)/4)+SEQUENCE(ROWS(myRng)/2,,1,2) =>

在此处输入图片描述

columns参数还返回一个数组:

=MOD(SEQUENCE(,4*2,0,1),4)+1

在此处输入图片描述

当这些数组用于行和列参数时,结果如上面的屏幕截图所示。

答案4

尝试这个公式: =INDEX($A:$H,INT(((ROW(A1)-1)*8+COLUMN(A1)-1)/4)+1,MOD((ROW(A1)-1)*8+COLUMN(A1)-1,4)+1)

在此处输入图片描述

相关内容