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

时间:2013-10-06 07:12:49

标签: google-sheets

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

我有一张桌子,我用它来收集一系列相关的线条。我需要对过滤后的数组做几件事:计算元素的数量并对元素求和。目前我必须多次重复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);
}

1 个答案:

答案 0 :(得分:2)

您可以使用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