Kongsi melalui


Fungsi GroupBy dan Leraikan

Digunakan pada: Aplikasi kanvas Apl berpandukan 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:

Nyahkumpul cuba mengekalkan pesanan asal rekod yang diberikan 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 Nyahkumpul tidak mengubah suai jadual; sebaliknya ia mengambil jadual sebagai argumen dan mengembalikan jadual berbeza. Lihat bekerja dengan jadual untuk butiran lanjut.

Nota

Sebelum Power Apps versi 3.24042, nama lajur ditentukan dengan rentetan teks menggunakan petikan berganda dan jika disambungkan ke sumber data ia juga perlu nama logik. Sebagai contoh, nama logik"cr43e_name" dengan petikan berganda digunakan dan bukannya nama paparan Nama tanpa petikan. Untuk SharePoint dan sumber data Excel yang mengandungi nama lajur dengan ruang, setiap ruang ditentukan dengan "_x0020_", contohnya "Nama Lajur" sebagai "Column_x0020_Name". Selepas versi ini, semua apl telah dikemas kini secara automatik kepada sintaks baharu yang diterangkan dalam artikel ini.

Sintaks

GroupBy( Jadual, ColumnName1 [, ColumnName2, ... ], GroupColumnName )

  • Table - Diperlukan. Jadual untuk dikumpulkan.
  • ColumnName(s) - 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).

Nyahkumpul( Jadual, GroupColumnName )

  • Table - Diperlukan. Jadual untuk dinyahkumpul.
  • GroupColumnName - Diperlukan. Lajur yang mengandungi persediaan data rekod dengan fungsi GroupBy.

Contoh

Cipta koleksi

  1. Tambah butang dan tetapkan sifat Teks supaya butang menunjukkan Asal.
  2. 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}
)
  1. Sambil menekan kekunci Alt, pilih butang Asal.

    Anda hanya mencipta koleksi, dinamakan CityPopulations yang mengandungi data ini:

    Contoh CityPopulations.

  2. Untuk memaparkan koleksi ini, pilih Koleksi pada menu Fail dan kemudian pilih koleksi CityPopulations. Lima rekod pertama dalam koleksi muncul:

    Koleksi CityPopulations.

Rekod kumpulan

  1. Tambahkan butang lain dan tetapkan sifat Teks untuk "Kumpulan".

  2. Tetapkan sifat OnSelect bagi butang ini untuk formula ini:

    ClearCollect( CitiesByCountry, GroupBy( CityPopulations, Country, Cities ) )

  3. Sambil menekan kekunci Alt, pilih butang Kumpulan.

    Anda baharu sahaja mencipta koleksi yang dinamakan CitiesByCountry yang mana rekod koleksi sebelumnya dikumpulkan mengikut lajur Negara.

    Bandar dikumpulkan.

  4. Untuk memaparkan lima rekod pertama dalam koleksi ini, pilih Koleksi pada menu Fail.

    Bandar mengikut negara/rantau.

  5. Untuk memaparkan populasi bandar di negara/rantau, pilih ikon jadual dalam lajur Bandar untuk negara/rantau tersebut (contohnya, Jerman):

    Penduduk - Jerman.

Penapis dan nyahkumpul rekod

  1. Tambah butang lain dan tetapkan sifat Teks supaya butang menunjukkan Penapis.

  2. Tetapkan sifat OnSelect bagi butang ini untuk formula ini:

    ClearCollect( CitiesByCountryFiltered, Filter( CitiesByCountry, "e" dalam Negara ) )

  3. 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).

    CitiesByCountryFiltered.

  4. Tambah satu lagi butang dan tetapkan sifat Teks supaya butang menunjukkan Nyahkumpul.

  5. Tetapkan sifat OnSelect bagi butang ini untuk formula ini:

    ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Cities ) )

    Yang menghasilkan:

    Bandar mengikut negara/rantau selepas dibongkarkan.

Hasil agregat

Satu lagi operasi yang boleh kita lakukan pada jadual terkumpul adalah untuk menyusun hasilnya. Dalam contoh ini, kita akan menjumlahkan populasi bandar-bandar utama di setiap negara/rantau.

  1. Tambah butang lain dan tetapkan sifat Teks supaya butang menunjukkan Jumlah.

  2. Tetapkan sifat OnSelect bagi butang Jumlah untuk formula ini:

    ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'Jumlah Penduduk Bandar', Jumlah( Bandar, Penduduk ) ) )

    Yang menghasilkan:

    Jumlah bandar.

    AddColumns bermula dengan koleksi CitiesByCountry asas dan menambah lajur baharu Jumlah Populasi Bandar. Nilai lajur ini dikira baris demi baris berdasarkan pada formula Jumlah( Bandar, Populasi ). AddColumns memberikan nilai lajur Bandar (jadual) untuk setiap baris dan Sum menambah Populasi untuk setiap baris subjadual ini.

    Sekarang kita mempunyai jumlah yang kita mahu, kita boleh menggunakan DropColumns untuk mengalih keluar subjadual.

  3. Tambah butang lain dan tetapkan sifat Teks supaya butang menunjukkan SumOnly.

  4. Tetapkan sifat OnSelect bagi butang SumOnly untuk formula ini:

    ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, Cities ) )

    Yang menghasilkan:

    Jumlah negara.

    Perhatikan bahawa kami tidak perlu menyahkumpul jadual ini.