Fungsi Excel SORTBY - urutkan kustom dengan rumus

  • Bagikan Ini
Michael Brown

Hari ini kita akan melihat lebih dekat pada sintaks dan penggunaan tipikal dari fungsi SORTBY array dinamis baru. Anda akan belajar cara mengurutkan kustom di Excel dengan rumus, mengurutkan daftar secara acak, mengatur sel berdasarkan panjang teks, dan banyak lagi.

Microsoft Excel menyediakan sejumlah cara untuk mengatur data teks menurut abjad, tanggal secara kronologis, dan angka dari yang terkecil hingga terbesar atau dari yang tertinggi hingga terendah. Ada juga cara untuk mengurutkan berdasarkan daftar kustom Anda sendiri. Selain fungsionalitas Sortir konvensional, Excel 365 memperkenalkan cara baru untuk mengurutkan data dengan rumus - sangat nyaman dan sangat mudah digunakan!

    Fungsi SORTBY Excel

    Fungsi SORTBY di Excel dirancang untuk mengurutkan satu rentang atau larik berdasarkan nilai dalam rentang atau larik lain. Penyortiran dapat dilakukan dengan satu atau beberapa kolom.

    SORTBY adalah salah satu dari enam fungsi array dinamis baru yang tersedia di Excel untuk Microsoft 365 dan Excel 2021. Hasilnya adalah array dinamis yang tumpah ke sel tetangga dan diperbarui secara otomatis saat data sumber berubah.

    Fungsi SORTBY memiliki jumlah argumen yang bervariasi - dua yang pertama diperlukan dan yang lainnya opsional:

    SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2],...)

    Larik (wajib) - rentang sel atau larik nilai yang akan diurutkan.

    By_array1 (wajib) - rentang atau larik yang akan diurutkan.

    Sort_order1 (opsional) - urutan penyortiran:

    • 1 atau dihilangkan (default) - naik
    • -1 - menurun

    By_array2 / Sort_order2 , ... (opsional) - pasangan larik/urutan tambahan yang digunakan untuk menyortir.

    Catatan penting! Saat ini fungsi SORTBY hanya tersedia dengan langganan Microsoft 365 dan Excel 2021. Di Excel 2019, Excel 2016 dan versi sebelumnya, fungsi SORTBY tidak tersedia.

    Fungsi SORTBY - 4 hal yang perlu diingat

    Agar rumus SORTBY Excel bekerja dengan benar, ada beberapa poin penting yang harus diperhatikan:

    • By_array argumen harus setinggi satu baris atau selebar satu kolom.
    • The array dan semua by_array argumen harus memiliki dimensi yang kompatibel. Misalnya, saat mengurutkan berdasarkan dua kolom, array , by_array1 dan by_array2 harus memiliki jumlah baris yang sama; jika tidak, kesalahan #VALUE akan terjadi.
    • Jika array yang dikembalikan oleh SORTBY adalah hasil akhir (output dalam sel dan tidak diteruskan ke fungsi lain), Excel membuat rentang tumpahan dinamis dan mengisinya dengan hasilnya. Jadi, pastikan Anda memiliki cukup sel kosong di bawah dan / atau di sebelah kanan sel tempat Anda memasukkan rumus, jika tidak, Anda akan mendapatkan kesalahan #SPILL.
    • Hasil rumus SORTBY diperbarui secara otomatis setiap kali data sumber berubah. Namun, entri baru yang ditambahkan di luar larik yang direferensikan dalam rumus tidak disertakan dalam hasil kecuali jika Anda memperbarui array Agar larik yang direferensikan meluas secara otomatis, ubah rentang sumber menjadi tabel Excel atau buat rentang bernama dinamis.

    Rumus SORTBY dasar di Excel

    Berikut skenario umum penggunaan rumus SORTBY di Excel:

    Seandainya, Anda memiliki daftar proyek dengan Nilai Anda ingin mengurutkan proyek-proyek berdasarkan nilainya pada lembar terpisah. Karena pengguna lain tidak perlu melihat angkanya, Anda lebih suka tidak menyertakan kolom Nilai kolom dalam hasil.

    Tugas ini dapat dengan mudah diselesaikan dengan fungsi SORTBY, yang Anda berikan argumen berikut:

    • Larik adalah A2:A10 - karena Anda tidak menginginkan Nilai kolom yang akan ditampilkan dalam hasil, Anda membiarkannya keluar dari array.
    • By_array1 adalah B2:B10 - urutkan berdasarkan Nilai .
    • Sort_order1 adalah -1 - menurun, yaitu dari yang tertinggi ke terendah.

    Menyatukan argumen-argumen tersebut, kita mendapatkan rumus ini:

    =SORTBY(A2:B10, B2:B10, -1)

    Untuk mempermudah, kita menggunakan formula pada sheet yang sama - masukkan di D2 dan tekan tombol Enter. Hasilnya "tumpah" secara otomatis ke sebanyak mungkin sel yang dibutuhkan (D2:D10 dalam kasus kita). Tetapi secara teknis, formula hanya ada di sel pertama, dan menghapusnya dari D2 akan menghapus semua hasilnya.

    Apabila digunakan pada sheet lain, rumus tersebut mengambil bentuk berikut ini:

    =SORTBY(Sheet1!A2:A10, Sheet1!B2:B10, -1)

    Di mana Sheet1 adalah lembar kerja yang berisi data asli.

    Menggunakan fungsi SORTBY di Excel - contoh rumus

    Di bawah ini, Anda akan menemukan beberapa contoh penggunaan SORTBY, yang semoga terbukti berguna dan berwawasan.

    Urutkan berdasarkan beberapa kolom

    Rumus dasar yang dibahas di atas mengurutkan data berdasarkan satu kolom. Tetapi bagaimana jika Anda perlu menambahkan satu tingkat pengurutan lagi?

    Dengan mengasumsikan tabel sampel kita memiliki dua bidang, Status (kolom B) dan Nilai (kolom C) , kita ingin mengurutkan terlebih dahulu berdasarkan Status secara alfabetis, dan kemudian berdasarkan Nilai turun.

    Untuk mengurutkan berdasarkan dua kolom, kita hanya menambahkan satu pasang lagi dari by_array / sort_order argumen:

    • Larik adalah A2:C10 - kali ini, kita ingin menyertakan ketiga kolom dalam hasilnya.
    • By_array1 adalah B2:B10 - pertama, urutkan berdasarkan Status .
    • Sort_order1 adalah 1 - urutkan menurut abjad dari A sampai Z.
    • By_array2 adalah C2:C10 - kemudian, urutkan berdasarkan Nilai .
    • Sort_order2 adalah -1 - urutkan dari yang terbesar ke yang terkecil.

    Sebagai hasilnya, kita mendapatkan rumus berikut ini:

    =SORTBY(A2:B10, B2:B10, 1, C2:C10, -1)

    Yang mengatur ulang data kita persis seperti yang kita instruksikan:

    Urutkan kustom di Excel dengan rumus

    Untuk mengurutkan data dalam urutan kustom, Anda dapat menggunakan fitur Custom Sort Excel atau membuat rumus SORTBY MATCH dengan cara ini:

    SORTBY(array, MATCH( range_to_sort , custom_list , 0))

    Melihat lebih dekat pada kumpulan data kami, Anda mungkin akan merasa lebih nyaman untuk mengurutkan proyek berdasarkan statusnya secara "logis", misalnya, berdasarkan kepentingan, daripada berdasarkan abjad.

    Untuk melakukannya, pertama-tama, kita membuat daftar kustom dalam urutan sortir yang diinginkan ( Sedang berlangsung , Selesai , Ditunda ) mengetikkan setiap nilai dalam sel terpisah dalam rentang E2:E4.

    Dan kemudian, dengan menggunakan rumus generik di atas, kita menyediakan kisaran sumber untuk array (A2:C10), yang Status kolom untuk range_to_sort (B2:B10), dan daftar kustom yang kita buat untuk custom_list (E2:E4).

    =SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0))

    Hasilnya, kami mendapatkan proyek-proyek yang diurutkan berdasarkan statusnya persis seperti yang diperlukan:

    Untuk mengurutkan menurut daftar kustom dalam urutan terbalik, letakkan -1 untuk sort_order1 argumen:

    =SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0), -1)

    Dan Anda akan memiliki proyek-proyek yang diurutkan ke arah yang berlawanan:

    Ingin mengurutkan catatan dalam setiap status? Tidak masalah. Cukup, tambahkan satu tingkat pengurutan lagi ke rumus, katakanlah dengan Nilai (C2:C10), dan tentukan urutan pengurutan yang diinginkan, menaik dalam kasus kita:

    =SORTBY(A2:C10, MATCH(B2:B10, E2:E5, 0), 1, C2:C10, 1)

    Keuntungan besar dari rumus SORTBY dibandingkan fitur Custom Sort Excel adalah bahwa rumus tersebut diperbarui secara otomatis setiap kali data asli berubah, sementara fitur tersebut memerlukan pembersihan dan pengurutan ulang dengan setiap perubahan.

    Bagaimana formula ini bekerja:

    Seperti yang telah disebutkan, fungsi SORTBY Excel hanya bisa memproses larik "sort by" yang dimensinya kompatibel dengan larik sumber. Karena larik sumber kita (C2:C10) berisi 9 baris dan daftar kustom (E2:E4) hanya 3 baris, kita tidak bisa memasoknya langsung ke fungsi by_array Sebagai gantinya, kita menggunakan fungsi MATCH untuk membuat larik 9 baris:

    COCOKKAN(B2:B10, E2:E5, 0)

    Di sini, kita menggunakan Status kolom (B2:B10) sebagai nilai pencarian dan daftar kustom kami (E2:E5) sebagai larik pencarian. Argumen terakhir disetel ke 0 untuk mencari kecocokan yang tepat. Hasilnya, kami mendapatkan larik berisi 9 angka, masing-masing mewakili posisi relatif dari Status nilai dalam daftar kustom:

    {1;3;2;1;3;2;2;1;2}

    Larik ini langsung menuju ke by_array argumen fungsi SORTBY dan memaksanya untuk menempatkan data dalam urutan yang sesuai dengan elemen array, yaitu entri pertama diwakili oleh 1, kemudian entri diwakili oleh 2, dan seterusnya.

    Urutkan acak di Excel dengan rumus

    Di versi Excel sebelumnya, Anda dapat melakukan pengurutan acak dengan fungsi RAND seperti yang dijelaskan dalam tutorial ini: Cara mengurutkan daftar secara acak di Excel.

    Di Excel baru, Anda dapat menggunakan fungsi RANDARRAY yang lebih kuat bersama dengan SORTBY:

    SORTBY( array , RANDARRAY(BARIS( array )))

    Di mana array adalah sumber data yang ingin Anda acak.

    Rumus umum ini berfungsi untuk daftar yang terdiri dari satu kolom serta untuk rentang multi-kolom.

    Misalnya, untuk mengurutkan daftar secara acak dalam A2:A10, gunakan rumus ini:

    =SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))))

    Untuk mengacak data di A2:C10 dengan menjaga baris-barisnya tetap bersama, gunakan yang ini:

    =SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10))))

    Bagaimana formula ini bekerja:

    Fungsi RANDARRAY menghasilkan larik angka acak yang akan digunakan untuk mengurutkan, dan Anda meneruskannya dalam fungsi by_array Untuk menentukan berapa banyak angka acak yang akan dihasilkan, Anda menghitung jumlah baris dalam rentang sumber dengan menggunakan fungsi ROWS, dan "mengumpankan" angka itu ke fungsi SORTBY. barisan argumen dari RANDARRAY. Itu saja!

    Catatan Seperti pendahulunya, RANDARRAY adalah fungsi yang mudah menguap dan menghasilkan array baru angka acak setiap kali lembar kerja dihitung ulang. Akibatnya, data Anda akan dialihkan dengan setiap perubahan pada lembar kerja. Untuk mencegah pengubahan otomatis, Anda dapat menggunakan fungsi Tempel Khusus > Nilai-nilai fitur untuk mengganti rumus dengan nilainya.

    Urutkan sel berdasarkan panjang string

    Untuk mengurutkan sel berdasarkan panjang string teks yang dikandungnya, gunakan fungsi LEN untuk menghitung jumlah karakter dalam setiap sel, dan menyediakan panjang yang dihitung ke fungsi by_array argumen dari SORTBY. sort_order argumen dapat disetel ke 1 atau -1, tergantung pada urutan penyortiran yang diinginkan.

    Untuk mengurutkan berdasarkan string teks dari yang terkecil ke terbesar:

    SORTBY(larik, LEN(larik), 1)

    Untuk mengurutkan berdasarkan string teks dari yang terbesar ke terkecil:

    SORTBY(larik, LEN(larik), -1)

    Dan berikut ini adalah formula yang mendemonstrasikan pendekatan ini pada data nyata:

    =SORTBY(A2:A7, LEN(A2:A7), 1)

    Di mana A2: A7 adalah sel asli yang ingin Anda urutkan berdasarkan panjang teks dalam urutan menaik:

    SORTBY vs SORT

    Dalam kelompok fungsi array dinamis Excel baru, ada dua yang dirancang untuk penyortiran. Di bawah ini kami mencantumkan perbedaan dan persamaan yang paling penting serta kapan masing-masing paling baik digunakan.

    • Tidak seperti fungsi SORT, SORTBY tidak memerlukan larik "urutkan berdasarkan" untuk menjadi bagian dari larik sumber, juga tidak perlu muncul dalam hasil. Jadi, saat tugas Anda adalah mengurutkan rentang berdasarkan larik independen lain atau daftar kustom, SORTBY adalah fungsi yang tepat untuk digunakan. Jika Anda ingin mengurutkan rentang berdasarkan nilainya sendiri, maka SORT lebih tepat.
    • Kedua fungsi ini mendukung beberapa level penyortiran dan keduanya bisa dirangkai bersama dengan larik dinamis dan fungsi konvensional lainnya.
    • Kedua fungsi tersebut hanya tersedia untuk pengguna Excel 365 dan Excel 2021.

    Fungsi SORTBY Excel tidak berfungsi

    Jika rumus SORTBYmu menghasilkan error, kemungkinan besar karena salah satu alasan berikut.

    Argumen by_array tidak valid

    The by_array argumen harus berupa satu baris atau satu kolom dan ukurannya sesuai dengan array argumen. Sebagai contoh, jika array memiliki 10 baris, by_array juga harus menyertakan 10 baris. Jika tidak, kesalahan #VALUE! terjadi.

    Argumen sort_order tidak valid

    The sort_order argumen hanya bisa 1 (naik) atau -1 (turun). Jika tidak ada nilai yang ditetapkan, SORTBY secara default ke urutan menaik. Jika ada nilai lain yang ditetapkan, kesalahan #VALUE! dikembalikan.

    Tidak ada cukup ruang untuk hasil

    Seperti fungsi larik dinamis lainnya, SORTBY menumpahkan hasilnya ke dalam rentang yang dapat diubah ukurannya dan dapat diperbarui secara otomatis. Jika tidak ada cukup sel kosong untuk menampilkan semua nilai, kesalahan #SPILL! dilemparkan.

    Buku kerja sumber ditutup

    Jika rumus SORTBY mereferensikan file Excel lain, kedua buku kerja harus terbuka. Jika buku kerja sumber ditutup, kesalahan #REF! terjadi.

    Versi Excel Anda tidak mendukung array dinamis

    Saat digunakan dalam versi Excel pra-dinamis, fungsi SORT mengembalikan kesalahan #NAME?

    Begitulah cara menggunakan fungsi SORTBY di Excel untuk melakukan pengurutan kustom dan hal-hal lain. Saya berterima kasih telah membaca dan berharap dapat melihat Anda di blog kami minggu depan!

    Buku kerja latihan untuk diunduh

    Rumus SORTBY Excel (file .xlsx)

    Michael Brown adalah penggemar teknologi berdedikasi dengan hasrat untuk menyederhanakan proses kompleks menggunakan perangkat lunak. Dengan pengalaman lebih dari satu dekade di industri teknologi, dia telah mengasah keahliannya di Microsoft Excel dan Outlook, serta Google Spreadsheet dan Dokumen. Blog Michael didedikasikan untuk berbagi pengetahuan dan keahliannya dengan orang lain, memberikan tip dan tutorial yang mudah diikuti untuk meningkatkan produktivitas dan efisiensi. Apakah Anda seorang profesional berpengalaman atau pemula, blog Michael menawarkan wawasan berharga dan saran praktis untuk mendapatkan hasil maksimal dari perangkat lunak penting ini.