输入值后,立即在电子表格中自动排序记录

时间:2015-08-28 18:40:23

标签: sorting google-sheets google-sheets-api

我想在单元格中输入值时自动对Google表格中的值进行排序。以下是一个例子:

| S. No. | Task   | Value |
| 1      | Task 1 | $$    |
| 2      | Task 2 | $$$   |
| 3      | Task 3 | $$$$  |
|        |        |       |

在上表中,只要我为任务3输入值字段,我希望它转到顶部,第一个应该到达结尾。我不希望每次都通过排序来手动实现。

2 个答案:

答案 0 :(得分:1)

与Chris Hick的建议类似,您可以按任何顺序输入数据,并将副本分类以适应。由于您的示例显示顺序良好(升序),我假设您希望它按顺序降序(S. No.)并且在A1中:

=query(A:C,"Select * where A is not NULL order by A desc")  

在A5中添加几个条目9,在A6中添加8,结果列表将被订购9,8,3,2,1。

答案 1 :(得分:1)

您可以使用脚本自动对表格进行排序。为此,请转到工具>脚本编辑器。这将打开一个新窗口。

删除您看到的代码并将以下内容粘贴到:

function onEdit(event) {
  var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var cellColumn = sh.getActiveRange().getColumnIndex();
  var currentSheet = sh.getName();
  if ((cellColumn == 3) && currentSheet == "enter sheet name here") { 
    var range = sh.getRange("A2:C");
    range.sort({column:2, ascending:false});
  }
}

您需要将“在此处输入工作表名称”更改为您要分类的工作表的名称。确保将引号留在。

如果要更改排序以使其升序,请更改

中的最后一行
ascending:false

ascending:true

如果要更改已排序数据的范围,则可以在上面的行中执行此操作。目前,它设置为对范围A2:C进行排序。