Fungsi Sort dan SortByColumns

Berlaku untuk: Aplikasi kanvas Alur desktop Aplikasi Power Platform berbasis model CLI

Mengurutkan tabel.

Catatan

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

Description

Fungsi Sort mengurutkan tabel berdasarkan rumus.

Rumus dievaluasi untuk setiap rekaman tabel, dan hasil digunakan untuk mengurutkan tabel. Rumus harus menghasilkan angka, string, atau nilai Boolean; tidak dapat menghasilkan tabel atau rekaman.

Bidang rekaman yang sedang diproses tersedia dalam formula. Menggunakan operator ThisRecord atau hanya bidang referensi berdasarkan nama seperti nilai lainnya. Operator As juga dapat digunakan untuk menamai rekaman yang sedang diproses yang dapat membantu membuat formula lebih mudah dipahami dan membuat rekaman bersarang dapat diakses. Untuk informasi selengkapnya, lihat contoh di bawah ini dan menggunakan cakupan rekaman.

Untuk mengurutkan terlebih dulu dengan satu kolom, lalu dengan yang lain, Anda menanamkan rumus Sort dalam kolom lainnya. Misalnya, Anda dapat menggunakan rumus ini untuk mengurutkan tabel Kontak terlebih dahulu oleh kolom LastName dan kemudian oleh kolom: FirstName: Sort( Sort( Contacts, LastName ), FirstName )

Fungsi SortByColumns juga dapat digunakan untuk mengurutkan tabel berdasarkan satu atau lebih kolom.

Daftar parameter untuk SortByColumns menyediakan nama dari kolom untuk mengurutkan berdasarkan dan arah pengurutan per kolom. Pengurutan dilakukan dalam urutan parameter (diurutkan terlebih dulu oleh kolom pertama, kedua, dan seterusnya). Nama kolom ditentukan sebagai string, memerlukan tanda kutip ganda jika langsung disertakan dalam daftar parameter. Misalnya, SortByColumns( CustomerTable, "LastName" ).

Anda dapat menggabungkan kontrol SortByColumns dengan Drop down atau Kotak daftar untuk memungkinkan pengguna memilih kolom yang akan diurutkan.

Selain mengurutkan naik atau turun, SortByColumns dapat diurutkan berdasarkan satu tabel nilai kolom. Misalnya, Anda dapat mengurutkan rekaman berdasarkan nama hari dalam seminggu dengan memasok ["Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", "Minggu"] sebagai urutan pengurutan. Semua rekaman yang memiliki Senin " akan muncul pertama, diikuti dengan Selasa, dan seterusnya. Rekaman yang ditemukan yang tidak muncul di tabel pengurutan diletakkan di akhir daftar.

Tabel adalah nilai dalam Power Apps, seperti string atau angka. Dapat diteruskan ke dan dikembalikan dari fungsi. Sort dan SortByColumn tidak memodifikasi tabel; sebaliknya mengambil tabel sebagai argumen dan menghasilkan tabel baru yang telah diurutkan. Lihat: bekerja dengan tabel untuk detail lebih lanjut.

Delegasi

Jika memungkinkan, Power Apps akan mendelegasikan operasi filter dan pengurutan ke sumber data dan halaman melalui hasil sesuai permintaan. Contohnya, saat Anda memulai aplikasi yang menampilkan kontrol Galeri yang berisi data, hanya set rekaman pertama yang dibawa ke perangkat pada awalnya. Ketika pengguna menggulir, data tambahan dihadirkan dari sumber data. Ini mempercepat waktu mulai untuk aplikasi dan memungkinkan akses ke himpunan data yang sangat besar.

Namun, delegasi mungkin tidak selalu dapat dilakukan. Sumber data bervariasi dalam hal fungsi dan operator yang didukung dengan delegasi. Jika delegasi lengkap atas sebuah formula tidak tersedia, lingkungan penulis akan memberi tanda berupa peringatan pada porsi yang tidak dapat didelegasikan. Jika memungkinkan, sebaiknya ubah formula untuk menghindari fungsi dan operator yang tidak dapat didelegasikan. Detail daftar delegasi dengan sumber data dan operasi yang dapat didelegasikan.

