Kongsi melalui


Fungsi Sort dan SortByColumns

Digunakan untuk: Aplikasi kanvas Aliran desktop Aplikasi dipacu Power Pages Power Platform model CLI

Isih jadual.

Nota

Perintah PAC CLI pac power-fx tidak menyokong fungsi SortByColumns .

Description

Fungsi Sort mengisih jadual berasaskan pada formula.

Formula dinilai untuk setiap rekod jadual, dan hasil digunakan untuk mengisih jadual. Formula mesti dihasilkan dalam nombor, rentetan, atau nilai Boolean; ianya tidak boleh dihasilkan sebagai jadual atau rekod.

Medan rekod yang sedang diproses tersedia dalam formula. Gunakan operator ThisRecord atau rujuk sahaja medan mengikut nama seperti yang akan anda lakukan bagi mana-mana nilai yang lain. Operator As juga boleh digunakan untuk menamakan rekod yang diproses, yang dapat membantu menjadikan formula anda lebih mudah untuk difahami dan supaya rekod bersarang dapat diakses. Untuk mendapatkan maklumat lanjut, lihat contoh di bawah dan menggunakan skop rekod.

Untuk mengisih pertama dengan satu lajur dan kemudian dengan yang lain, anda membenamkan formula Isih dalam yang lain. Contohnya, anda boleh menggunakan formula ini untuk mengisih jadual Kenalan dahulu dengan lajur LastName dan kemudian dengan lajur FirstName: Isih( Isih( Kenalan, LastName ), FirstName )

Fungsi SortByColumns juga boleh digunakan untuk mengisih jadual berasaskan pada satu atau lebih lajur.

Senarai parameter untuk SortByColumns menyediakan nama lajur untuk diisih dan mengisih arahan setiap lajur. Mengisih dilakukan mengikut susunan parameter (pertama diisih dengan lajur pertama, kemudian kedua, dan seterusnya). Nama lajur ditentukan sebagai rentetan, memerlukan petikan berganda jika dimasukkan secara terus dalam senarai parameter. Contohnya, SortByColumns( CustomerTable, "LastName" ).

Anda boleh menggabungkan SortByColumns dengan Drop down atau kawalan List box untuk mendayakan pengguna memilih lajur yang akan diisih.

Sebagai tambahan untuk mengisih menaik atau menurun, SortByColumns boleh mengisih berasaskan pada nilai jadual lajur tunggal. Contohnya, anda boleh mengisih rekod berasaskan pada nama hari dalam minggu dengan membekalkan [ "Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu", "Ahad" ] sebagai pesanan isih. Semua rekod yang mempunyai Isnin" akan didahulukan, diikuti dengan Selasa, dan seterusnya. Rekod yang ditemui tidak dipaparkan dalam jadual isih akan diletakkan pada hujung senarai.

Jadual ialah nilai dalam Power Apps, sama seperti rentetan atau nombor. Mereka boleh diluluskan dan dikembalikan daripada fungsi. Sort dan SortByColumn tidak mengubah suai jadual; sebaliknya mereka mengambil jadual sebagai hujah dan mengembalikan jadual baru yang telah diisih. Lihat bekerja dengan jadual untuk butiran lanjut.

Perwakilan

Apabila mungkin, Power Apps akan menugaskan operasi tapis dan isih kepada sumber data serta halaman melalui hasil yang diminta. Misalnya, apabila anda memulakan aplikasi yang menunjukkan kawalan Galeri yang diisi dengan data, kumpulan rekod yang pertama sahaja akan dipaparkan pada peranti pada awalnya. Sambil pengguna menatal, data tambahan dibawa turun daripada sumber data. Ini membolehkan aplikasi bermula dengan pantas dan set data yang sangat besar dapat dicapai.

Walau bagaimanapun, penugasan tidak selalunya dapat dilaksanakan. Sumber data berbeza mengikut fungsi dan operator yang disokong dengan penugasan. Jika penugasan formula yang lengkap tidak dapat dilaksanakan, persekitaran pengarangan akan membenderakan bahagian yang tidak dapat ditugaskan dengan amaran. Apabila mungkin, pertimbangkan untuk mengubah formula demi mengelak fungsi dan operator yang tidak dapat ditugaskan. Senarai penugasan memperincikan sumber data dan operasi yang boleh ditugaskan.

