Fungsi Excel SORTBY - isihan tersuai dengan formula

  • Berkongsi Ini
Michael Brown

Hari ini kita akan melihat dengan teliti sintaks dan kegunaan biasa bagi fungsi SORTBY tatasusunan dinamik baharu. Anda akan belajar cara mengisih tersuai dalam Excel dengan formula, mengisih senarai secara rawak, menyusun sel mengikut panjang teks dan banyak lagi.

Microsoft Excel menyediakan beberapa cara untuk menyusun data teks mengikut abjad, tarikh secara kronologi, dan nombor daripada terkecil ke terbesar atau dari tertinggi ke terendah. Terdapat juga cara untuk mengisih mengikut senarai tersuai anda sendiri. Selain fungsi Isih konvensional, Excel 365 memperkenalkan cara baharu untuk mengisih data dengan formula - sangat mudah dan sangat mudah untuk digunakan!

    Fungsi SORTBY Excel

    Fungsi SORTBY dalam Excel direka bentuk untuk mengisih satu julat atau tatasusunan berdasarkan nilai dalam julat atau tatasusunan lain. Isih boleh dilakukan dengan satu atau berbilang lajur.

    SORTBY ialah salah satu daripada enam fungsi tatasusunan dinamik baharu yang tersedia dalam Excel untuk Microsoft 365 dan Excel 2021. Hasilnya ialah tatasusunan dinamik yang tumpah ke sel jiran dan dikemas kini secara automatik apabila data sumber berubah.

    Fungsi SORTBY mempunyai bilangan argumen yang berubah-ubah - dua yang pertama diperlukan dan satu lagi adalah pilihan:

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

    Array (diperlukan) - julat sel atau tatasusunan nilai untuk diisih.

    By_array1 (diperlukan) - julat atau tatasusunan untuk menyusunoleh.

    Isih_urutan1 (pilihan) - susunan isihan:

    • 1 atau ditinggalkan (lalai) - menaik
    • -1 - menurun

    By_array2 / Sort_order2 , … (pilihan) - pasangan tatasusunan / susunan tambahan untuk digunakan untuk mengisih.

    Nota penting! Pada masa ini fungsi SORTBY hanya tersedia dengan langganan Microsoft 365 dan Excel 2021. Dalam Excel 2019, Excel 2016 dan versi terdahulu fungsi SORTBY tidak tersedia.

    Fungsi SORTBY - 4 perkara yang perlu diingat

    Untuk formula SORTBY Excel berfungsi dengan betul, terdapat beberapa perkara penting yang perlu diberi perhatian:

    • By_array argumen hendaklah sama ada satu baris tinggi atau satu lajur lebar.
    • Argumen array dan semua by_array mesti mempunyai dimensi yang serasi. Contohnya, apabila mengisih mengikut dua lajur, array , by_array1 dan by_array2 hendaklah mempunyai bilangan baris yang sama; jika tidak ralat #VALUE akan berlaku.
    • Jika tatasusunan yang dikembalikan oleh SORTBY ialah hasil akhir (output dalam sel dan tidak dihantar ke fungsi lain), Excel mencipta julat tumpahan dinamik dan mengisinya dengan hasilnya. Jadi, pastikan anda mempunyai sel kosong yang mencukupi di bawah dan/atau di sebelah kanan sel tempat anda memasukkan formula, jika tidak, anda akan mendapat ralat #SPILL.
    • Hasil formula SORTBY dikemas kini secara automatik setiap kali perubahan data sumber. Walau bagaimanapun, entri baharu yang ditambah di luartatasusunan yang dirujuk dalam formula tidak disertakan dalam keputusan melainkan anda mengemas kini rujukan tatasusunan . Untuk tatasusunan yang dirujuk berkembang secara automatik, tukar julat sumber kepada jadual Excel atau buat julat bernama dinamik.

    Formula SORTBY Asas dalam Excel

    Berikut ialah senario biasa menggunakan Formula SORTBY dalam Excel:

    Andaikata, anda mempunyai senarai projek dengan medan Nilai . Anda ingin mengisih projek mengikut nilainya pada helaian berasingan. Memandangkan pengguna lain tidak perlu melihat nombor, anda lebih suka tidak memasukkan lajur Nilai dalam keputusan.

    Tugas boleh dilakukan dengan mudah dengan fungsi SORTBY, yang mana anda berikan argumen berikut:

    • Array ialah A2:A10 - kerana anda tidak mahu lajur Nilai dipaparkan dalam keputusan, anda meninggalkannya daripada tatasusunan.
    • By_array1 ialah B2:B10 - isi mengikut Nilai .
    • Isih_urutan1 ialah -1 - menurun, iaitu dari tertinggi ke terendah.

    Menggabungkan hujah, kami mendapat formula ini:

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

    Untuk kesederhanaan, kami menggunakan formula pada perkara yang sama helaian - masukkannya dalam D2 dan tekan kekunci Enter. Hasilnya "tumpah" secara automatik ke seberapa banyak sel yang diperlukan (D2:D10 dalam kes kami). Tetapi secara teknikal, formula itu hanya dalam sel pertama, dan memadamkannya daripada D2 akan memadamkan semua keputusan.

    Apabila digunakan pada helaian lain, formula mengambilbentuk berikut:

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

    Di mana Helaian1 ialah lembaran kerja yang mengandungi data asal.

    Menggunakan fungsi SORTBY dalam Excel - contoh formula

    Di bawah anda akan menemui beberapa lagi contoh penggunaan SORTBY, yang diharapkan akan terbukti berguna dan berwawasan.

    Isih mengikut berbilang lajur

    Formula asas yang dibincangkan di atas mengisih data mengikut satu lajur. Tetapi bagaimana jika anda perlu menambah satu lagi tahap pengisihan?

    Dengan mengandaikan jadual sampel kami mempunyai dua medan, Status (lajur B) dan Nilai (lajur C) , kami ingin mengisih dahulu mengikut Status mengikut abjad, dan kemudian dengan Nilai menurun.

    Untuk mengisih mengikut dua lajur, kami hanya menambah satu lagi pasangan by_array / sort_order argumen:

    • Array ialah A2:C10 - kali ini, kami mahu memasukkan ketiga-tiga lajur dalam hasil carian.
    • By_array1 ialah B2:B10 - pertama, isi mengikut Status .
    • Isih_urutan1 ialah 1 - isih mengikut abjad daripada A hingga Z.
    • By_array2 ialah C2:C10 - kemudian, isi mengikut Nilai .
    • Isih_urutan2 ialah -1 - isih daripada terbesar kepada terkecil.

    Hasilnya, kami mendapat formula berikut:

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

    Yang menyusun semula data kami tepat seperti yang kami arahkan:

    Isih tersuai dalam Excel dengan formula

    Untuk mengisih data dalam susunan tersuai, anda boleh sama ada menggunakan ciri Isih Tersuai Excel atau membina formula SORTBY MATCH dengan cara ini:

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

    Melihat dengan lebih dekat set data kami, anda mungkin akan mendapati lebih mudah untuk mengisih projek mengikut statusnya "secara logik" , cth. mengikut kepentingan, bukannya mengikut abjad.

    Untuk melakukannya, kami mula-mula membuat senarai tersuai dalam susunan isihan yang diingini ( Sedang dijalankan , Selesai , Ditahan ) menaip setiap nilai dalam sel berasingan dalam julat E2:E4.

    Kemudian, menggunakan formula generik di atas, kami membekalkan julat sumber untuk tatasusunan (A2 :C10), lajur Status untuk julat_untuk_isih (B2:B10) dan senarai tersuai yang kami buat untuk senarai_suai (E2:E4).

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

    Hasilnya, kami telah menyusun projek mengikut statusnya tepat seperti yang diperlukan:

    Untuk mengisih mengikut senarai tersuai dalam susunan terbalik, letakkan -1 untuk urutan_urutan1 hujah:

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

    Dan anda akan mengisih projek ke arah yang bertentangan:

    Ingin mengisih rekod tambahan dalam setiap status? Tiada masalah. Cuma, tambahkan satu lagi tahap isihan pada formula, katakan mengikut Nilai (C2:C10), dan takrifkan tertib isihan yang diingini, menaik dalam kes kami:

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

    Kelebihan besar formula SORTBY berbanding ciri Isih Tersuai Excel ialah formula mengemas kini secara automatik apabila data asal berubah, manakala ciri tersebut memerlukan pembersihan dan pengisihan semula dengan setiap perubahan.

    Bagaimana formula iniberfungsi:

    Seperti yang telah disebutkan, fungsi SORTBY Excel hanya boleh memproses tatasusunan "isih mengikut" yang dimensinya serasi dengan tatasusunan sumber. Memandangkan tatasusunan sumber kami (C2:C10) mengandungi 9 baris dan senarai tersuai (E2:E4) hanya 3 baris, kami tidak boleh membekalkannya terus kepada argumen by_array . Sebaliknya, kami menggunakan fungsi MATCH untuk mencipta tatasusunan 9 baris:

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

    Di sini, kami menggunakan lajur Status (B2:B10) sebagai nilai carian dan senarai tersuai kami (E2:E5) sebagai tatasusunan carian. Argumen terakhir ditetapkan kepada 0 untuk mencari padanan yang tepat. Hasilnya, kami mendapat tatasusunan 9 nombor, setiap satu mewakili kedudukan relatif nilai Status yang diberikan dalam senarai tersuai:

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

    Susun atur ini pergi terus kepada argumen by_array bagi fungsi SORTBY dan memaksanya untuk meletakkan data dalam susunan yang sepadan dengan elemen tatasusunan, iaitu entri pertama diwakili oleh 1, kemudian entri diwakili oleh 2, dan seterusnya.

    Isih rawak dalam Excel dengan formula

    Dalam versi Excel terdahulu, anda boleh melakukan isihan rawak dengan fungsi RAND seperti yang dijelaskan dalam tutorial ini: Cara mengisih senarai secara rawak dalam Excel.

    Dalam Excel baharu, anda boleh menggunakan fungsi RANDARRAY yang lebih berkuasa bersama-sama dengan SORTBY:

    SORTBY( array , RANDARRAY(ROWS( array )))

    Di mana array ialah data sumber yang anda mahu kocok.

    Formula generik ini berfungsi untuk senarai yang terdiri daripadalajur tunggal serta untuk julat berbilang lajur.

    Sebagai contoh, untuk mengisih senarai secara rawak dalam A2:A10, gunakan formula ini:

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

    Untuk merombak data dalam A2:C10 mengekalkan baris bersama-sama, gunakan yang ini:

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

    Cara formula ini berfungsi:

    Fungsi RANDARRAY menghasilkan tatasusunan nombor rawak untuk digunakan untuk mengisih, dan anda menyampaikannya dalam argumen by_array SORTBY. Untuk menentukan bilangan nombor rawak untuk dijana, anda mengira bilangan baris dalam julat sumber dengan menggunakan fungsi ROWS dan "suapan" nombor itu kepada argumen baris RANDARRAY. Itu sahaja!

    Nota. Seperti pendahulunya, RANDARRAY ialah fungsi yang tidak menentu dan ia menjana tatasusunan nombor rawak baharu setiap kali lembaran kerja dikira semula. Akibatnya, data anda akan digunakan dengan setiap perubahan pada helaian. Untuk mengelakkan penggunaan automatik, anda boleh menggunakan ciri Tampal Khas > Nilai untuk menggantikan formula dengan nilainya.

    Isih sel mengikut panjang rentetan

    Untuk mengisih sel mengikut panjang rentetan teks yang terkandung di dalamnya, gunakan fungsi LEN untuk mengira bilangan aksara dalam setiap sel dan berikan panjang yang dikira kepada argumen by_array SORTBY. Argumen sort_order boleh ditetapkan kepada sama ada 1 atau -1, bergantung pada tertib pengisihan pilihan.

    Untuk mengisih mengikut rentetan teks daripada terkecil kepada terbesar:

    SORTBY(array, LEN(array), 1)

    Untuk mengisih mengikutrentetan teks daripada terbesar kepada terkecil:

    SORTBY(array, LEN(array), -1)

    Dan berikut ialah formula yang menunjukkan pendekatan ini pada data sebenar:

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

    Di mana A2:A7 ialah sel asal yang anda ingin isi mengikut panjang teks dalam tertib menaik:

    SORTBY vs. SORT

    Dalam kumpulan fungsi tatasusunan dinamik Excel baharu, terdapat dua direka untuk menyusun. Di bawah kami menyenaraikan perbezaan dan persamaan yang paling penting serta bila setiap satunya adalah terbaik untuk digunakan.

    • Berbeza dengan fungsi SORT, SORTBY tidak memerlukan tatasusunan "isih mengikut" untuk menjadi sebahagian daripada sumber tatasusunan, juga tidak perlu muncul dalam hasil. Jadi, apabila tugas anda adalah untuk mengisih julat berdasarkan tatasusunan bebas lain atau senarai tersuai, SORTBY ialah fungsi yang sesuai untuk digunakan. Jika anda ingin mengisih julat berdasarkan nilainya sendiri, maka SORT adalah lebih sesuai.
    • Kedua-dua fungsi menyokong berbilang peringkat pengisihan dan kedua-duanya boleh dirantai bersama dengan tatasusunan dinamik dan fungsi konvensional yang lain.
    • Kedua-dua fungsi hanya tersedia kepada pengguna Excel 365 dan Excel 2021.

    Fungsi SORTBY Excel tidak berfungsi

    Sekiranya formula SORTBY anda mengembalikan ralat, kemungkinan besar ia disebabkan oleh salah satu daripada sebab berikut.

    Argumen by_array tidak sah

    Argumen by_array mestilah satu baris atau satu lajur dan serasi dalam saiz dengan array hujah. Contohnya, jika array mempunyai 10baris, by_array juga harus mengandungi 10 baris. Jika tidak, #VALUE! ralat berlaku.

    Argumen susunan_isih tidak sah

    Argumen urutan_isih hanya boleh menjadi 1 (menaik) atau -1 (menurun). Jika tiada nilai ditetapkan, SORTBY lalai kepada tertib menaik. Jika mana-mana nilai lain ditetapkan, #VALUE! ralat dikembalikan.

    Tiada ruang yang mencukupi untuk hasil

    Seperti mana-mana fungsi tatasusunan dinamik lain, SORTBY menumpahkan hasil ke dalam julat yang boleh diubah saiz dan dikemas kini secara automatik. Jika tidak ada sel kosong yang mencukupi untuk memaparkan semua nilai, satu #TUHAN! ralat dilemparkan.

    Buku kerja sumber ditutup

    Jika formula SORTBY merujuk fail Excel lain, kedua-dua buku kerja perlu dibuka. Jika buku kerja sumber ditutup, #REF! ralat berlaku.

    Versi Excel anda tidak menyokong tatasusunan dinamik

    Apabila digunakan dalam versi pra-dinamik Excel, fungsi SORT mengembalikan #NAME? ralat.

    Begitulah cara menggunakan fungsi SORTBY dalam Excel untuk melakukan isihan tersuai dan perkara lain. Saya mengucapkan terima kasih kerana membaca dan berharap dapat berjumpa anda di blog kami minggu hadapan!

    Berlatih buku kerja untuk muat turun

    Formula SORTBY Excel (fail.xlsx)

    Michael Brown ialah peminat teknologi yang berdedikasi dengan semangat untuk memudahkan proses kompleks menggunakan alat perisian. Dengan lebih sedekad pengalaman dalam industri teknologi, beliau telah mengasah kemahirannya dalam Microsoft Excel dan Outlook, serta Helaian Google dan Dokumen. Blog Michael berdedikasi untuk berkongsi pengetahuan dan kepakarannya dengan orang lain, menyediakan petua dan tutorial yang mudah diikuti untuk meningkatkan produktiviti dan kecekapan. Sama ada anda seorang profesional berpengalaman atau pemula, blog Michael menawarkan pandangan berharga dan nasihat praktikal untuk memanfaatkan sepenuhnya alatan perisian penting ini.