javascript - 如何将多列传递到 Google 电子表格中的公式?

标签 javascript google-sheets

我正在为日间交易创建一个新的电子表格,我想在其中自动计算每一行。我已经看过 Google 的自定义功能指南,它只涉及一列。我有多个列需要考虑其值。例如,我想要:

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

我如何仅使用自定义函数来执行此操作,因为它们更清晰且更易于阅读(我已经在不使用自定义公式的情况下使它工作,并且该解决方案不可读、不可维护或优雅)?

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

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

最佳答案

您可以编写将数组作为参数的自定义函数。这是一个函数的例子,它应该乘以 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)

关于javascript - 如何将多列传递到 Google 电子表格中的公式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50101416/

相关文章:

javascript - 无法加载 zurb 基础 JavaScript

javascript - 如何检查 Javascript 中的空值?

javascript - 当尝试使用 React 路由器链接到不同页面时,为什么此脚本会导致此错误?

javascript - jQuery Ajax 表单在一个表单中包含两个提交按钮

regex - 拆分字符串并获取最后一个元素

javascript - 如何通过Jquery脚本将图像加载到html中?

javascript - 在一个谷歌脚本下运行多个工作表,语法错误

javascript - 多次显示窗口警报 - Google Apps 脚本

google-apps-script - 气体 : Range Protection?

google-apps-script - 如何将具有多行的 2 列单元格拆分为唯一的行,同时保留/复制周围的数据?