sorting - 使用脚本对具有多个条件的 Google 电子表格进行排序

标签 sorting google-apps-script google-sheets

我有一个定期更新的电子表格。由于所做的更改,我还必须在完成后重新排序电子表格。我需要使用多个标准进行排序,如以下设置。我已经搜索过示例,但我的谷歌搜索技巧让我失望。

Sort range from A1:E59
[x] Data has header rows
sort by "Priority" A > Z
then by "Open" Z > A
then by "Project" A > Z

最佳答案

如果您的任何单元格都没有通过公式自动计算的值,那么 Mogsdad 的答案就可以正常工作。但是,如果您确实使用公式,那么该解决方案将删除所有公式并用静态值替换它们。即便如此,它也比实际需要的更复杂,因为现在有一种基于多列的内置排序方法。试试这个:

function onEdit(e) {
  var priorityCol = 1;
  var openCol = 2;
  var projectCol = 3;

  var sheet = SpreadsheetApp.getActiveSheet();
  var dataRange = sheet.getDataRange();
  dataRange.sort([
    {column: priorityCol, ascending: true},
    {column: openCol, ascending: false},
    {column: projectCol, ascending: true}
  ]);
}

您可以使用内置的 onEdit() 而不是制作单独的功能函数,当您更改任何值时,您的数据将自动排序。 sort()函数接受一组条件,它依次应用这些条件。

请注意,使用此解决方案,电子表格中的第一列是第 1 列,而如果您像 Mogsdad 的回答那样进行直接数组访问,则第一列是第 0 列。因此您的数字会有所不同。

关于sorting - 使用脚本对具有多个条件的 Google 电子表格进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20493225/

相关文章:

arrays - 获取不带方括号和双引号的数组元素值

javascript - 复选框违反数据验证规则

google-apps-script - 如何删除 Google 电子表格中的所有过滤器?

google-apps-script - 将谷歌应用程序脚本执行失败通知发送到另一个电子邮件地址

google-apps-script - Google Apps 脚本格式

google-sheets - 我正在尝试使用 vlookup 作为条件格式公式

javascript - 对应用程序脚本中的列执行文本并作为表格发送

algorithm - 运行固定大小的变化数组的最大值

c++ - 在C++中将txt文件排序为 vector

python - 按列表中出现的频率对列表进行排序