Google Sheets Arrayformula计算速度非常慢



我制作了一份谷歌工作表来跟踪我工作中的一些指标。在一个简单的解释中,我在图像上创建注释(或轨迹(,并将其提交审查。如果它被审查并发送回我,我会修复它,添加我错过的内容并发送回。

为了跟踪我的进度,我想创建一个公式来跟踪我每项任务错过的总轨道数(最近的尝试-最早的尝试(。这花了一些时间,但我终于找到了一个有效的公式。我唯一的抱怨是它运行得非常慢。这是我的公式:

=ARRAYFORMULA({"Number of Tracks Missed"; IF(NOT(ISBLANK($F$2:$F)), IF($G$2:$G = 1, 0, (VLOOKUP($F$2:$F,SORT($B$2:$C, $A$2:$A, FALSE), 2, FALSE)) - (VLOOKUP($F$2:$F, $B$2:$C, 2, FALSE))), "")})

G列是我完成一项任务的次数,所以如果我只完成过一次,那么我就没有错过任何东西,所以这相当于0。如果它不止一次,我会使用一个复杂的VLOOKUP和一个SORT组合,将我的任务列表翻转到相反的顺序,这样VLOOKUP就会找到最近的尝试,然后从中减去我最早的尝试。

就像我说的,这个公式有效,每次都能给出正确的答案,只是速度非常慢。有没有办法加快计算速度,或者这是我最好/唯一的选择?我对使用这样的公式有些陌生,所以任何帮助都很感激。

编辑:

感谢player0为我指明了正确的方向。我的公式很好,问题是我在表格上多了几行。出于某种原因,共有32000多行。由于Arrayformula对每一个都进行计算,即使只是空白,也需要很长时间。

一旦我删除了额外的内容,它现在几乎立即计算出来。

在创建工作表的路径上的某个地方发生了错误,并向工作表添加了32k个空行,这导致响应减少。

如果不需要那么多行,请删除它们。你的配方很好。

最新更新