相关疑难解决方法(0)

测量电子表格内置函数的执行时间

有没有办法测量电子表格的内置函数完成时的执行时间?当我使用几个内置函数(例如,IMPORTHTML 和 IMPORTXML)时,如果我知道平均执行时间,我很容易使用和设计数据表。

我使用此脚本测量自定义函数。

function myFunction() {
  var start = new Date();

  // do something

  var end = new Date();
  var executiontime = end - start;
}
Run Code Online (Sandbox Code Playgroud)

非常感谢您的时间和建议。

profiling google-sheets google-apps-script

4
推荐指数
1
解决办法
2774
查看次数

哪些因素决定了 lambda 函数使用的内存?

=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

4
推荐指数
1
解决办法
1151
查看次数

将字符串拆分为其所有字符

这应该很简单,但我找不到解决方法。我想将一个字符串分割成它的字符。例如狗将被分为:d o g

问题是我无法在 SPLIT 函数中放置空字符作为分隔符。我缺少什么?

split google-sheets google-sheets-formula

2
推荐指数
1
解决办法
5189
查看次数