我的问题是关于 Google sheet 遍历一系列单元格和排名分数
My question is about Google sheet looping through a range of cells and ranking scores
嵌入的是我需要为我工作的学校系统中的一些老师做的事情的图像。A 列有分数,B 列中我需要能够对分数进行排名。排名数字从 1 开始,应该保持不变,直到分值发生变化,然后它应该增加 1。我知道我需要某种循环结构,但我不知道如何在 Google 表格或 google 应用程序脚本中做到这一点。有人知道如何使用循环来做到这一点吗?谢谢!
试试这个:
function scoreRanking() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Sheet1');
var rg=sh.getRange(2,1,sh.getLastRow()-1,2);
var vA=rg.getValues();
var rObj={};
var s=1;//Initial rank value
for(var i=0;i<vA.length;i++) {
if(rObj.hasOwnProperty([vA[i][0]])) {
vA[i][1]=rObj[vA[i][0]];
}else{
rObj[vA[i][0]]=s++;
vA[i][1]=rObj[vA[i][0]];
}
}
rg.setValues(vA);
}
嵌入的是我需要为我工作的学校系统中的一些老师做的事情的图像。A 列有分数,B 列中我需要能够对分数进行排名。排名数字从 1 开始,应该保持不变,直到分值发生变化,然后它应该增加 1。我知道我需要某种循环结构,但我不知道如何在 Google 表格或 google 应用程序脚本中做到这一点。有人知道如何使用循环来做到这一点吗?谢谢!
试试这个:
function scoreRanking() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Sheet1');
var rg=sh.getRange(2,1,sh.getLastRow()-1,2);
var vA=rg.getValues();
var rObj={};
var s=1;//Initial rank value
for(var i=0;i<vA.length;i++) {
if(rObj.hasOwnProperty([vA[i][0]])) {
vA[i][1]=rObj[vA[i][0]];
}else{
rObj[vA[i][0]]=s++;
vA[i][1]=rObj[vA[i][0]];
}
}
rg.setValues(vA);
}