使用忽略的行在Google文档中编写已排序的电子表格

时间:2011-12-06 09:00:40

标签: google-apps-script google-sheets

我有一张带有两张单独纸张的Google电子表格。第一个是名称和数据的大列表,第二个应该是第一张表上所有数据的排序列表(按姓氏排序)。以下是我定义第二张表的当前方式:

=sort(sheet1!A:L, 2, TRUE)

除了一个问题之外,大部分都可以正常工作:在sheet1中,第一行是由“名字”,“姓氏”,“电话”等组成的标题行。当我使用该公式时对于sheet2,该行将与其余行一起排序。

如何更改赋值以便排序忽略sheet1的第一行,并使用相同的行为对列A到L进行排序?手动指定长度是不可行的,因为将来可以快速添加和删除条目。

2 个答案:

答案 0 :(得分:2)

您可以使用另一个范围定义,它指定第一个单元格但不指定结尾。 e.g。

A1: =ArrayFormula(Sheet1!A1:L1)
A2: =Sort(Sheet1!A2:L, 2, TRUE)

A1公式只是复制标题:)
在A2中,您通过将 2 放在A2:L中来指定仅需要数据(第2行和第4行)。

答案 1 :(得分:1)

这是一个基于第1列自动排序的通用脚本,并假设标题行。

创建脚本:

在菜单中,转到工具 - >脚本编辑器...... 在空代码窗口中,粘贴以下代码,该代码将在编辑单元格时自动运行:

 /**
 * Automatically sorts the 1st column (not the header row) Ascending.
 */
function onEdit(event){
  var sheet = event.source.getActiveSheet();
  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( { column : columnToSortBy, ascending: true } );
  }
}