Jika delegasi tidak memungkinkan, Power Apps hanya akan menarik kumpulan kecil data untuk dikerjakan secara lokal. Fungsi filter dan urutkan akan dioperasikan dalam kumpulan rekaman yang lebih sedikit. Hal yang tersedia di Galeri mungkin bukan merupakan gambaran utuhnya, dan dapat membingungkan bagi pengguna.

Lihat ikhtisar delegasi untuk informasi selengkapnya.

Sintaks

Sort( Table, Formula [, SortOrder ] )

  • Table – Wajib. Tabel yang akan diurutkan.
  • Formula – Wajib. Rumus ini dievaluasi untuk setiap rekaman tabel, dan hasil digunakan untuk mengurutkan tabel. Anda dapat merujuk kolom dalam tabel.
  • SortOrder - Opsional. Tentukan SortOrder.Descending untuk mengurutkan tabel dalam urutan menurun. SortOrder.Ascending adalah nilai default.

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

  • Table – Wajib. Tabel yang akan diurutkan.

  • ColumnName(s) - Wajib. Nama kolom yang akan diurutkan, sebagai string.

  • SortOrder - Opsional. SortOrder.Ascending atau SortOrder.Descending. SortOrder.Ascending adalah default. Jika beberapa ColumnNames disediakan, semua kolom terakhir harus mencakup SortOrder.

    Catatan

    Untuk sumber data SharePoint dan Excel yang berisi nama kolom dengan spasi, tentukan setiap ruang sebagai "_x0020_". Misalnya, tentukan "Nama Kolom" sebagai "Column_x0020_Name".

SortByColumns( Table, ColumnName, SortOrderTable )

  • Table – Wajib. Tabel yang akan diurutkan.

  • ColumnName - Wajib. Nama kolom yang akan diurutkan, sebagai string.

  • SortOrderTable - Wajib. Tabel kolom tunggal nilai yang akan diurutkan.

    Catatan

    Untuk sumber data SharePoint dan Excel yang berisi nama kolom dengan spasi, tentukan setiap ruang sebagai "_x0020_". Misalnya, tentukan "Nama Kolom" sebagai "Column_x0020_Name".

Contoh

Untuk contoh berikut, kita akan menggunakan IceCreamsumber data, yang berisi data dalam tabel ini:

Contoh Icecream.

Rumus KETERANGAN Hasil
Sort( IceCream, Flavor )

SortByColumns( IceCream, "Flavor" )
Mengurutkan IceCream berdasarkan kolom Flavor. Kolom Flavor berisi string, sehingga tabel diurutkan berdasarkan abjad. Secara default, urutan pengurutannya naik. Disusun berdasarkan abjad.
Sort( IceCream, Quantity )

SortByColumns( IceCream, "Quantity" )
Mengurutkan IceCream berdasarkan kolom Quantity. Kolom Quantity berisi angka, sehingga tabel diurutkan secara numerik. Secara default, urutan pengurutannya naik. Diurutkan secara numerik.
Sort( IceCream, Quantity, SortOrder.Descending )

SortByColumns( IceCream, "Quantity", SortOrder.Descending )
Mengurutkan IceCream berdasarkan kolom Quantity. Kolom Quantity berisi angka, sehingga pengurutan dilakukan secara numerik. Perintah pengurutan telah ditentukan sebagai menurun. Diurutkan secara numerik dan menurun.
Sort( IceCream, Quantity + OnOrder ) Mengurutkan IceCream berdasarkan total Quantity dan OnOrder untuk setiap rekaman secara individu. Totalnya adalah angka, sehingga tabel diurutkan secara numerik. Secara default, urutan pengurutannya naik. Karena kita mengurutkan berdasarkan formula dan bukan dengan nilai kolom mentah, tidak ada yang setara menggunakan SortByColumns. Diurutkan secara numerik dan menaik.
Sort( Sort( IceCream, OnOrder ), Quantity )

SortByColumns( IceCream, "OnOrder", SortOrder.Ascending, "Kuantitas", SortOrder.Ascending )
Mengurutkan IceCream pertama berdasarkan kolom OnOrder, lalu berdasarkan kolom Quantity. Perhatikan bahwa "Pistachio" naik di atas "Vanilla" dalam urutan pertama berdasarkan OnOrder, dan kemudian bersama-sama pindah ke tempat yang sesuai berdasarkan Quantity. Diurutkan dengan Pistachio di atas Vanila.
SortByColumns( IceCream, "Rasa", [ "Pistachio", "Stroberi" ] ) Mengurutkan IceCream berdasarkan kolom Flavor berdasarkan pada satu kolom tabel berisi "Pistachio" dan "Strawberry". Rekaman yang memiliki Flavor "Pistachio" akan muncul pertama kali pada hasilnya, diikuti oleh rekaman yang berisi "Strawberry". Untuk nilai pada kolom Flavor yang tidak cocok, seperti "Vanilla", nilai tersebut akan muncul setelah item yang dicocokkan. Diurutkan dengan Pistachio di atas Stroberi.

Langkah demi langkah

Untuk menjalankan contoh ini sendiri, buat sumber data IceCream sebagai koleksi:

  1. Tambahkan tombol dan atur properti OnSelect ke formula ini:
    ClearCollect( IceCream, { Flavor: "Cokelat", Quantity: 100, OnOrder: 150 }, { Flavor: "Vanila", Quantity: 200, OnOrder: 20 }, { Flavor: "Stroberi", Quantity: 300, OnOrder: 0 }, { Flavor: "Mint Cokelat", Quantity: 60, OnOrder: 100 }, { Flavor: "Pistachio", Quantity: 200, OnOrder: 10 } )
  2. Melihat pratinjau aplikasi, pilih tombol tersebut, lalu tekan Esc untuk kembali ke ruang kerja default.
  3. Pilih Koleksi pada menu File untuk menampilkan koleksi yang baru saja Anda buat, lalu tekan Esc untuk kembali ke ruang kerja default.

Urut

  1. Tambahkan tombol lain, dan atur properti OnSelect ke formula ini:
    ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )

    Formula sebelumnya membuat koleksi kedua, bernama SortByFlavor, yang berisi data yang sama seperti Ice Cream. Namun, koleksi baru berisi data yang diurutkan secara abjad berdasarkan kolom Flavor dalam urutan menaik.

  2. Tekan F5 dan pilih tombol baru, lalu tekan Esc.

  3. Pilih Koleksi pada menu File untuk menampilkan kedua koleksi, lalu tekan Esc untuk kembali ke ruang kerja default.

  4. Ulangi tiga langkah terakhir, tetapi ubah nama koleksi yang ingin Anda buat, dan ganti dengan rumus Urutkan dengan formula yang berbeda dari tabel contoh sebelumnya di bagian ini yang menggunakan Urutkan.

SortByColumns

  1. Tambahkan tombol lain, dan atur properti OnSelect ke formula ini:
    ClearCollect( SortByQuantity, SortByColumns( IceCream, "Kuantitas", SortOrder.Ascending, "Flavor", SortOrder.Descending ))

    Rumus sebelumnya membuat koleksi ketiga, bernama SortByQuantity, yang berisi data yang sama seperti Ice Cream. Namun, koleksi baru berisi data diurutkan secara numerik berdasarkan kolom Quantity dalam urutan menaik, lalu dengan kolom Flavor dalam urutan menurun.

  2. Tekan F5 dan pilih tombol baru, lalu tekan Esc.

  3. Pilih Koleksi pada menu File untuk menampilkan ketiga koleksi, lalu tekan Esc untuk kembali ke ruang kerja default.

  4. Ulangi ketiga langkah terakhir, tetapi ubah nama koleksi yang ingin Anda buat, dan ganti rumus SortByColumns dengan rumus yang berbeda dari tabel contoh sebelumnya di bagian ini yang menggunakan SortByColumns.