将Google电子表格数组存储在一个单元格中

Noa*_*oam 5 google-sheets

是否可以将Google电子表格数组存储在一个单元格中,然后进行引用?

我有一张桌子,我用它从FILTER收集了一系列相关的行。我需要对过滤后的数组做几件事:计算元素的数量并求和。目前,我必须重复执行FILTER函数几次,因为我无法将其输出托管在一个单元格中。将FILTER输出存储在一个单元中,然后再创建另一个单元,例如“ = SUM(B1)”和“ = COUNT(B1)”会更好。

我发现NOEXPAND禁止添加CONTINUE单元格,但是如果我写“ = COUNT(B1)”,结果为1-我只计算数组的第一项。

谢谢!

编辑:由于某种原因,我无法回答自己的问题,但我发现您可以使用javascript编写自己的函数。您甚至可以使用JSON序列化数组,并将结果保留为字符串。因此,作为一个基本示例,您可以编写:

function serialize(a) {
  return JSON.stringify(a);
}

function deserialize(a) {
  return JSON.parse(a);
}
Run Code Online (Sandbox Code Playgroud)

005*_*005 6

您可以使用 将数组作为文本存储在单个单元格中JOIN。

它不太理想,因为您仍然需要每次使用时对其进行解组SPLIT,但它对于存储复杂的过滤器很有用。

例如:

A1: =TRANSPOSE({1,2,3,4,5,6,7,8,9,10})
B1: =TRANSPOSE({3,1,1,2,1,1,1,1,1,0})
C1: =JOIN(",",FILTER(A1:A10, B1:B10 > 0, B1:B10 < 3))

COUNT(SPLIT(C1,",")) == 8
Run Code Online (Sandbox Code Playgroud)

相比

COUNT(FILTER(A1:A10, B1:B10 > 0, B1:B10 < 3)) == 8
Run Code Online (Sandbox Code Playgroud)