Google Sheets 将二维数组连接成单列并同时排序

Ben*_*rer 0 arrays concatenation google-sheets

我想知道是否可能,如果可能的话,如何将 8 列和 300 多行的数组转换为排序的、串联的一维数组,其中每行都是 8 列中内容的串联。我还想使用一个公式来实现这一点。

例子:

leg | dog | tom | jon | bar |     |     |     |
foo | bin | git | hub | bet | far | day | bin |
...
Run Code Online (Sandbox Code Playgroud)

将转换为:

bar dog jon leg tom
bet bin bin day far foo git hub
...
Run Code Online (Sandbox Code Playgroud)

我可以使用以下方法实现单行:

=arrayformula(CONCATENATE(transpose(sort(transpose(F2:M2),1,1))&" "))
Run Code Online (Sandbox Code Playgroud)

只要 8 列从 F 到 M,我就可以将此公式复制 300 多次,这很容易做到,但我想要一个填充n行的公式。

这可以实现还是我必须复制公式?

JPV*_*JPV 5

如果我理解正确的话,你应该能够用这样的公式来做到这一点

=ArrayFormula(transpose(query(transpose(A2:H8),,50000)))
Run Code Online (Sandbox Code Playgroud)

更改范围以适应。另请参见下图。

编辑:另一种方法可能是创建自定义公式(包括排序)。将其添加到脚本编辑器中

function concatenateAndSort(range) {
  return range.map(function (r) {
  return [r.sort().join(" ")]
})
}
Run Code Online (Sandbox Code Playgroud)

然后在电子表格(您希望输出出现的位置)中输入

=concatenateAndSort(A3:H8)
Run Code Online (Sandbox Code Playgroud)

(更改范围以适应)。