将列拆分为行范围

Split column into range of rows

我有这样一个单元格:

1
2
3
4
5
6
7
8
9
10

我想使用 Google 表格将一列中的数据排序为 2 行,每行 5 列。

有人知道怎么做吗?

结果应该是:

1 2 3 4 5
6 7 8 9 10

无论单元格内的字符串中有多少个值,该解决方案都应该有效。假设单元格是 G4。公式如下:

={array_constrain(split(G4, " "), 1, columns(split(G4, " "))/2);
  transpose(sort(transpose(array_constrain(transpose(sort(transpose(split(G4, " ")), 1, false)), 1, columns(split(G4, " "))/2))))
 }

有很多方法可以做到这一点。一个是:

=TRANSPOSE({OFFSET(A1,,,COUNTA(A:A)/2),OFFSET(A1,COUNTA(A:A)/2,,COUNTA(A:A)/2)})

更通用的解决方案

要将列拆分为任意给定数量的行,请使用公式:

=ArrayFormula(IFERROR(VLOOKUP( COLUMN(OFFSET(A1,,,1,ROUNDUP(COUNTA(A:A)/numRows)))+ ROUNDUP(COUNTA(A:A)/numRows)*(ROW(INDIRECT("a1:a"&numRows))-1), {ROW(A:A),A:A},2,)))

其中 numRows 是行数。

这个:

COLUMN(OFFSET(A1,,,1,ROUNDUP(COUNTA(A:A)/numRows))) + ROUNDUP(COUNTA(A:A)/numRows)*(ROW(INDIRECT("a1:a"&numRows))-1)

生成索引:

1   2   3   4
5   6   7   8
9   10  11  12
13  14  15  16

VLOOKUP(indexes,{ROW(A:A),A:A},2,)是return结果: