Fungsi GroupBy dan Ungroup
Digunakan untuk: Aplikasi kanvas Aplikasi dipacu model Power Pages
Kumpulan dan nyahkumpul rekod bagi jadual.
Description
Fungsi GroupBy mengembalikan jadual dengan rekod yang dikumpulkan berdasarkan pada nilai dalam satu atau lebih lajur. Rekod dalam kumpulan yang sama dimasukkan ke dalam rekod tunggal dengan lajur ditambahkan yang memegang jadual bersarang dari lajur yang tinggal.
Fungsi Ungroup membalikkan proses GroupBy. Fungsi ini mengembalikan jadual, memecah ke dalam rekod berasingan untuk sebarang rekod yang dikumpulkan bersama.
Anda boleh mengumpulkan rekod dengan menggunakan GroupBy, mengubah suai jadual yang dikembalikannya dan kemudian menyahkumpul rekod dalam jadual yang diubah suai dengan menggunakan Nyahkumpul. Sebagai contoh, anda boleh mengalih keluar sekumpulan rekod dengan mengikuti pendekatan ini:
- Gunakan fungsi GroupBy.
- Gunakan fungsi Filter untuk mengalih keluar keseluruhan kumpulan rekod.
- Gunakan fungsi Ungroup.
Anda juga boleh mengagregat hasil berdasarkan pada kumpulan:
- Gunakan fungsi GroupBy.
- Gunakan fungsi AddColumns dengan Sum,Average ... dan fungsi agregat lain untuk menambah lajur baru, yang merupakan agregat jadual kumpulan.
- Gunakan fungsi DropColumns untuk melepaskan jadual kumpulan.
Ungroup cuba mengekalkan susunan asal rekod yang disalurkan kepada GroupBy. Ini tidak selalu boleh dilakukan (sebagai contoh, jika jadual asal mengandungi rekod kosong ).
Jadual ialah nilai dalam Power Apps, seperti string atau nombor. Anda boleh menentukan jadual sebagai argumen untuk fungsi dan fungsi boleh mengembalikan jadual. GroupBy dan Ungroup tidak mengubah suai jadual; sebaliknya mereka mengambil jadual sebagai hujah dan mengembalikan jadual yang berbeza. Lihat bekerja dengan jadual untuk butiran lanjut.
Nota
Sebelum Power Apps versi 3.24042, nama lajur telah ditentukan dengan rentetan teks menggunakan petikan berganda, dan jika disambungkan ke sumber data ia juga perlu menjadi nama logik. Sebagai contoh, nama logik"cr43e_name"dengan petikan berganda telah digunakan dan bukannya nama paparan Nama tanpa petikan. Untuk dan SharePoint sumber data Excel yang mengandungi nama lajur dengan ruang, setiap ruang telah ditentukan dengan "_x0020_", contohnya "Nama Lajur"sebagai "Column_x0020_Name". Selepas versi ini, semua app dikemas kini secara automatik kepada sintaks baharu yang diterangkan dalam artikel ini.
Sintaks
GroupBy(Jadual,ColumnName1 [, ColumnName2 , ... ],GroupColumnName)
- Jadual - Diperlukan. Jadual untuk dikumpulkan.
- ColumnNames - Diperlukan. Nama lajur dalam Jadual mengikut rekod kumpulan. Lajur ini menjadi lajur dalam menghasilkan jadual.
- GroupColumnName - Diperlukan. Nama lajur untuk storan data rekod bukan dalam ColumnName(s).
Nyahkumpulan( Jadual,Nama Lajur Kumpulan)
- Jadual - Diperlukan. Jadual untuk dinyahkumpul.
- GroupColumnName - Diperlukan. Lajur yang mengandungi persediaan data rekod dengan fungsi GroupBy.
Contoh
Cipta koleksi
- Tambah butang dan tetapkan sifat Teks supaya butang menunjukkan Asal.
- Tetapkan sifat OnSelect bagi butang Asal untuk formula ini:
ClearCollect( CityPopulations,
{ City: "London", Country: "United Kingdom", Population: 8615000},
{ City: "Berlin", Country: "Germany", Population: 3562000},
{ City: "Madrid", Country: "Spain", Population: 3165000},
{ City: "Rome", Country: "Italy", Population: 2874000},
{ City: "Paris", Country: "France", Population: 2273000},
{ City: "Hamburg", Country: "Germany", Population: 1760000},
{ City: "Barcelona", Country: "Spain", Population: 1602000},
{ City: "Munich", Country: "Germany", Population: 1494000},
{ City: "Milan", Country: "Italy", Population: 1344000}
)
Sambil menekan kekunci Alt, pilih butang Asal.
Anda hanya mencipta koleksi, dinamakan CityPopulations yang mengandungi data ini:
Untuk memaparkan koleksi ini, pilih Koleksi pada menu Fail dan kemudian pilih koleksi CityPopulations. Lima rekod pertama dalam koleksi muncul:
Rekod kumpulan
Tambahkan butang lain dan tetapkan sifat Teks untuk "Kumpulan".
Tetapkan sifat OnSelect bagi butang ini untuk formula ini:
ClearCollect( CitiesByCountry, GroupBy( CityPopulations, Country, Cities ) )
Sambil menekan kekunci Alt, pilih butang Kumpulan.
Anda baharu sahaja mencipta koleksi yang dinamakan CitiesByCountry yang mana rekod koleksi sebelumnya dikumpulkan mengikut lajur Negara.
Untuk memaparkan lima rekod pertama dalam koleksi ini, pilih Koleksi pada menu Fail.
Untuk memaparkan populasi bandar di negara/rantau, pilih ikon jadual dalam lajur Bandar untuk negara/rantau tersebut (contohnya, Jerman):
Penapis dan nyahkumpul rekod
Tambah butang lain dan tetapkan sifat Teks supaya butang menunjukkan Penapis.
Tetapkan sifat OnSelect bagi butang ini untuk formula ini:
ClearCollect( CitiesByCountryFiltered, Filter( CitiesByCountry, "e" dalam Country ) )
Sambil menekan kekunci Alt, pilih butang yang anda tambahkan.
Anda baharu sahaja mencipta koleksi ketiga yang dinamakan CitiesByCountryFiltered yang termasuk hanya negara yang mempunyai "e" dalam nama mereka (iaitu, bukan Sepanyol atau Itali).
Tambah satu lagi butang dan tetapkan sifat Teks supaya butang menunjukkan Nyahkumpul.
Tetapkan sifat OnSelect bagi butang ini untuk formula ini:
ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Cities ) )
Yang menghasilkan:
Hasil agregat
Satu lagi operasi yang boleh kita lakukan pada jadual berkumpulan ialah menyusun keputusan. Dalam contoh ini, kami akan menjumlahkan penduduk bandar utama di setiap negara/rantau.
Tambah butang lain dan tetapkan sifat Teks supaya butang menunjukkan Jumlah.
Tetapkan sifat OnSelect bagi butang Jumlah untuk formula ini:
ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'Jumlah Penduduk Bandar', Sum( Bandar, Penduduk ) )
Yang menghasilkan:
AddColumns bermula dengan koleksi asas CitiesByCountry dan menambah lajur baharu Jumlah Populasi Bandar. Nilai lajur ini dikira baris demi baris berdasarkan pada formula Jumlah( Bandar, Populasi ). AddColumns menyediakan nilai lajur Bandar (jadual) untuk setiap baris dan Jumlah menambah Populasi untuk setiap baris sub jadual ini.
Sekarang kita mempunyai jumlah yang kita mahu, kita boleh menggunakan DropColumns untuk mengalih keluar subjadual.
Tambah butang lain dan tetapkan sifat Teks supaya butang menunjukkan SumOnly.
Tetapkan sifat OnSelect bagi butang SumOnly untuk formula ini:
ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, Bandar ) )
Yang menghasilkan:
Perhatikan bahawa kami tidak perlu menyahkumpul jadual ini.