Bagikan melalui


Fungsi GroupBy dan Ungroup

Berlaku untuk: Aplikasi kanvas Aplikasi berdasarkan model

Membuat grup dan menghapus grup rekamantabel.

Description

Fungsi GroupBy menghasilkan tabel dengan rekaman yang dikelompokkan berdasarkan nilai pada satu atau beberapa kolom. Rekaman dalam grup yang sama ditempatkan dalam satu rekaman, dengan ditambahkan kolom yang menyarangkan tabel kolom yang tersisa.

Fungsi Ungroup membalikkan proses GroupBy. Fungsi ini menghasilkan tabel, memecahkan ke dalam rekaman terpisah dari rekaman yang dikelompokkan bersama.

Anda dapat membuat grup rekaman menggunakan GroupBy, ubah tabel yang akan dihasilkan, lalu melakukan menghapus grup rekaman dalam tabel yang dimodifikasi menggunakan Hapus grup. Misalnya, Anda dapat menghapus grup rekaman dengan mengikuti pendekatan ini:

  • Gunakan fungsi GroupBy.
  • Gunakan fungsi Filter untuk menghapus seluruh grup rekaman.
  • Gunakan fungsi Ungroup.

Anda juga dapat mengagregasikan hasil berdasarkan pengelompokan:

Ungroup mencoba mempertahankan urutan asli rekaman yang diumpankan ke GroupBy. Hal ini tidak selalu memungkinkan (misalnya, jika tabel asli berisi rekaman kosong).

Tabel adalah nilai dalam Power Apps, seperti string atau angka. Anda dapat menentukan tabel sebagai argumen untuk fungsi, dan fungsi dapat menghasilkan tabel. GroupBy dan Ungroup tidak memodifikasi tabel; sebaliknya mengambil tabel sebagai argumen dan menghasilkan tabel yang berbeda. Lihat: bekerja dengan tabel untuk detail lebih lanjut.

Catatan

Sebelum Power Apps versi 3.24042, nama kolom ditentukan dengan string teks menggunakan tanda kutip ganda, dan jika terhubung ke sumber data mereka juga harus nama logis. Misalnya, nama logis"cr43e_name" dengan tanda kutip ganda digunakan sebagai pengganti nama tampilan Nama tanpa tanda kutip. Untuk SharePoint dan sumber data Excel yang berisi nama kolom dengan spasi, setiap spasi ditentukan dengan "_x0020_", misalnya "Nama Kolom"sebagai"Column_x0020_Name". Setelah versi ini, semua aplikasi secara otomatis diperbarui ke sintaks baru yang dijelaskan dalam artikel ini.

Sintaks

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

  • Table – Wajib. Tabel yang akan dikelompokkan.
  • ColumnName(s) - Wajib. Nama kolom di Tabel yang digunakan untuk mengelompokkan rekaman. Kolom ini menjadi kolom dalam tabel hasil.
  • GroupColumnName - Wajib. Nama kolom untuk penyimpanan data rekaman tidak dalam ColumnName.

Ungroup( Table, GroupColumnName )

  • Table – Wajib. Tabel yang akan dihapus kelompoknya.
  • GroupColumnName - Wajib. Kolom yang berisi penyiapan data rekaman dengan fungsi GroupBy.

Contoh

Membuat koleksi

  1. Tambahkan tombol, dan atur properti Teks agar tombolnya menampilkan Asli.
  2. Atur properti OnSelect pada tombol "Asli" ke rumus 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 terus tombol Alt, pilih tombol Asli.

    Anda baru saja membuat koleksi, bernama CityPopulations, yang berisi data ini:

    Contoh CityPopulations.

  2. Untuk menampilkan koleksi ini, pilih Koleksi pada menu File, lalu pilih koleksi CityPopulations. Lima rekaman pertama dalam koleksi akan ditampilkan:

    Koleksi CityPopulations.

Rekaman grup

  1. Tambahkan tombol lain, dan atur properti Teks ke "Grup".

  2. Atur properti OnSelect dari tombol ini ke rumus ini:

    ClearCollect( CitiesByCountry, GroupBy( CityPopulations, Negara, Kota ))

  3. Sambil menekan terus tombol Alt, pilih tombol Grup.

    Anda baru saja membuat koleksi, bernama CitiesByCountry, di mana rekaman dari koleksi sebelumnya dikelompokkan berdasarkan kolom Country.

    Kota dikelompokkan.

  4. Untuk menampilkan lima rekaman pertama dalam koleksi ini, pilih Koleksi pada menu File.

    Kota menurut negara/kawasan.

  5. Untuk menampilkan populasi kota di negara/kawasan, pilih ikon tabel di kolom Kota untuk negara/kawasan tersebut (misalnya, Jerman):

    Populasi - Jerman.

Filter dan hapus grup rekaman

  1. Tambahkan tombol lainnya, dan atur properti Teks agar tombolnya menampilkan "Filter".

  2. Atur properti OnSelect dari tombol ini ke rumus ini:

    ClearCollect( CitiesByCountryFiltered, Filter( CitiesByCountry, "e" in Country ) )

  3. Sambil menekan terus tombol Alt, pilih tombol yang Anda tambahkan.

    Anda baru saja membuat koleksi ketiga, bernama CitiesByCountryFiltered, yang mencakup hanya negara yang memiliki "e" dalam namanya (yaitu, bukan Spanyol atau Italia).

    CitiesByCountryFiltered.

  4. Tambahkan satu tombol lainnya, dan atur properti Teks agar tombolnya menampilkan "Hapus grup".

  5. Atur properti OnSelect dari tombol ini ke rumus ini:

    ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Cities ) )

    Yang menghasilkan:

    Kota menurut negara/kawasan setelah dipisahkan grupnya.

Hasil agregat

Operasi lain yang dapat kita lakukan pada tabel yang dikelompokkan adalah mengkompilasi hasilnya. Dalam contoh ini, kami akan menjumlahkan populasi kota-kota besar di setiap negara/wilayah.

  1. Tambahkan tombol lainnya, dan atur properti Teks agar tombolnya menampilkan "Total".

  2. Atur properti OnSelect pada tombol Total ke rumus ini:

    ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'Jumlah Penduduk Kota', Sum(Kota, Populasi))

    Yang menghasilkan:

    Jumlah kota.

    AddColumns dimulai dengan dasar CitiesByCountry dan menambahkan kolom baru Jumlah Penduduk Kota. Nilai kolom ini dihitung baris demi baris, berdasarkan jumlah Sum( Cities, Population ). AddColumns memberikan nilai kolom Kota (tabel) untuk setiap baris, dan Sum menambahkan Populasi untuk setiap baris sub-tabel ini.

    Sekarang setelah kita memiliki jumlah yang kita inginkan, kita dapat menggunakan DropColumns untuk menghapus sub-tabel.

  3. Tambahkan tombol lainnya, dan atur properti Teks agar tombolnya menampilkan "SumOnly".

  4. Atur properti OnSelect pada tombol "SumOnly" ke rumus ini:

    ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, Kota ))

    Yang menghasilkan:

    Jumlah Negara.

    Perhatikan bahwa kita tidak perlu menghapus kelompok tabel ini.