Bagaimana cara membalik urutan baris yang dipilih?

33

Apakah ada cara mudah untuk membalik urutan baris yang dipilih ? (Atau bagaimana dengan semua baris , jika itu lebih mudah.)

Secara khusus, dalam hal ini, tidak ada kolom yang dapat digunakan untuk menyortir agar sesuai dengan urutan. Jadi, mengingat banyak baris dalam urutan acak, apakah mungkin untuk membalik urutan itu?

Sebagai contoh...

masukkan deskripsi gambar di sini

... setelah pembalikan 5 baris ini, "Waitrose 756" harus didahulukan dan "Moot" lalu.

Jonik
sumber
"tidak ada kolom yang dapat digunakan untuk menyortir" Mengapa tidak hanya menambahkan kolom dengan nilai naik (1, 2, 3, ...), mengurutkan turun pada kolom itu, lalu menghapusnya?
Patrick
Ini adalah permintaan yang sangat umum, karena begitu banyak orang memulai spreadsheet dengan satu baris untuk setiap entri, menambahkan baris baru di bagian bawah, dan kemudian setelah 100 baris menyadari bahwa mereka ingin membalikkannya untuk menambahkan baris di bagian atas, karena dibutuhkan WAY terlalu banyak waktu untuk menemukan baris paling kosong di bagian paling bawah setiap kali Anda ingin menambahkan data baru. Sayangnya AFAIK tidak ada cara untuk melakukannya, tidak jika Anda ingin formula dan format Anda tetap sama setelah inversi.
Phil Goetz

Jawaban:

24

Untuk membalik urutan rentang yang dipilih (sebagai lawan menyortir berdasarkan kolom tertentu), Anda bisa menggunakan skrip berikut:

function reverseOrder()
{
  var range = SpreadsheetApp.getActiveRange();
  var values = range.getValues();
  range.setValues(values.reverse());
}

Menambahkan skrip onOpen ini akan membuat item menu bernama Extra , berisi item yang disebut Reverse :

function onOpen ()
{
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menu = [{name: "Reverse", functionName: "reverseOrder"}];
  ss.addMenu("Extra", menu);
}
AdamL
sumber
3
Terima kasih. Butuh beberapa saat bagi saya untuk mengetahui cara menambahkan ini sehingga item menu muncul (Tools -> Script manager ...), tetapi begitu saya selesai melakukannya, itu berhasil!
Jonik
@ AdamL, Bagaimana kita bisa melakukan ini tanpa skrip?
Pacerier
1
@ AdamL: Bagus untuk memindahkan teks, tetapi gagal untuk memindahkan warna latar sel dll. Bagaimana skrip dapat diperluas untuk juga melakukan ini?
Gruber
1
@Pacerier: permintaan maaf atas jawaban yang sangat terlambat, tetapi satu solusi adalah dengan kolom pembantu dengan angka dalam urutan menaik, dan urutkan kisaran berdasarkan kolom tersebut menurun (dan kemudian Anda dapat menghapus nilai-nilai pembantu).
AdamL
@Gruber: opsi pertama adalah skrip untuk menyalin / menempel satu sel pada satu waktu; opsi kedua adalah mendapatkan semua format yang diperlukan untuk rentang, membalikkannya juga, dan mengaturnya. Saya akan mengatakan opsi pertama mungkin OK untuk rentang kecil, tetapi mengerikan untuk rentang besar; opsi kedua akan menjadi taruhan terbaik untuk mencakup semua kasus penggunaan.
AdamL
21

Berikut adalah contoh cara melakukan ini tanpa menggunakan skrip - harap dicatat bahwa metode ini menganggap data Anda hanya data - itu mungkin melakukan hal-hal aneh jika Anda memiliki rumus yang mereferensikan sel lain dalam rentang yang sama:

  1. Sisipkan kolom baru (misalnya, kami akan menyebutnya kolom A).
  2. Di A1, masukkan nilainya [1]. (Anda dapat mulai dari A10, atau A50 jika Anda hanya ingin mengurutkan rentang)
  3. Dalam A2, masukkan rumus [= A1 + 1]. (Sesuaikan jika Anda tidak memulai dengan A1 pada langkah 2)
  4. Perpanjang rumus dalam A2 ke bagian bawah data yang ingin Anda balikkan.

    Semuanya sekarang harus diberi nomor dari 1 hingga jumlah baris dalam rentang yang Anda sortir.

  5. Pilih semua baris dalam rentang yang telah Anda siapkan.
  6. Klik pada menu Data, dan pilih "Urutkan rentang berdasarkan kolom A, Z -> A".

Data Anda sekarang harus dibalik agar. Karena cara kami mengatur rumus penomoran, angka tersebut akan direset, dan masih mulai dari 1 di atas ... tetapi data aktual di kolom lain semuanya harus dibalik.

Mir
sumber
2
Ini sangat mudah sehingga aku harus menampar dahiku karena tidak memikirkannya. Jawaban yang fantastis. +1.
GroggyOtter
2
Untuk langkah 2-4, Anda bahkan tidak memerlukan formula. Cukup masukkan 1 di A1, 2 di A2, pilih keduanya dan seret ke bawah sejauh yang diperlukan.
Patrick
4

Mengikuti contoh Mir, Anda dapat menempatkan fungsi SORT ke dalam sel D3 untuk membalikkan urutan data di kolom C:

=sort(C3:C,A3:A,False)
artu
sumber