SUMIF的{Google Apps Script脚本替代

时间:2018-02-14 21:28:00

标签: google-apps-script google-sheets

我是一个相当陌生的JavaScript,我希望通过制作一些简单的脚本来帮助我实现某些流程的自动化,从而推进我的学习。我的第一个脚本是从电子表格中查找客户的预算,以便我可以计算广告系列是否需要暂停。

到目前为止,我已经得到了这个:

function main() {
  var SPREADSHEET_URL = 'https://docs.google.com/spreadsheets/d/sheetname/edit';
  var SHEET_NAME = 'Main';
  var clientName = 'Client';

  var ss = SpreadsheetApp.openByUrl(SPREADSHEET_URL);
  var sheet = ss.getSheetByName(SHEET_NAME);

    var cell = sheet.getRange("L5");
    cell.setFormula('=SUMIF(C5:C100, "' + clientName + '", D5:D100)');
    Logger.log(clientName + ' budget is £' + cell.getValue());   
}

Column C = Client NameD = Budget

是否有人能够提供深入了解或许更好的方法来检查客户预算而无需在表格中设置公式?

提前致谢。

1 个答案:

答案 0 :(得分:1)

这次修改怎么样?

修改要点:

  • 首先,检索" C5:D100"。
  • 的值
  • 使用检索到的值计算SUMIF()

修改后的脚本:

function main() {
  var SPREADSHEET_URL = 'https://docs.google.com/spreadsheets/d/sheetname/edit';
  var SHEET_NAME = 'Main';
  var clientName = 'Client';

  var ss = SpreadsheetApp.openByUrl(SPREADSHEET_URL);
  var sheet = ss.getSheetByName(SHEET_NAME);

  var values = sheet.getRange("C5:D100").getValues();
  var res = 0;
  for (var i in values) {
    if (values[i][0] == clientName) {
      res += values[i][1];
    }
  }
  sheet.getRange("L5").setValue(res); // I'm not sure whether this is required.
  Logger.log(clientName + ' budget is £' + res);
}

如果我误解了你的问题,我很抱歉。