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);
}

最佳答案 您可以使用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
点赞