我想在Google电子表格中计算以下公式,其中 x 和 y 都是n行和1列的范围, t < / em>是一个变量,仅使用标准公式:
现在我正在向自定义函数{{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)
这样的东西,但是当然也欢迎这是不可能的确认或有根据的猜测。
答案 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)))