如何用标准公式计算两个范围的成对最小值的总和?

时间:2013-09-10 11:23:46

标签: google-sheets

问题陈述

我想在Google电子表格中计算以下公式,其中 x y 都是n行和1列的范围, t < / em>是一个变量,仅使用标准公式:

f(t,\mathbf{x},\mathbf{y})=\sum{min(tx_i,y_i)}

现状

现在我正在向自定义函数{{1}提供x(比如A1:A10),y(比如,B1:B10)和t(比如D1)。但是,见下文),但执行脚本是相当性能密集的,所以我想知道是否有办法在不使用自定义函数的情况下进行计算。

myFunction(t, x, y)

在此示例中,E1将变为:function myFunction(t, x, y) { var sum = 0; for (var i = 0; i < x.length; i++) { var xi = parseInt(x[i]); var yi = parseInt(y[i]); sum += Math.min(t * xi, yi); } return sum; }

期望的情况

我正在寻找像=myFunction(D1, A1:A10, B1:B10)这样的东西,但是当然也欢迎这是不可能的确认或有根据的猜测。

1 个答案:

答案 0 :(得分:1)

我无法测试,但我认为以下公式可以满足您的需求。

=SUM(ARRAYFORMULA(IF(ARRAYFORMULA(D1 * A1:A10) < B1:B10; ARRAYFORMULA(D1 * A1:A10); B1:B10)))

<强>更新

确实,Jelle Fresen评论了一种更好的方法,消除了不必要的冗余。

=SUM(ARRAYFORMULA(IF(D1 * A1:A10 < B1:B10; D1 * A1:A10; B1:B10)))