GroupBy và các Ungroup hàm

Function Áp dụng cho
GroupBy Ứng dụng Canvas Các ứng dụng dựa trên mô hình Trang Nguồn
Ungroup Ứng dụng Canvas Ứng dụng dựa trên mô hình

Nhóm và hủy nhóm các bản ghi của một bảng.

Description

Hàm GroupBy trả về một bảng có các bản ghi được nhóm lại với nhau dựa trên các giá trị trong một hoặc nhiều cột. Các bản ghi trong cùng một nhóm được đặt vào một bản ghi duy nhất, có thêm cột chứa một bảng lồng ghép chứa các cột còn lại.

Hàm Ungroup đảo ngược quá GroupBy trình. Hàm này trả về một bảng, chia bất kỳ bản ghi nào đã được nhóm lại với nhau thành các bản ghi riêng biệt.

Bạn có thể nhóm các bản ghi bằng GroupBycách sử dụng , sửa đổi bảng trả về, rồi hủy nhóm các bản ghi trong bảng đã sửa đổi bằng cách sử dụng Ungroup. Ví dụ: bạn có thể xóa một nhóm các bản ghi theo phương pháp sau:

  • Sử dụng GroupBy hàm.
  • Sử dụng hàm Filter để loại bỏ toàn bộ nhóm bản ghi.
  • Sử dụng Ungroup hàm.

Bạn cũng có thể tổng hợp kết quả bằng cách nhóm:

  • Sử dụng GroupBy hàm.
  • Sử dụng hàm AddColumns với Sum, Average và các hàm tổng hợp khác để thêm một cột mới, là tổng hợp của các bảng nhóm.
  • Sử dụng hàm DropColumns để loại bỏ bảng nhóm.

Ungroup cố gắng giữ lại thứ tự ban đầu của các bản ghi được cung cấp cho GroupBy. Không phải lúc nào cũng có thể làm điều này (ví dụ: nếu bảng gốc chứa bản ghi blank).

Bảng là một giá trị trong Power Apps, giống như một chuỗi hoặc số. Bạn có thể chỉ định một bảng làm đối số cho hàm và hàm có thể trả về một bảng. GroupByUngroup không sửa đổi bảng; thay vào đó, chúng lấy bảng làm đối số và trả về bảng khác. Xem phần thao tác với bảng để biết thêm chi tiết.

Lưu ý

Trước phiên bản 3.24042, tên cột được chỉ định bằng chuỗi văn bản sử dụng dấu ngoặc kép và nếu được kết nối với nguồn dữ liệu, chúng cũng cần phải là tên logic. Power Apps Ví dụ, tên logic "cr43e_name" có dấu ngoặc kép đã được sử dụng thay cho tên hiển thị Tên không có dấu ngoặc kép. Đối với SharePoint và các nguồn dữ liệu Excel có chứa tên cột có khoảng trắng, mỗi khoảng trắng được chỉ định bằng "_x0020_", ví dụ "Tên cột""Tên cột_x0020". Sau phiên bản này, tất cả các ứng dụng đều được tự động cập nhật theo cú pháp mới được mô tả trong bài viết này.

Cú pháp

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

  • Bảng - Bắt buộc. Bảng cần nhóm.
  • ColumnNames - Bắt buộc. Tên cột trong Bảng cần nhóm các bản ghi. Hàm sẽ trả về một bảng gồm các cột này.
  • GroupColumnName - Bắt buộc. Tên cột để lưu trữ dữ liệu bản ghi không có trong ColumnName(s).

Ungroup( Table, GroupColumnName )

  • Bảng - Bắt buộc. Bảng cần hủy nhóm.
  • GroupColumnName - Bắt buộc. Cột chứa thiết lập dữ liệu bản ghi với hàm GroupBy .

Ví dụ

