:::

4-2-4 google CLassRoom 成績依班級名條整理(第一版)

建議使用 第二版程式

google CLassRoom 可以把成績複製到試算表,但只有姓名沒有座號,無法依班級座號排列,比較麻煩,所以寫了一個google 試算表小程式來幫忙。

一、取得檔案:

共用檔案:https://docs.google.com/spreadsheets/d/1QDt-sCtCHRMgTXhPBD6Y1t_O1txEd71aWFEWJ0re4GM/edit?usp=sharing

建立副本,變成你自己的雲端檔案。

二 執行整理(第一次要設定權限)

在左方貼上班級名條,右方貼上 ClassRoom 的匯出成績資料。按下整理,就會在名條後面放入 ClassRoom 成績。
由於學生的姓名可能不完整或非本名,那就無法對照得到,如果前面沒有 v 符號,得再自行比較姓名。

預設為十項成績,如果超過需要更改程式。

取得授權說明

按下整理鍵(只有第一次需要取得執行權限),請依下方畫面,授權--進階--選帳號--前往(不安全)--允許。

 

程式說明

有需求者要自己修改建立者才需要看,工具--指令碼編輯器,貼入以下程式碼

//整理功能
function DoClassRoom_set() {
  
  var startRow=1 ;          //開始資料行 1+1 
  var max_sect =10 ;        //十項分數
  var max_students = 30     //30個學生
  var debugCol = 13 ;       //找到的標記欄
  var classroom_col = 14    //classroom 貼上欄
  var realNameCol = 2 ;     //姓名條,姓名欄

  var sheet = SpreadsheetApp.getActiveSheet();

  //範圍清除
  sheet.getRange(2,3,max_students,max_sect+1).setValue('');


  //依序取得 classroom 中的姓和名
  for(i=startRow ; i <= startRow + max_students ; i++ ){
    //classroom姓名
    var find_name = sheet.getRange(i,classroom_col).getValue() + sheet.getRange(i,classroom_col+1).getValue() ;
    if (find_name == '')  break ;

    //依序在姓名條中尋找
    for (j = startRow  ; j <= startRow + max_students ; j ++ ){

      var stud_point = sheet.getRange(j,realNameCol).getValue()
        //找到在名冊位置
        if (find_name == stud_point ) {
          //把十項成績複製到名條後
          sheet.getRange(j,realNameCol+1, 1, max_sect ).setValues(sheet.getRange(i,classroom_col+4,1,max_sect).getValues()) ;
          sheet.getRange(i,debugCol).setValue('v') ;
          break ;
        }

    }  
 

  }
}

//清除功能
function DoClear() {
  var sheet = SpreadsheetApp.getActiveSheet();
  //範圍清除
  sheet.getRange(2,1,50,50).setValue('');
}

 

在試算表使用插入--繪圖,加上兩個按鍵(清除、整理),滑鼠右鍵(右上直三點)指派指令碼(DoClear , DoClassRoom_set)


Google網站翻譯工具列

站內搜尋