Jika penugasan tidak dapat dilaksanakan, Power Apps akan membawa turun kumpulan rekod yang kecil untuk diusahakan secara setempat. Fungsi tapis dan isih akan digunakan pada kumpulan rekod yang lebih sedikit. Rekod yang tersedia dalam Galeri mungkin tidak mewakili gambaran yang lengkap dan ini mungkin mengelirukan pengguna.

Rujuk ikhtisar penugasan untuk mendapatkan maklumat lanjut.

Sintaks

Susun ( Jadual, Formula [, Susunan] )

  • Jadual - Diperlukan. Jadual untuk diisih.
  • Formula - Diperlukan. Formula dinilai untuk setiap rekod jadual, dan hasilnya digunakan untuk mengisih jadual. Anda boleh merujuk lajur dalam jadual.
  • SortOrder - Pilihan. Tentukan SortOrder.Descending untuk mengisih jadual dalam turutan menurun. SortOrder.Ascending ialah nilai lalai.

SortByColumns( Jadual,ColumnName1 [, SortOrder1,ColumnName2,SortOrder2 , ... ] )

  • Jadual - Diperlukan. Jadual untuk diisih.

  • ColumnNames - Diperlukan. Nama lajur untuk diisihkan pada, sebagai rentetan.

  • SortOrders - Pilihan. SortOrder.Ascending atau SortOrder.Descending. SortOrder.Ascending ialah lalai. Jika berbilang ColumnNames dibekalkan, semua tetapi lajur terakhir mesti mengandungi SortOrder.

    Nota

    Untuk sumber data SharePoint dan Excel yang mengandungi nama lajur dengan ruang, tentukan setiap ruang sebagai "_x0020_". Sebagai contoh, tentukan "Nama Lajur" sebagai "Column_x0020_Name".

SortByColumns(Jadual,Nama Lajur,SortOrderTable )

  • Jadual - Diperlukan. Jadual untuk diisih.

  • ColumnName - Diperlukan. Nama lajur untuk diisihkan pada, sebagai rentetan.

  • SortOrderTable - Diperlukan. Nilai jadual lajur tunggal untuk diisih.

    Nota

    Untuk sumber data SharePoint dan Excel yang mengandungi nama lajur dengan ruang, tentukan setiap ruang sebagai "_x0020_". Sebagai contoh, tentukan "Nama Lajur" sebagai "Column_x0020_Name".

Contoh

Untuk contoh berikut, kami akan menggunakan IceCreamsumber data, yang mengandungi data dalam jadual ini:

Contoh Aiskrim.

Formula Penerangan Hasil
Susun ( Ais Krim, Perisa )

SortByColumns ( Ais Krim, "Rasa" )
Isih Ais Krim dengan lajurnya Perisa. Lajur Perisa mengandungi rentetan, supaya jadual diisih dalam susunan abjad. Secara lalai, pesanan isih ialah menaik. Diisih mengikut abjad.
Sort( Ais Krim, Kuantiti)

SortByColumns( Ais Krim, "Kuantiti" )
Isih Ais Krim dengan lajurnya Kuantiti. Lajur Kuantiti mengandungi nombor, supaya jadual diisih dalam susunan numerik. Secara lalai, pesanan isih ialah menaik. Diisih mengikut nombor.
Susun ( Ais Krim, Kuantiti, SortOrder.Menurun )

SortByColumns( Ais Krim, "Kuantiti", SortOrder.Menurun )
Isih Ais Krim dengan lajurnya Kuantiti. Lajur Kuantiti mengandungi nombor, supaya isih dilakukan secara numerik. Pesanan isih telah ditentukan sebagai menurun. Diisih mengikut nombor dan secara menurun.
Sort( Ais Krim, Kuantiti + OnOrder ) Isih Air Krim dengan jumlah lajur Kuantiti dan OnOrder untuk setiap rekod secara individual. Jumlah adalah nombor, supaya jadual diisih secara numerik. Secara lalai, pesanan isih ialah menaik. Memandangkan kami mengisih dengan formula dan bukan nilai lajur mentah, tiada persamaan menggunakan SortByColumns. Diisih mengikut nombor dan secara menaik.
Sort( Sort( IceCream, OnOrder ), Kuantiti)

