我有一个带有“家庭作业”表和“学生”表的Google表格。家庭作业表本质上是一个专栏,我在其中输入数据,并生成单个学生的总成绩。学生表在A列中有该班级的花名册,随后的每一列对应于一项作业(作业1,作业2等)。
在“作业”页面上,我想按一个按钮并运行一个脚本来:
将“家庭作业”工作表单元格B3中的学生名与“学生”工作表中位于A列中的学生名相匹配。
复制并粘贴在作业单元格G3中找到的该学生的分数,并粘贴到与当前作业分配相关的列。 “作业”表中的作业分配名称位于单元格B1中,“学生”表中的作业分配名称为列标题。
我是Google表格中的脚本的新手,想象这将是某种索引/匹配。
有什么上手的想法吗?
答案 0 :(得分:0)
function addScores(){
const ss = SpreadsheetApp.getActive();
const h_sheet = ss.getSheetByName('Homework');
const s_sheet = ss.getSheetByName('Student');
const h_homework = h_sheet.getRange('B1').getValue();
const h_student = h_sheet.getRange('B3').getValue();
const h_score = h_sheet.getRange('G3').getValue();
const s_students = s_sheet.getRange(2,1,s_sheet.getLastRow(),1).getValues().flat();
const s_homeworks = s_sheet.getRange(1,1,1,s_sheet.getLastColumn()).getValues().flat();
const s_student_pos = s_students.indexOf(h_student)+2;
const s_homework_pos = s_homeworks.indexOf(h_homework)+1;
s_sheet.getRange(s_student_pos,s_homework_pos).setValue(h_score);
}
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('Scores')
.addItem('Add new score', 'addScores')
.addToUi();
}