我有一张带有两张单独纸张的Google电子表格。第一个是名称和数据的大列表,第二个应该是第一张表上所有数据的排序列表(按姓氏排序)。以下是我定义第二张表的当前方式:
=sort(sheet1!A:L, 2, TRUE)
除了一个问题之外,大部分都可以正常工作:在sheet1中,第一行是由“名字”,“姓氏”,“电话”等组成的标题行。当我使用该公式时对于sheet2,该行将与其余行一起排序。
如何更改赋值以便排序忽略sheet1的第一行,并使用相同的行为对列A到L进行排序?手动指定长度是不可行的,因为将来可以快速添加和删除条目。
答案 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 } );
}
}