Jawaban:
Anda dapat menggunakan yang sort()
fungsi untuk itu, tetapi Anda harus memiliki data Anda di satu tempat, dan salinan secara otomatis diurutkan dari data yang di tempat lain.
Misalnya, saya punya Sheet1 dengan data saya:
| A | B | C
=====================
1 | This | this | 2
2 | Is | is | 1
3 | Test | test | 3
Kemudian di Sheet2, sel A1, saya akan meletakkan fungsi ini:
= sort (Sheet1! A: C, 3, TRUE)
Ini akan menunjukkan data saya, tetapi diurutkan berdasarkan kolom C (kolom ketiga), naik.
| A | B | C
=====================
1 | Is | is | 1
2 | This | this | 2
3 | Test | test | 3
Dimungkinkan juga untuk menggunakan Google Apps Script untuk mencapai penyortiran data otomatis di tempat.
Ini mungkin lebih sulit untuk dicapai dan lebih rentan kesalahan (saya masih akan mencari solusi William Jackson, +1 BTW), tapi saya pikir itu cukup menarik untuk ditampilkan.
Saya memiliki lembar yang terlihat seperti ini:
Saya menambahkan skrip baru, menggunakan langkah-langkah ini:
di jendela kode kosong yang muncul, rekatkan kode berikut, yang akan dijalankan secara otomatis setiap kali sel diedit:
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 } );
}
}
kembali ke sheet dan mulai bermain-main dengan nilai-nilai untuk melihat tabel secara otomatis setiap kali
catatan:
Dalam skrip di atas,
4
mewakili indeks kolom D ( Value
kolom - pada yang akan diurutkan)"B3:E9"
mewakili rentang tabel (tidak termasuk baris tajuk)Tabel Anda kemungkinan besar akan berbeda dari milik saya, sehingga nilai-nilai ini harus disesuaikan.
null
untuk event
parameter, yang jika tidak diisi dengan benar oleh infrastruktur Google Spreadsheet saat peristiwa nyata dipicu.
range.sort
baris seperti ini: range.sort( { column : columnToSortBy, ascending: false } );
. Untuk opsi penyortiran lainnya, lihat developers.google.com/apps-script/class_range#sort
Berikut ini skrip generik yang akan autosort berdasarkan kolom 1, dan mengasumsikan baris Header.
Untuk membuat skrip:
Di jendela kode kosong, tempel kode berikut, yang akan berjalan secara otomatis setiap kali sel diedit:
// 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();
bukannya apa yang ada di sini.
Opsi lain tanpa skrip adalah:
=QUERY(A1:C3,"SELECT * ORDER BY C")
Rentang dibatasi (A1: C3) karena di mana urutan naik entri kosong akan muncul terlebih dahulu.
SELECT * WHERE C <> '' ORDER BY C
untuk mengabaikan entri kosong, maka Anda dapat menggunakan rentang yang cukup besar untuk memasukkan semua baris saat ini dan di masa depan.
Saya ingin mengurutkan berdasarkan kolom menu dropdown dan kemudian berdasarkan tanggal.
Untuk melakukannya, ubah baris "range.sort" dari cuplikan kode Cristian atau geekspotz seperti:
// 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}]);
Perbedaannya adalah menambahkan tanda kurung lurus di sekitar seluruh pernyataan (array) Anda dan memisahkan jenis dengan koma.
Modifikasi kode penyortiran diambil dari Serge's Stack Overflow, jawab di sini : Penyortiran Otomatis Pada Lembar
Google Sheets memiliki Filter untuk alasan ini dan tidak mengharuskan Anda membuat lembar baru di dokumen Anda.
Dokumentasi: https://support.google.com/docs/answer/3540681
;
misalnya= sort(Sheet1!A:C; 3; TRUE)