【发布时间】:2016-02-17 13:29:10
【问题描述】:
我有一个谷歌电子表格,其中有两列对应于课程:第一列是教授的名字(偶尔会重复自己),第二列是数字(小时数)。我想输出两列,第一列是 porfessors 的名字,第二列是所有小时的总和
我尝试使用以下代码,但它似乎返回了两个带有初始列的数组,好像条件 if (names[names.length-1] == namesColumn[i]) 从未满足。 我究竟做错了什么?
function resumeProfessors() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[1];
var namesColumn = sheet.getRange("C4:C31").getValues();
var lessonsColumn = sheet.getRange("G4:G31").getValues();
var names = [];
names.length = 0;
var lessons = [];
lessons.length = 0;
namesColumn.sort();
for (var i = 0; i < namesColumn.length; i++) {
if (names[names.length-1] == namesColumn[i]){
lessons[lessons.length-1] = lessons[lessons.length-1] + lessonsColumn[i];}
else{
sheet.getRange(i+4, 9).setValue(names[names.length-1] + namesColumn[i]);
names[names.length] = namesColumn[i];
lessons[lessons.length] = lessonsColumn[i];
};}
writeResume(names, lessons);
}
泰
【问题讨论】:
-
添加有关您的电子表格的更多详细信息。如果您创建一个演示电子表格与知道链接的任何人共享它并在您的问题中包含该链接,这可能会很有用。有关详细信息,请参阅minimal reproducible example。另一方面,您是否知道使用内置函数和特性也可以做到这一点?
-
同意 Ruben,如果可能,请创建一个示例电子表格和脚本