MS Excel:将多个列表合并为一个

MS Excel:将多个列表合并为一个

我确信这比我想象的要容易。

我有多个垂直列表。例如:

第 1 项

第 2 项

第 3 项

第 4 项

项目 1.1

项目2.1

第 3.1 项

项目4.1

项目 1.2

第 2.2 项

第 3.2 项

第 4.2 项

我想把这些项目放入如下所示的水平列表中

第 1 项 第 2 项 第 3 项 第 4 项
项目 1.1 项目2.1 第 3.1 项 项目4.1
项目 1.2 第 2.2 项 第 3.2 项 第 4.2 项

答案1

如果您的列表在列中A,然后尝试在B1

=IFERROR(VLOOKUP("Item "&(COLUMN()-1)&IF(ROW()=1;"";"."&(ROW()- 1));$A:$A;1;0);"")

并将其向右向下拉伸,直到看到空单元格。 结果

答案2

让我们为每个项目分配一个“新行号”。如果我们知道每个列表中有四个项目,那么:

=QUOTIENT(ROW()-1,4)+1

在此处输入图片描述

我们可以使用新的行号过滤原始数据,如下所示:

=TRANSPOSE(FILTER($A$1:$A$12,$B$1:$B$12=ROW()))

在第 1 行,ROW()=1。然后,此 FILTER 返回 A 列的前四个值。然后,我们使用 TRANSPOSE 将它们水平旋转。通过将公式向下拖到第 2 行和第 3 行,我们得到其余数据:

在此处输入图片描述

如果愿意的话,你可以放弃第一步,而只需使用这个:

=TRANSPOSE(FILTER($A$1:$A$12,QUOTIENT(ROW($A$1:$A$12)-1,4)+1=ROW()))

在此处输入图片描述

答案3

我的假设是,您的数据是规则的(有序的)且完整的,没有遗漏的项目。您基本上有一个 Tx1 数组,可以将其包装到 anxm 表中,其中 nxm = T。

我们将使用表中的位置 (ROW,COLUMN) 作为数组的索引。假设数组位于 Sheet1 的 A 列中,而新表位于 Sheet2 中。那么 Sheet2 中的 A1 为:

=INDEX(SHEET1!$A:$A, COLUMN()+(ROW()-1)*m)

其中 m 必须替换为要换行的列数(在您的示例中为 4)。

相关内容