如何在 setFormula() 方法中的函数引用中创建相对单元格引用?
How to make a relative cell reference in a function reference within the setFormula() method?
下面的代码是脚本的一部分。它只是将 C 范围中的值与 D 范围中的值相乘,再乘以使用函数 calculatePrice 计算的价格。该函数采用一个参数(在 B 范围中找到的标签),在该参数上循环遍历对象以找到匹配的价格。所有这些都有效,但单元格 B2 应该是下一行中的 B3,之后一行中的 B4 等等。我如何让它在这个公式中起作用?我试过 B2:B 但这不起作用。非常感谢您的帮助。
sheet.getRange(2,5).setFormula('=ArrayFormula(if(not(isblank($C:$C)),$C:$C*$D:$D*calculatePrice(b2)," "))');
试试下面的代码:
sheet.getRange(2,5).setFormula('=ArrayFormula(if(not(isblank(C2:C)),C2:C*D2:D*calculatePriceArray(B2:B)," "))');
您可能会注意到,您的函数 "calculatePrice" 被 "calculatePriceArray" 包装:
function calculatePriceArray(input) {
return Array.isArray(input) ?
input.map( function(e) {
return e.map( function(f){
return calculatePrice(f);
})
}) :
calculatePrice(input);
}
因为我们要return一个数组。
真的我们这里用了
下面的代码是脚本的一部分。它只是将 C 范围中的值与 D 范围中的值相乘,再乘以使用函数 calculatePrice 计算的价格。该函数采用一个参数(在 B 范围中找到的标签),在该参数上循环遍历对象以找到匹配的价格。所有这些都有效,但单元格 B2 应该是下一行中的 B3,之后一行中的 B4 等等。我如何让它在这个公式中起作用?我试过 B2:B 但这不起作用。非常感谢您的帮助。
sheet.getRange(2,5).setFormula('=ArrayFormula(if(not(isblank($C:$C)),$C:$C*$D:$D*calculatePrice(b2)," "))');
试试下面的代码:
sheet.getRange(2,5).setFormula('=ArrayFormula(if(not(isblank(C2:C)),C2:C*D2:D*calculatePriceArray(B2:B)," "))');
您可能会注意到,您的函数 "calculatePrice" 被 "calculatePriceArray" 包装:
function calculatePriceArray(input) {
return Array.isArray(input) ?
input.map( function(e) {
return e.map( function(f){
return calculatePrice(f);
})
}) :
calculatePrice(input);
}
因为我们要return一个数组。
真的我们这里用了