我有一份由我们组织的4个团队游戏的列表(Google表格)和一个参与者列表。我得到了一些自动排序的工作 - 但它只适用于第一列。这是脚本
/**
* Automatically sorts the 1st column (not the header row) Descending.
*/
function onEdit(){
var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var editedCell = sh.getActiveRange().getColumnIndex();
if(editedCell == 2) {
var range = sh.getRange("A2:B100");
range.sort({column: 2, ascending: false });
}
}
我linked my test goog sheet here...its editable。
我需要能够在所有8列(每个2列的4个数据集)上执行简单AutoSort的操作,如下所示:
这些是4个独立的团队(为了将它们分开,我将它们染成了它们 - 它们彼此没有任何关系 - 所以只有Col A和B相关,那么Col C& D是相关的,同样所以Col A& B是第一支队伍; Col C& D是第二个游戏团队(完全独立于游戏1)和Col E& F是第3个游戏团队(完全独立于Game1& 2)
所有该表需要Autosort是: 任何时候进行编辑都是shd。第一种是在Col A上降,然后是Ascending Col B;同样在Col C上降,然后升入Col D;同样在Col E上降,然后升入Col F;同样在Col G上降,然后升入Col H. 而且它很震撼。忽略任何空白单元格......
所有4个团队只是为了格式化和打印而放在一起,但需要单独排序。
答案 0 :(得分:1)
如果您想要更改数字列,这可能会更容易一些。只需更改它们并确保您有一个偶数。它们将对偶数列和左侧列进行排序。
function onEdit(e){
sortNColumns(e);
}
function sortNColumns(e){
var sh=e.range.getSheet();
var col=e.range.getColumn();
if(col<=sh.getLastColumn() && col%2==0){//less than or equal to the last column and even. You could just go with col%2==0 if you want it works too
sh.getRange(2,col-1,sh.getLastRow()-1,2).sort({column:col,ascending:false});
}
}