Вместо этого попробуйте следующий код:
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);
}
, потому что мы хотим вернутьмассив.На самом деле мы использовали известное решение здесь.