首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Google性能问题

Google性能问题
EN

Stack Overflow用户
提问于 2021-04-27 07:47:27
回答 1查看 461关注 0票数 1

我有一个由2列组成的数组,每个单元格都应该执行一个属于它的前身的加法操作。数组的长度取决于长度变化的第三列。因此,我不再使用ArrayFormula来执行操作:

代码语言:javascript
运行
复制
=ARRAYFORMULA($D2:D+$C3:C)

从单元格D3开始,这应该使用它的前身行的值,并添加它的左邻居列的值。不幸的是,这是因为ArrayFormula不支持不同长度的数组,因此无法工作。

解决这个问题的第一步是手动定义数组,使它们保持相同的长度:

代码语言:javascript
运行
复制
=ARRAYFORMULA($D2:D290+$C3:C291)

这很管用,但我发现它的表现太慢了。我可以逐个观察它填充柱状细胞。这取决于所需的预计算,而这些都是从下一个计算开始的事件。这似乎不能并行化。

问题1:是否有更快地执行此操作的方法?只要我将数组保持一定的长度,我就可以在每个单元格中使用简单的加法操作,但这无助于解决第二个问题。

问题2:是否有办法对不同长度的阵列进行这些计算?

示例它的外观(固定的数组长度) (裁剪以显示值是如何实际添加的)

EN

Stack Overflow用户

回答已采纳

发布于 2021-04-27 14:22:14

我加了一张新的工作表(“埃里克帮助”)。在该页中,我删除了D列中的所有内容,包括标题,并将其替换为D1中的以下公式:

=ArrayFormula({"Div/SLR-"&CHAR(10)&"Kumuliert";IF(A2:A="";;SUMIF(IF(ROW(A2:A);ROW(A2:A));"<="&ROW(A2:A);C2:C))})

严格来说,头中间的&CHAR(10)&并不是必需的;我只是觉得它是一个更整洁的工作表,因为它允许对标题进行控制,并减少列的宽度。

这个公式的其余部分用通俗易懂的英语基本上是:“从C列中继续将小于或等于D列中每一行的行相加,逐个向下移动。”

至于您的工作表中处理速度慢的问题,您的工作表中有超过31,000行,这意味着您的公式必须全部处理它们,尽管它们中的大多数都是不必要的。您会注意到,我添加的工作表在行和列中都被裁剪,包含的内容仅略多于您可能需要的内容;因此,在加载A1公式时,我的公式处理会尽快完成。

另外,我不清楚为什么你的A1公式要求从2020年3月3日开始接收数据,而你的第一个“Div/SLR-列表”日期直到6月份才开始。我建议将A1公式中的"from“日期替换为引用K2

票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67278937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档