1

我有一个排序问题。我的表中有两列需要排序(primary=column 1,secondary=column 4)。我正在使用下面的脚本,它适用于按第 1 列排序,如果我也在第 1 列中进行了更改但不是单独更改,它适用于对第 4 列进行排序。我希望能够编辑一个值 JUST 列 4 值并让它进行二次排序。

例如:第 1 列:日期,第 2 列:姓氏,第 3 列:出生日期,第 4 列:付款我想按日期顺序(升序,允许重复值)维护电子表格,但其次按付款金额(升序)组织。这样我就可以按日期查看最高付款到最低付款的顺序。如果我只更改单元格中的付款数据,我希望它按第 1 列(日期)和第 4 列(付款)进行。这个脚本没有完成最后一点。有什么建议吗?

/**
 * Automatically sorts the 1st column (not the header row) Ascending.
 */
function onEdit(event){
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var editedCell = sheet.getActiveCell();

  var columnToSortBy = 1;
  var tableRange = "A2:T99"; // What to sort.

  if(editedCell.getColumn() == columnToSortBy){   
    var range = sheet.getRange(tableRange);
    range.sort( [1, 4] ); // or
    range.sort( [{ column: 1, ascending: true }, 4] ); // or
    range.sort( [{ column: 1, ascending: true }, { column: 4, ascending: true }] );
  }
}
4

1 回答 1

0

可能我不明白这个问题?我建议将您的 if 语句从

if(editedCell.getColumn() == columnToSortBy){ 
  ...
}  

if((editedCell.getColumn() == columnToSortBy) || (editedCell.getColumn() == 4)){   
  ...
}  
于 2013-08-06T20:39:46.220 回答