Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 谷歌应用程序脚本SUMIF的替代方案_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 谷歌应用程序脚本SUMIF的替代方案

Google apps script 谷歌应用程序脚本SUMIF的替代方案,google-apps-script,google-sheets,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 =

我对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());   
}
其中
列C=客户名称
D=预算

有没有人能提供一个更好的方法,让我不用在表格中设定公式,就可以检查客户的预算


提前谢谢。

这次修改怎么样

修改点:
  • 首先,检索“C5:D100”的值
  • 使用检索到的值计算
    SUMIF()
修改脚本:
如果我误解了你的问题,我很抱歉。

太棒了!这似乎很有魅力。非常感谢。@elliot欢迎。谢谢你让我知道。如果您的问题已解决,请按“接受”按钮。与你有相同问题的其他人也可以将你的问题作为可以解决的问题。如果你找不到按钮,尽管告诉我。
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);
}