Поділитися через


Функції GroupBy та Ungroup

Застосовується до: програм Canvas Програм на основі моделі

Групування та розгрупування записівтаблиці.

Опис

Функція GroupBy повертає таблицю із записами, згрупованими на основі значень в одному або декількох стовпцях. Записи в одній групі поміщаються в один запис із доданим стовпцем, у якому міститься вкладена таблиця решти стовпців.

Функція Ungroup відміняє процес GroupBy. Ця функція повертає таблицю, розбиваючи в ній записи, які були згруповані раніше, на окремі записи.

Можна згрупувати записи за допомогою функції GroupBy, змінити таблицю, повернуту цією функцією, а потім розгрупувати записи в зміненій таблиці, скориставшись функцією Ungroup. Наприклад, можна видалити групу записів, виконавши зазначені нижче кроки.

  • Застосуйте функцію GroupBy.
  • Використайте функцію Filter для видалення всієї групи записів.
  • Застосуйте функцію Ungroup.

Також можна об’єднати результати на основі групування.

  • Застосуйте функцію GroupBy.
  • Використовуйте функцію AddColumns із функціями Sum, Average та іншими агрегатними функціями, щоб додати новий стовпець, який є сукупністю групових таблиць.
  • Використайте функцію DropColumns, щоб розгорнути групову таблицю.

Функція Ungroup намагається зберігати початковий порядок записів, переданих на обробку функцією GroupBy. Це не завжди можливо (наприклад, якщо вихідна таблиця містить пусті записи).

Таблиця – це значення в Power Apps, подібне до рядка або числа. Таблицю можна вказати як аргумент функції, а функція може повернути таблицю. Функції GroupBy та Ungroup не змінюють таблицю; натомість вони обробляють таблицю як аргумент і повертають іншу таблицю. Додаткові відомості див. в розділі Робота з таблицями.

Нотатка

До Power Apps версії 3.24042 назви стовпців вказувалися текстовим рядком з використанням подвійних лапок, і якщо вони були підключені до джерело даних, вони також повинні були бути логічними іменами. Наприклад, замість відображуваного імені Ім’я без лапок було використано логічне ім’я "cr43e_name" з подвійними лапками . Для SharePoint джерел даних і джерел даних Excel, які містять імена стовпців із пробілами, кожен пробіл указувався за допомогою «_x0020_», наприклад «Ім’я стовпця» як «Column_x0020_Name». Після цієї версії всі програми були автоматично оновлені до нового синтаксису, описаного в цій статті.

Синтаксис

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

  • Table – обов’язковий аргумент. Таблиця, яку потрібно згрупувати.
  • ColumnName(s) — обов'язковий аргумент. Імена стовпців у таблиці, за якими потрібно групувати записи. Ці стовпці стають стовпцями отриманої таблиці.
  • GroupColumnName – обов’язковий аргумент. Ім’я стовпця для зберігання даних запису за межами ColumnName(s).

Ungroup( Table, GroupColumnName )

  • Table – обов’язковий аргумент. Таблиця, яку потрібно розгрупувати.
  • GroupColumnName – обов’язковий аргумент. Стовпець, що містить дані запису, оброблені функцією GroupBy.

Приклади

Створення набору

  1. Додайте кнопку та настройте її властивість Text на відображення слова Original (Вихідна).
  2. Настройте властивість OnSelect кнопки з ім’ям Original відповідно до нижчезазначеної формули.
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. Утримуючи натиснутою клавішу Alt, виберіть кнопку Original.

    Щойно було створено колекцію з іменем CityPopulations (Чисельність населення міст), що містить наведені нижче дані.

    Приклад CityPopulations.

  2. Для відображення цієї колекції виберіть елемент Колекції в меню Файл, а потім – колекцію CityPopulations. Відобразяться перші п’ять записів у колекції.

    Колекція CityPopulations.

Групування записів

  1. Додайте іншу кнопку та настройте її властивість Text на відображення слова Group (Групування).

  2. Настройте властивість OnSelect цієї кнопки відповідно до зазначеної нижче формули.

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

  3. Утримуючи натиснутою клавішу Alt, виберіть кнопку Group.

    Щойно було створено колекцію з іменем CitiesByCountry (Міста за країною), у якій записи попередньої колекції згруповані за стовпцем Country (Країна).

    Згруповані за містами.

  4. Для відображення перших п’яти записів у цій колекції виберіть Колекції в меню Файл.

    Міста за країнами або регіонами.

  5. Щоб відобразити чисельність населення міст у країні або регіоні, виберіть піктограму таблиці у стовпці Міста для цієї країни або регіону (наприклад, Німеччини):

    Населення – Німеччина.

Фільтрація та розгрупування записів

  1. Додайте іншу кнопку та настройте її властивість Text на відображення слова Filter (Фільтрація).

  2. Настройте властивість OnSelect цієї кнопки відповідно до зазначеної нижче формули.

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

  3. Утримуючи натиснутою клавішу Alt, виберіть додану кнопку.

    Щойно було створено третю колекцію з ім’ям CitiesByCountryFiltered (Міста за країною/регіоном, відфільтровані), що містить тільки країни/регіони, в англомовних назвах яких є літера «e» (тобто не Іспанія або Італія).

    CitiesByCountryFiltered.

  4. Додайте ще одну кнопку та настройте її властивість Text на відображення слова Ungroup (Розгрупування).

  5. Настройте властивість OnSelect цієї кнопки відповідно до зазначеної нижче формули.

    ClearCollect( МістаНаселенняНезгруповані, Розгруповані( МістаЗаКраїноюВідфільтровані, Міста ) )

    У результаті буде отримано таку таблицю.

    Міста за країнами або регіонами після розгрупування.

Об’єднання результатів

Ще одна операція, яку ми можемо виконати над згрупованою таблицею, — це компіляція результатів. У цьому прикладі ми підсумуємо населення великих міст кожної країни або регіону.

  1. Додайте чергову кнопку та настройте її властивість Text на відображення слова Sum (Підсумовування).

  2. Настройте властивість OnSelect кнопки Sum відповідно до нижчезазначеної формули.

    ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, ’Сума населення міста’, Sum( Міста, населення ) ) )

    У результаті буде отримано таку таблицю.

    Кількість міст.

    ФункціяAddColumns розпочне з базової колекції CitiesByCountry та додасть новий стовпець з ім’ям Sum of City Populations. Значення цього стовпця обчислюються рядок за рядком залежно від формули Sum( Cities, Population ). Функція AddColumns надає значення стовпця Cities (у таблиці) для кожного рядка, а функція Sum додає значення стовпця Population для кожного рядка цієї вкладеної таблиці.

    Тепер, коли в нас є потрібна сума, можна використати функцію DropColumns, щоб видалити вкладені таблиці.

  3. Додайте іншу кнопку та настройте її властивість Text на відображення слова SumOnly (Підсумовування тільки...).

  4. Настройте властивість OnSelect кнопки SumOnly відповідно до наведеної нижче формули.

    ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, Cities ) )

    У результаті буде отримано таку таблицю.

    Кількість країн.

    Зверніть увагу, що цю таблицю не потрібно було розгруповувати.