=SUM(SEQUENCE(10000000))
Run Code Online (Sandbox Code Playgroud)
上面的公式最多可以对 1000 万个虚拟数组元素进行求和。根据这个问答我们知道1000万是极限。现在,如果使用 Lambda 辅助函数将其实现为 Lambda REDUCE:
=REDUCE(,SEQUENCE(10000000),LAMBDA(a,c,a+c))
Run Code Online (Sandbox Code Playgroud)
我们得到,
尝试计算此公式时已达到计算限制
官方文档说
这可能在两种情况下发生:
- 公式的计算时间太长。
- 它使用了太多内存。
要解决此问题,请使用更简单的公式来降低复杂性。
所以,它说原因是空间和时间复杂性。但是抛出这个错误的确切空间是多少呢?这是如何确定的?
在REDUCE上面的函数中,虚拟数组的限制约为 66k:
=REDUCE(,SEQUENCE(66660),LAMBDA(a,c,a+c))
Run Code Online (Sandbox Code Playgroud)
但是,如果我们删除添加条件并使其仅返回当前值c,则允许的虚拟数组大小似乎会增加到 190k:
=REDUCE(,SEQUENCE(190000),LAMBDA(a,c,c))
Run Code Online (Sandbox Code Playgroud)
之后它会抛出一个错误。那么,这里的内存限制是由哪些因素决定的呢?我认为这是内存限制,因为它几乎在几秒钟内抛出错误。
lambda google-sheets space-complexity google-sheets-formula named-function
有没有一种简单的方法(解决方法)如何禁用像=RAND() =RANDARRAY() =RANDBETWEEN()谷歌电子表格中那样的易失性函数的自动重新计算(?)
在构建密钥生成器的情况下,我们需要处理多个RANDBETWEEN输出,每次单元格更改都会重新计算,并且这些RANDBETWEEN数字不能在我们不断编辑的工作表中停留更长的时间.
那里有一个有问题的冰柜插件和许多需要安装和一定程度的改装/知识的非通用脚本变体,那么如何以旧方式做到这一点?
random volatile spreadsheet google-sheets google-sheets-formula
所以,现在我正在开发另一个电子表格项目,这次我想知道如何使用平均公式和数组公式,使它们在每次输入新数据时自动拖动。
这是我的电子表格中的图片。所以我想使用平均公式和 arrayformula 对它们从 CH 列到 CL 列进行平均。
我已经尝试了所有“Averageif”或“Average”并使用 arrayformula,但结果是“#DIV/0”
你们能帮我吗?谢谢。
spreadsheet formula google-sheets array-formulas google-sheets-formula