【发布时间】:2019-09-03 05:41:16
【问题描述】:
我正在尝试从工作表中提取学生分数,对每个学生进行平均,然后将它们输出到同一工作表中的新选项卡。每个学生的性格和领导能力由八位老师打分。
我不是专业的程序员,所以我边走边学。我已经弄清楚如何使用 Google 表格脚本工具将学生及其分数添加到数组中并将它们输出到表格中的新选项卡。我找到了关于如何平均数组中的数字的代码示例,但我无法让它们中的任何一个工作。我假设我需要在执行输出之前添加代码以平均值,但是我发现的所有示例似乎都使用与工作表使用的编程语言不同的编程语言,因为当我输入我找到的任何代码时出现错误.这就是我将学生和分数放入新标签的工作。
function CharAvg(){
var app = SpreadsheetApp;
var sheet = app.getActiveSpreadsheet().getSheetByName("Sheet1");
var map = {};
for(var row = 3; row <=297; row++)
{
var studentname = sheet.getRange(row, 2).getValues();
if(studentname != " " && studentname != null && studentname != "")
{
if(!(studentname in map))
{
map[studentname] = [];
}
var character = sheet.getRange(row, 3).getValue();
if(character != " " && character != null)
{
map[studentname].push(character);
}
var leadership = sheet.getRange(row, 5).getValue();
if(leadership != " " && leadership != null)
{
map[studentname].push(leadership);
}
}
else
{
Browser.msgBox(studentname);
}
}
var outputsheet = app.getActiveSpreadsheet().insertSheet("OutPut");
outputsheet.getRange(1, 1).setValue("Student Name");
outputsheet.getRange(1, 2).setValue("Character Avg.");
outputsheet.getRange(1, 3).setValue("Leadership Avg.");
var row = 2;
for (var studentname in map)
{
outputsheet.getRange(row, 1).setValue(studentname);
for(var character in map[studentname])
{
outputsheet.getRange(row, 2).setValue(map[studentname][character]);
for(var leadership in map[studentname])
{
outputsheet.getRange(row, 3).setValue(map[studentname][leadership]);
}
row ++
}
row ++
}
}
如果有人可以帮助我弄清楚如何在 Google 表单脚本中执行此操作,那会让我们的生活更轻松。否则,我们可以通过在工作表中手动编写公式来获得平均值,但我们希望尽可能地自动化该过程。谢谢。
【问题讨论】:
标签: google-apps-script google-sheets