为 Google 表格运行 Max ArrayFormula

Max*_*rov 5 max google-sheets vlookup google-apps-script array-formulas

我有一个手动输入的数字列表:

1
100
100
10
1
1000
10
1000
1
1000
100
10
Run Code Online (Sandbox Code Playgroud)

我想获取运行最大值 - 初始数字数组的每个子数组的最大值。我所说的子数组是指从[A1][A2]、从[A1][A3]、从[A1][A4]等的数字。

结果如下:

1
100
100
100
100
1000
1000
1000
1000
1000
1000
1000
Run Code Online (Sandbox Code Playgroud)

可以将更多条目添加到初始号码列表中。


使用赏金答案,这是一个 100500 行的速度测试:

在此输入图像描述

这不包括最新答案

Max*_*rov 1

感谢@TheMaster 的笔记。现在最好的解决办法是:

=SCAN(A3,A3:A,LAMBDA(ini,v,if(ini>v,ini,v)))

将tialini值与每个当前v值进行比较,并返回每次迭代的最大值SCAN

我在这里测试过。它可以快速处理 100K 行。


Lambda解决方案效果更好,因为它需要对每个单元进行一次操作。复杂度 = 运行的单元数量。而其他解决方案使用“回顾”先前值的公式。

脚本解决方案也可能工作正常,但本机公式不会浪费时间将数据“加载”到工作表中。原始测试是在该Lambda功能出现在表格中之前完成的。