7

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

我有一张表,我使用 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);
}
4

1 回答 1

3

您可以使用 将数组作为文本存储在单个单元格中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

相比

COUNT(FILTER(A1:A10, B1:B10 > 0, B1:B10 < 3)) == 8
于 2014-03-22T03:02:31.940 回答