我在 Google 表格中有一个表格。上面有几张纸。在每张纸上,都有一个范围,其中的数字排列成一列。如何将第一张表格中的每个第一个数字与后续表格中的每个第一个数字相加?按照惯例,“Sheet1”列“A1”第 1 行 +“Sheet2”列“A1”第 1 行 +“Sheet3”列“A1”第 1 行 + ...,然后还对“Sheet1”列“A1”第 2 行求和+“工作表 2”第“A1”第 2 行 +“工作表 3”“A1”第 2 行 + ...
我已经尝试过几乎所有我知道的选项。但他帮我从所有表格中总结了所有数字。请告诉我。我已经为此苦苦挣扎了一个星期了。
function myFunction() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var activeSheet = sheet.getSheets();
var sum = 0;
for(var i = 0; i < activeSheet.length; i++) {
var list = activeSheet[i];
var range = list.getRange('A1:A10');
var value = range.getValues();
for(var j = 0; j < value.length; j++) {
if(value[j][0] !== "") {
sum += value[j][0];
Logger.log(sum);
}
}
}
对您的代码的一个小补充 - 我们将总和收集到一个对象(字典)中,其中键是范围内单元格 0..n 的索引,值是单元格值的总和具有这些索引的单元格。
床单上的数据
结果
缺少一个右括号。
注意 中的内容
value
。有一个一列的数组。无需用两个字符指定其中的选择。就这样吧j
。另外,采集的数据是字符串类型,需要是数字。
搜索的顺序
i
是j
混合的,如果您希望首先添加所有工作表的第一个数字,然后是第二个,依此类推,那么您需要显示按单元格搜索高于按工作表搜索(或者,在其他换句话说,将工作表的搜索放在按单元格的搜索中)。最后一件事,不是必须的,但是更方便一点:
value
不需要单独输出,可以getValues()
在之后立即输入getRange('A1:A10')
。