将列拆分为行范围
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结果:
我有这样一个单元格:
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结果: