Answers:
您可以使用该sort()
功能,但是必须将数据放在一个位置,并将数据的自动排序副本放在另一个位置。
例如,假设我的数据包含Sheet1:
| A | B | C
=====================
1 | This | this | 2
2 | Is | is | 1
3 | Test | test | 3
然后在Sheet2的单元格A1中,我将放置以下函数:
= sort(Sheet1!A:C,3,TRUE)
这将显示我的数据,但按C列(第三列)升序排列。
| A | B | C
=====================
1 | Is | is | 1
2 | This | this | 2
3 | Test | test | 3
也可以使用Google Apps脚本来实现数据的自动就地排序。
这可能更难实现且更容易出错(我仍然会选择William Jackson的解决方案+1 BTW),但我认为这足以显示出来。
我有一张看起来像这样的工作表:
我使用以下步骤添加了一个新脚本:
在出现的空代码窗口中,粘贴以下代码,该代码将在编辑单元格时自动运行:
function onEdit(event){
var sheet = event.source.getActiveSheet();
var editedCell = sheet.getActiveCell();
var columnToSortBy = 4;
var tableRange = "B3:E9";
if(editedCell.getColumn() == columnToSortBy){
var range = sheet.getRange(tableRange);
range.sort( { column : columnToSortBy } );
}
}
返回工作表并开始使用这些值,以查看表格每次自动排序
注意:
在上面的脚本中,
4
表示D Value
列的索引(该列-将要排序的on)"B3:E9"
表示表范围(标题行除外)您的表格很可能与我的表格有所不同,因此应相应地调整这些值。
null
为event
参数指定了参数,否则当触发实际事件时,Google Spreadsheet基础结构会正确填充该参数。
range.sort
这样一行:range.sort( { column : columnToSortBy, ascending: false } );
。有关更多排序选项,请参阅developers.google.com/apps-script/class_range#sort
这是一个通用脚本,它将基于第一列自动排序,并假设有一个标题行。
要创建脚本:
在空代码窗口中,粘贴以下代码,该代码将在编辑单元格时自动运行:
// LinkBack to this script:
// http://webapps.stackexchange.com/questions/7211/how-can-i-make-some-data-on-a-google-spreadsheet-auto-sorting/43036#43036
/**
* 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 } );
}
}
var sheet = SpreadsheetApp.getActiveSpreadsheet();
代替这里的东西。
我想按下拉菜单列排序,然后按日期排序。
为此,请修改Cristian或geekspotz的代码段的“ range.sort”行,如下所示:
// Sorts descending by edited column, then ascending by column 1
// Note the use of an array
range.sort([{column: columnToSortBy, ascending: false}, {column: 1, ascending: true}]);
不同之处在于,在整个语句(数组)周围加上了括号,并用逗号分隔了排序。
排序代码修改是从Serge的堆栈溢出答案中提取的: 在图纸上自动排序
正是由于这个原因,Google表格具有过滤器,不需要您在文档中制作新表格。
;
例如= sort(Sheet1!A:C; 3; TRUE)