【问题标题】:auto sorting multiple columns, secondary column triggers resort too自动排序多列,辅助列也触发度假村
【发布时间】:2013-08-07 04:39:46
【问题描述】:

我有一个排序问题。我的表中有两列需要排序(primary=column 1,secondary=column 4)。我正在使用下面的脚本,它适用于按第 1 列排序,它适用于对第 4 列进行排序如果我也在第 1 列中进行了更改,但它本身不是。我希望能够编辑一个值 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 }] );
  }
}

【问题讨论】:

    标签: sorting google-apps-script


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-18
      • 1970-01-01
      • 1970-01-01
      • 2011-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多