需要脚本在无限行上运行函数

时间:2017-11-14 13:13:11

标签: google-apps-script google-sheets

我尝试创建一个数组公式来在无限数量的行上运行特定函数,即每次在google电子表格中创建一个新行时,该公式也应该针对该新行运行。但是我得出结论,我需要脚本,并且数组函数不能完成这项工作。

我的初始电子表格中有一行数据,基本上我需要的是以下内容:如果colum BC =" x" (从第3行开始)然后找到列R:AI范围内的最大值。我曾尝试过以下公式:

= ARRAYFORMULA(如果(BC3:BC =" X",MAX(R3:AI3),"&#34) )

然而显然这没有用,我可以明白为什么 - 虽然数组确实考虑了从BC3开始的BC列中的所有值,但它只会返回范围R3:AI3的最大值。

我也尝试过:

= ARRAYFORMULA(如果(BC3:BC =" X",MAX(R3:AI),"&#34) )

但是这会返回整个范围R3:AI的最高值,并且再次返回BC列中每行的相同值。

所以我认为数组公式不合适 - 任何人都可以帮助脚本执行此功能吗?

1 个答案:

答案 0 :(得分:1)

你仍然可以使用ArrayFormula来解决这个问题,你只需要使用其他一些函数,即ROW()INDIRECT()

=ARRAYFORMULA(IF(BC3:BC="x", MAX(INDIRECT("R" & ROW() & ":A" & ROW()))))

修改

显然上述方法不会起作用,因为像INDIRECT这样的某些公式独立于它们嵌套的ARRAYFORMULA运行。我能够找到最接近解决方案的是:

=ARRAYFORMULA(IF(BC3:BC="x", "=MAXA(R"&ROW(BC3:BC)&":A"&ROW(BC3:BC)&")",""))

我无法让它发挥作用,但就我而言。看起来你可能需要一个脚本。