首页 > 解决方案 > 在我的 gs 代码中,javascript 函数返回值(300100100120)而不是 620

问题描述

这是我正在使用的代码。通常显示正确的结果,但在某些情况下(不是全部)它显示分散的值,如 1800100100 或 300100100120 或类似的东西。

function totalcharge(closer,currentmonth){
  var SHEET_NAME = 'Sales';
  var Scoresheet = 'Score';
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName(SHEET_NAME);
  //Getting the range of the sheet to be covered.
  var values = sheet.getRange("A1:AL2500").getValues();
  var closer; var currentmonth;
  var ttlcharge=0;
  for (var i in values) {
    if (values[i][24] == closer && values[i][28] == currentmonth) {
      ttlcharge += values[i][26];
    }
  }
   var result = ttlcharge;
  return result ;
}

标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


我认为在您的情况下,问题的原因可能是部分单元格是字符串类型。为了将 检索到的值getValues用作数字类型,下面的修改如何?

从:

ttlcharge += values[i][26];

至:

ttlcharge += Number(values[i][26]);

或者

ttlcharge += values[i][26] * 1;

参考:


推荐阅读