Google 脚本返回的不是数字
Google Scripts Returning Not a Number
我一直在研究 Google 脚本,但我似乎找不到解决问题的办法。我想要做的是将电子表格中两个单元格的内容与我的函数 calculateRates()
相乘。这是我的代码:
/**
@customFunction
*/
function calculateRates(hourDecimal, personRate) {
var ss = SpreadsheetApp.getActiveSpreadsheet(); //Access spreadsheet
var sheet = ss.getSheets()[0]; //Access sheet
var range = sheet.getDataRange(); //Access all cells
var values = range.getValues(); //Call to get value of certain cell
var totalEarned = hourDecimal * personRate;
Logger.log(totalEarned);
return totalEarned;
}
它的问题是,在我指定两个单元格相乘作为电子表格上函数的参数后,出现了一个错误 "Result was not a number." 我知道我的电子表格上的函数是正确的,所以这不是问题.....有什么想法吗?感谢您的帮助!
当您尝试使用不全是数字的值(例如数字和字符串)执行计算时,会发生此错误。
Google Sheets 根据单元格的值存储数据,值可能是 Number
、Boolean
、Date
或 [=13= 类型](空单元格将 return 一个空字符串)。当 Custom Functions
使用这些值时,Apps 脚本将它们视为 JavaScript 中的适当数据类型。
您需要确保单元格的值是数字,考虑到如果单元格包含一些 space 或其他非数字字符,如 "2 2"
或 "3/2"
它将被视为字符串,您需要 trim 或在任何计算之前提取这些特殊字符。
我一直在研究 Google 脚本,但我似乎找不到解决问题的办法。我想要做的是将电子表格中两个单元格的内容与我的函数 calculateRates()
相乘。这是我的代码:
/**
@customFunction
*/
function calculateRates(hourDecimal, personRate) {
var ss = SpreadsheetApp.getActiveSpreadsheet(); //Access spreadsheet
var sheet = ss.getSheets()[0]; //Access sheet
var range = sheet.getDataRange(); //Access all cells
var values = range.getValues(); //Call to get value of certain cell
var totalEarned = hourDecimal * personRate;
Logger.log(totalEarned);
return totalEarned;
}
它的问题是,在我指定两个单元格相乘作为电子表格上函数的参数后,出现了一个错误 "Result was not a number." 我知道我的电子表格上的函数是正确的,所以这不是问题.....有什么想法吗?感谢您的帮助!
当您尝试使用不全是数字的值(例如数字和字符串)执行计算时,会发生此错误。
Google Sheets 根据单元格的值存储数据,值可能是 Number
、Boolean
、Date
或 [=13= 类型](空单元格将 return 一个空字符串)。当 Custom Functions
使用这些值时,Apps 脚本将它们视为 JavaScript 中的适当数据类型。
您需要确保单元格的值是数字,考虑到如果单元格包含一些 space 或其他非数字字符,如 "2 2"
或 "3/2"
它将被视为字符串,您需要 trim 或在任何计算之前提取这些特殊字符。