SortByColumns( IceCream, "OnOrder", SortOrder.Ascending, "Kuantiti", SortOrder.Ascending )
Isih Ais Krim pertama dengan lajurnya OnOrder, dan kemudian dengan lajur Kuantiti. Perlu diingat bahawa "Pistachio" muncul di atas "Vanilla" dalam isihan pertama berasaskan pada OnOrder, dan kemudian ia berpindah bersama-sama ke tempat bersesuaian berasaskan pada Kuantiti. Diisih dengan Pistasio di atas Vanila.
SortByColumns( Ais Krim, "Rasa", [ "Pistachio", "Strawberi" ] ) Isih Ais Krim dengan lajurnya Perisa berasaskan pada jadual lajur tunggal mengandungi "Pistachio" dan "Strawberry". Rekod yang mempunyai Perisa "Pistachio"akan dipaparkan dahulu dalam hasil, diikuti dengan rekod yang mengandungi "Strawberry". Untuk nilai dalam lajur Perisa yang tidak sepadan, seperti "Vanilla", akan dipaparkan selepas item yang sepadan. Diisih dengan Pistasio di atas Strawberi.

Langkah demi langkah

Untuk menjalankan contoh ini sendiri, cipta sumber data Ais Krim sebagai pengumpulan:

  1. Tambah butang, dan tetapkan sifat OnSelect ke formula ini:
    ClearCollect( Ais Krim, { Perisa: "Coklat", Kuantiti: 100, Pesanan: 150 }, Perisa { : "Vanilla", Kuantiti: 200, Pesanan: 20, } Perisa { : "Strawberi", Kuantiti: 300, Pesanan: 0 }, Perisa { : "Coklat Pudina", Kuantiti: 60, Pesanan: 100 }, { Perisa: "Pistachio", Kuantiti: 200, Pesanan: 10) }
  2. Pratonton aplikasi, pilih butang, dan kemudian tekan Esc untuk kembali ke ruang kerja lalai.
  3. Pilih Pengumpulan pada menu Fail untuk memaparkan pengumpulan yang baru anda cipta, dan kemudian tekan Esc untuk kembali ke ruang kerja lalai.

Isih

  1. Tambah butang yang lain, dan tetapkan sifat OnSelect ke formula ini:
    ClearCollect( SortByFlavor, Sort ( Ais Krim, Perisa ) )

    Formula terdahulu mencipta pengumpulan kedua, bernama SortByFlavor, yang mengandungi data yang sama seperti Ais Krim. Walau bagaimana pun, pengumpulan baharu mengandungi data yang diisih mengikut susunan abjad dengan lajur Perisa dalam susunan menaik.

  2. Tekan F5, pilih butang baharu, dan kemudian tekan Esc.

  3. Pilih Pengumpulan pada menu Fail untuk memaparkan kedua-dua pengumpulan, dan kemudian tekan Esc untuk kembali ke ruang kerja lalai.

  4. Ulangi tiga langkah terakhir, tetapi ubah nama pengumpulan yang anda mahu cipta, dan gantikan formula Isih dengan formula yang berbeza daripada jadual contoh terdahulu dalam bahagian ini yang menggunakan Isih.

SortByColumns

  1. Tambah butang yang lain, dan tetapkan sifat OnSelect ke formula ini:
    ClearCollect( SortByQuantity, SortByColumns( IceCream, "Quantity", SortOrder.Ascending, "Flavor", SortOrder.Descending ) )

    Formula terdahulu mencipta pengumpulan ketiga, bernama SortByQuantity, yang mengandungi data yang sama seperti Ais Krim. Walau bagaimana pun, pengumpulan baharu mengandungi data yang diisih secara numerik dengan lajur Kuantiti dalam susunan menaik, dan kemudian dengan lajur Perisa dalam susunan menurun.

  2. Tekan F5, pilih butang baharu, dan kemudian tekan Esc.

  3. Pilih Pengumpulan pada menu Fail untuk memaparkan semua tiga pengumpulan, dan kemudian tekan Esc untuk kembali ke ruang kerja lalai.

  4. Ulangi tiga langkah terakhir, tetapi ubah nama pengumpulan yang anda mahu cipta, dan gantikan formula SortByColumns dengan formula yang berbeza daripada jadual contoh terdahulu dalam bahagian ini yang menggunakan SortByColumns.