【问题标题】:Split column into range of rows将列拆分为行范围
【发布时间】:2017-05-18 06:57:14
【问题描述】:

我有一个这样的单元格:

1
2
3
4
5
6
7
8
9
10

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

有人知道怎么做吗?

结果应该是:

1 2 3 4 5
6 7 8 9 10

【问题讨论】:

  • 最终结果应该是什么样子?
  • @MaxMakhrov 初始结果是一列十行。最终结果应显示 2 行 5 列。

标签: google-sheets transpose google-sheets-formula


【解决方案1】:

无论单元格内的字符串中有多少值,该解决方案都应该有效。假设单元格是 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))))
 }

【讨论】:

  • 谢谢@ttarchala,但文本的格式改变了我的问题。初始结果是一列和 10 行。最终结果应显示 2 行 5 列。
【解决方案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,)是返回结果:

【讨论】:

  • 还是不行。我希望最终结果以 5 列和 2 行的形式显示数据。
  • 哇,伙计!即使在很长一段时间后也感谢您的回答。万事如意!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-28
  • 2013-11-09
  • 1970-01-01
  • 1970-01-01
  • 2021-12-12
  • 1970-01-01
相关资源
最近更新 更多