Câu trả lời:
Bạn có thể sử dụng các sort()
chức năng cho rằng, nhưng bạn phải có dữ liệu của bạn ở một nơi, và một bản sao tự động sắp xếp dữ liệu ở nơi khác.
Ví dụ: giả sử tôi có Sheet1 với dữ liệu của mình:
| A | B | C
=====================
1 | This | this | 2
2 | Is | is | 1
3 | Test | test | 3
Sau đó, trong Sheet2, ô A1, tôi sẽ đặt hàm này:
= sort (Trang tính 1! A: C, 3, TRUE)
Điều này sẽ hiển thị dữ liệu của tôi, nhưng được sắp xếp theo cột C (cột thứ ba), tăng dần.
| A | B | C
=====================
1 | Is | is | 1
2 | This | this | 2
3 | Test | test | 3
Cũng có thể sử dụng Tập lệnh Google Apps để tự động sắp xếp dữ liệu tại chỗ.
Điều này có thể khó đạt được hơn và dễ bị lỗi hơn (tôi vẫn sẽ tìm giải pháp của William Jackson, +1 BTW), nhưng tôi nghĩ rằng nó đủ thú vị để thể hiện.
Tôi có một tờ trông như thế này:
Tôi đã thêm một tập lệnh mới, sử dụng các bước sau:
trong cửa sổ mã trống xuất hiện, dán đoạn mã sau sẽ tự động chạy bất cứ khi nào một ô được chỉnh sửa:
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 } );
}
}
quay lại trang tính và bắt đầu chơi xung quanh với các giá trị để xem bảng sắp xếp tự động mỗi lần
Ghi chú:
Trong đoạn script trên,
4
đại diện cho chỉ số của cột D ( Value
cột - sắp được sắp xếp)"B3:E9"
đại diện cho phạm vi bảng (không bao gồm hàng tiêu đề)Bảng của bạn rất có thể sẽ khác với bảng của tôi, vì vậy những giá trị này cần được điều chỉnh cho phù hợp.
null
cho event
tham số, cơ sở hạ tầng Bảng tính Google được đặt đúng cách khi một sự kiện thực sự được kích hoạt.
range.sort
dòng như thế này : range.sort( { column : columnToSortBy, ascending: false } );
. Để biết thêm các tùy chọn sắp xếp, hãy xem developers.google.com/apps-script/
Đây là một tập lệnh chung sẽ tự động sửa đổi dựa trên cột thứ nhất và giả sử một hàng Tiêu đề.
Để tạo một tập lệnh:
Trong cửa sổ mã trống, dán mã sau, mã này sẽ tự động chạy bất cứ khi nào một ô được chỉnh sửa:
// 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();
thay vì những gì ở đây.
Một tùy chọn khác không có tập lệnh là:
=QUERY(A1:C3,"SELECT * ORDER BY C")
Phạm vi bị hạn chế (A1: C3) vì trong đó thứ tự tăng dần các mục trống sẽ xuất hiện đầu tiên.
SELECT * WHERE C <> '' ORDER BY C
để bỏ qua các mục trống, sau đó bạn có thể sử dụng một phạm vi đủ lớn để bao gồm tất cả các hàng hiện tại và tương lai.
Tôi muốn sắp xếp theo một cột menu thả xuống và sau đó theo ngày.
Để làm như vậy, hãy sửa đổi dòng "Range.sort" của một trong các đoạn mã của Cristian hoặc geekspotz như sau:
// 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}]);
Sự khác biệt là thêm các dấu ngoặc thẳng xung quanh toàn bộ câu lệnh (mảng) của bạn và phân tách các loại bằng dấu phẩy.
Sắp xếp sửa đổi mã được lấy từ câu trả lời Stack Overflow của Serge tại đây : Sắp xếp tự động trên trang tính
Google Sheets có Bộ lọc vì lý do này và không yêu cầu bạn tạo một trang tính mới trong tài liệu của mình.
;
ví dụ= sort(Sheet1!A:C; 3; TRUE)