Tạo bộ sưu tập

  1. Thêm một nút rồi đặt thuộc tính Văn bản của nút này sao cho nút sẽ hiển thị Original.
  2. Đặt thuộc tính OnSelect của nút Original thành công thức sau:
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. Nhấn và giữ phím Alt, đồng thời chọn nút Original.

    Bạn vừa tạo một bộ sưu tập tên là CityPopulation có chứa dữ liệu sau:

    Ví dụ về CityPopulations.

  2. Để hiển thị bộ sưu tập này, hãy chọn Collections (Bộ sưu tập) trên menu File (Tệp), sau đó chọn bộ sưu tập CityPopulation. Năm bản ghi đầu tiên trong bộ sưu tập xuất hiện:

    Bộ sưu tập CityPopulations.

Nhóm các bản ghi

  1. Thêm một nút khác rồi đặt thuộc tính Văn bản của nút này thành "Group".

  2. Đặt thuộc tính OnSelect của nút này thành công thức sau:

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

  3. Nhấn và giữ phím Alt, đồng thời chọn nút Group.

    Bạn vừa tạo một bộ sưu tập tên là CitiesByCountry, trong đó các bản ghi của bộ sưu tập trước được nhóm theo cột Country (Quốc gia).

    Các thành phố được nhóm lại.

  4. Để hiển thị năm bản ghi đầu tiên trong bộ sưu tập này, hãy chọn Collections (Bộ sưu tập) trên menu File.

    Các thành phố theo quốc gia/khu vực.

  5. Để hiển thị dân số của các thành phố trong một quốc gia/khu vực, hãy chọn biểu tượng bảng trong cột Thành phố của quốc gia/khu vực đó (ví dụ: Đức):

    Dân số - Đức.

Lọc và hủy nhóm bản ghi

  1. Thêm một nút khác rồi đặt thuộc tính Văn bản của nút này sao cho nút sẽ hiển thị Filter.

  2. Đặt thuộc tính OnSelect của nút này thành công thức sau:

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

  3. Nhấn và giữ phím Alt, đồng thời chọn nút bạn đã thêm.

    Bạn vừa tạo một bộ sưu tập thứ ba tên là CitiesByCountryFiltered. Bộ sưu tập này chỉ bao gồm những quốc gia có chữ "e" trong tên (nghĩa là không phải Tây Ban Nha hoặc Ý).

    CitiesByCountryFiltered.

  4. Thêm một nút nữa và đặt thuộc tính Văn bản để nút hiển thị "Ungroup".

  5. Đặt thuộc tính OnSelect của nút này thành công thức sau:

    ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Cities )

    Kết quả như sau:

    Các thành phố theo quốc gia/khu vực sau khi tách nhóm.

Tổng hợp kết quả

Một thao tác khác chúng ta có thể thực hiện trên bảng được nhóm là biên dịch kết quả. Trong ví dụ này, chúng tôi sẽ tính tổng dân số của các thành phố lớn ở mỗi quốc gia/khu vực.

  1. Thêm một nút khác rồi đặt thuộc tính Văn bản của nút này sao cho nút sẽ hiển thị Sum.

  2. Đặt thuộc tính OnSelect của nút Sum thành công thức sau:

    ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'Tổng dân số thành phố', Sum( Cities, Dân số ) ) )

    Kết quả như sau:

    Tổng số thành phố.

    AddColumns bắt đầu với bộ sưu tập cơ sở CitiesByCountry và thêm một cột mới Tổng dân số thành phố. Các giá trị của cột này được tính theo từng hàng, dựa trên công thức Sum( Cities, Population ). AddColumns cung cấp giá trị của cột Cities (một bảng) cho mỗi hàng và Sum cộng tổng Dân số cho mỗi hàng của bảng con này.

    Khi đã thu được tổng mong muốn, chúng ta có thể sử dụng hàm DropColumn để loại bỏ các bảng phụ.

  3. Thêm một nút khác rồi đặt thuộc tính Văn bản của nút này sao cho nút sẽ hiển thị SumOnly.

  4. Đặt thuộc tính OnSelect của nút SumOnly thành công thức sau:

    ClearCollect(CityPopulationsSumOnly, DropColumns(CityPopulationsSum, Cities ) )

    Kết quả như sau:

    Tổng số quốc gia.

    Lưu ý rằng chúng ta không cần hủy nhóm đối với bảng này.