如何将多个列传递到Google Spreadsheets中的公式?

时间:2018-04-30 13:18:10

标签: javascript google-sheets

我正在为daytrading创建一个新的电子表格,我希望自动化每一行的计算。我已经查看过谷歌的自定义功能指南,该指南只涉及一个专栏。我有多个列,其值需要考虑在内。例如,我想:

  

第D1栏:D =(第A1栏:A x栏B:B) - (第C1栏:C栏)

我如何使用自定义函数来实现这一点,因为它们更干净,更易于阅读(我已经在不使用自定义公式的情况下使用此解决方案并且解决方案不可读,可维护或优雅)?

修改:我熟悉Google自定义公式指南中的这个递归公式,但我不知道如何修改多个列:

function DOUBLE(input) {  
  if(input.map) {
    return input.map(DOUBLE);
  } else {
    return input * 2;
  }
}

1 个答案:

答案 0 :(得分:1)

您可以编写将数组作为参数的自定义函数。下面是一个函数的例子,它应该乘以2列,然后减去第三个,如你的例子中所示(我没有测试它,它假设所有数组都是相同的大小而没有错误检查,但这只是为了你得到这个想法):

function multAndSub(ary1, ary2, ary3) {

  var resultAry = [];

  for (var row=0; row<ary1.length; row++)
      resultAry.push(ary1[row]*ary2[row]-ary3[row]);

  return resultAry;
}

编写函数后,您可以将其称为电子表格中的任何其他公式:

=multAndSub(A:A, B:B, C:C)