Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Google Sheets ArrayFormula性能问题_Arrays_Performance_Google Sheets_Array Formulas - Fatal编程技术网

Arrays Google Sheets ArrayFormula性能问题

Arrays Google Sheets ArrayFormula性能问题,arrays,performance,google-sheets,array-formulas,Arrays,Performance,Google Sheets,Array Formulas,我有一个由2列组成的数组,其中每个单元格都应该执行属于它的前一个单元格的添加操作。 数组的长度取决于第三列,该列的长度不同。因此,我决定使用一个数组公式来进行操作: =ARRAYFORMULA($D2:D+$C3:C) 从单元格D3开始,这应该取它的前一行的值,并加上它的左邻列的值。不幸的是,这不起作用,因为ArrayFormula不支持具有不同长度的数组 解决这个问题的第一步是通过手动定义数组,使它们具有相同的长度: =ARRAYFORMULA($D2:D290+$C3:C291) 这是可

我有一个由2列组成的数组,其中每个单元格都应该执行属于它的前一个单元格的添加操作。 数组的长度取决于第三列,该列的长度不同。因此,我决定使用一个数组公式来进行操作:

=ARRAYFORMULA($D2:D+$C3:C)
从单元格D3开始,这应该取它的前一行的值,并加上它的左邻列的值。不幸的是,这不起作用,因为ArrayFormula不支持具有不同长度的数组

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

=ARRAYFORMULA($D2:D290+$C3:C291)
这是可行的,但我发现它的性能太慢了。我可以一个单元格一个单元格地看着它填满这个列。这取决于所需的预计算,这些预计算总是引发从下一次计算开始的CellChanged事件。看来,这是无法并行的

问题1:有没有办法更快地执行此操作?只要我保持数组的固定长度,我就可以在每个单元格中使用简单的加法操作,但这对我的第二个问题没有帮助

问题2:有没有办法在不同长度的阵列上进行这些计算

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


=ArrayFormula({“Div/SLR-”&CHAR(10)和“Kumuliert”;IF(A2:A=”“;;SUMIF(IF(ROW(A2:A);ROW(A2:A));“您的C或D列也填充了公式吗?我刚刚测试了444行,数组公式立即计算了它们。您好,C列填充了另一个ArrayFormula(嵌套查询).D列是我要填充的列。您可以共享工作表的副本吗?我将填充此工作表的外部数据添加到工作表本身,并将C列中的填充查询更改为该子集。这是我真正的测试值。有趣的事实是,ArrayFormular再次工作不同,并用0而不是o填充该列f 2行,当评估值出现在C列中时。非常感谢!该解决方案工作良好,只要行保持IF(A2:A=“”…语句::)的限制,该解决方案也能正常运行。非常感谢您的反馈和将回复帖子标记为“最佳答案”。“这确实有助于所有贡献者一目了然地知道哪些问题已经解决。它还帮助所有像你这样的未来网站访问者快速找到他们试图找到的答案。