Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
| Функция | Применимо к |
|---|---|
| GroupBy |
|
| Ungroup |
|
Эти функции группируют записитаблицы и отменяют их группировку.
Description
Функция 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_", например "Имя столбца" как "Имя_x0020_столбца". После этой версии все приложения были автоматически обновлены до нового синтаксиса, описанного в этой статье.
Синтаксис
GroupBy( Table, ColumnName1 [, ColumnName2, ... ], GroupColumnName )
- Таблица - Обязательно. Таблица, которую нужно сгруппировать.
- ColumnNames - Обязательно. Имена столбцов из таблицы Table, по которой следует сгруппировать записи. Эти столбцы становятся столбцами в итоговой таблице.
- GroupColumnName - Обязательно. Имя столбца для хранения данных, не включенных в столбцы ColumnName.
Ungroup( Table, GroupColumnName )
- Таблица - Обязательно. Таблица, которую нужно разгруппировать.
- GroupColumnName - Обязательно. Столбец, содержащий настройку данных записи с функцией GroupBy .
Примеры
Создание коллекции
- Добавьте кнопку и задайте для нее свойство Text, чтобы она отображала текст Исходные данные.
- Задайте для свойства OnSelect кнопки Исходные данные такую формулу:
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}
)
Удерживая клавишу ALT, нажмите кнопку Исходные данные.
Вы только что создали коллекцию с именем CityPopulations, которая содержит такие данные:
Чтобы отобразить эту коллекцию, выберите пункт Коллекции в меню Файл, затем выберите коллекцию CityPopulations. Отображаются первые пять записей из этой коллекции:
Записи группы
Добавьте еще одну кнопку и задайте для ее свойства Text значение Группировка.
Задайте для свойства OnSelect этой кнопки такую формулу:
ClearCollect( CitiesByCountry, ( CityPopulations, GroupByCountry, City ) )
Удерживая клавишу ALT, нажмите кнопку Группировка.
Вы только что создали коллекцию с именем CitiesByCountry, в которой записи из предыдущей коллекции сгруппированы по столбцу Country.
Чтобы отобразить первые пять записей из этой коллекции, выберите пункт Коллекции в меню Файл.
Чтобы отобразить население городов одной страны/региона, выберите значок таблицы в столбце Cities для строки с этой страной/регионом, например, Germany (Германия):
Фильтрация и разгруппировка записей
Добавьте еще одну кнопку и задайте для нее свойство Text, чтобы она отображала текст Фильтрация.
Задайте для свойства OnSelect этой кнопки такую формулу:
ClearCollect( CitiesByCountryFiltered, Filter( CitiesByCountry, "e" в Country ) )
Удерживая клавишу ALT, нажмите добавленную кнопку.
Вы только что создали третью коллекцию с именем CitiesByCountryFiltered, которая включает те страны, в имени которых есть буква "e" (мы исключили, например, Испанию (Spain) и Италию (Italy)).
Добавьте еще одну кнопку и задайте его свойство Text, чтобы кнопка отображала "Ungroup".
Задайте для свойства OnSelect этой кнопки такую формулу:
ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Города )
Вы получите такой результат:
Статистическая обработка результатов
Другая операция, которую мы можем выполнить над сгруппированной таблицей, — это компиляция результатов. В этом примере мы просуммируем население крупнейших городов в каждой стране или регионе.
Добавьте еще одну кнопку и задайте для нее свойство Text, чтобы она отображала текст "Сумма".
Задайте для свойства OnSelect кнопки "Сумма" эту формулу:
ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'Сумма населения городов', Sum( Cities, Population ) ) )
Вы получите такой результат:
AddColumns начинает с базовой коллекции CitiesByCountry и добавляет новый столбец Sum of City Populations. Значения для этого столбца вычисляются отдельно для каждой строки по формуле Sum( Cities, Population ). AddColumns предоставляет значение столбца Cities (таблицы) для каждой строки, а Sum суммирует Population для каждой строки этой подтаблицы.
Теперь мы получили нужную сумму и можем удалить вложенные таблицы с помощью функции DropColumns.
Добавьте еще одну кнопку и задайте для нее свойство Text, чтобы на ней отображался текст Только сумма.
Задайте для свойства OnSelect кнопки Только сумма эту формулу:
ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, Города )
Вы получите такой результат:
Обратите внимание, что мы обошлись без разгруппировки этой таблицы.