首先,感谢社区互相帮助!
我是一名教师,我正在构建一个用于评分学生的电子表格。更具体地说,我的电子表格有几张:输入,变量,数据(现在和测试')包含以下内容:
输入
变量
数据
测试
等级
要完全理解我所说的内容,请在此处查看相关表格:https://docs.google.com/spreadsheets/d/1IHdlEhjBLBEyqopbicthQLdaGxtH3_1gt1sNOvRlwgo/edit?usp=sharing
现在,我正在寻找的功能(工作流程)如下:
到目前为止我一直在使用的代码:
function Save() {
var sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Input');
var targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('test');
var studentName = sourceSheet.getRange('B3').getValue(); //returns the name of the current student
var studentResult = sourceSheet.getRange(5,4,sourceSheet.getLastRow()).getValues(); //returns the results of the current student
var columnValues = targetSheet.getRange(1,1,targetSheet.getLastRow()).getValues(); //returns all student names listed in first column of targetsheet
var studentRow = findIndex(columnValues, studentName)+1; //returns the rownumber where studentName was found
var ResultInRow = col2row(sourceSheet.getRange(5,4,sourceSheet.getLastRow()).getValues()); //transpose the column data to row data
targetSheet.getRange(studentRow,2,1,sourceSheet.getLastRow()).setValues(ResultInRow); //select cellrange and fill with the results
}
function findIndex(columnValues, studentName) {
for(var i=0, iLen=columnValues.length; i<iLen; i++) {
if(columnValues[i] == studentName) {
return i;
}
}
}
function col2row(column) {
return [column.map(function(row) {return row[0];})];
}
function row2col(row) {
return row[0].map(function(elem) {return [elem];});
}
我的问题实际上是双重的: 首先,由于我不是任何程度的编码器,我想知道我的方法是否有意义,或者是否有另一种 - 更好的方式做同样的事情? 第二,你可以帮我解决一下我需要选择 等级的代码,最好用成绩名称(即练习名称)来标记吗?