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


Функция резюмирования

Применимо к: Power Pages

Обобщите записи таблицы , сгруппировав их по одному или нескольким столбцам .

Description

Используйте функцию Summarize , чтобы сгруппировать записи таблицы и суммировать столбцы в группе.

Первый аргумент Summarize — это таблица, с которой нужно работать. Остальные аргументы могут располагаться в любом порядке и делятся на две категории:

  • Группируйте имена столбцов. Используйте их, чтобы указать, по каким столбцам следует выполнять группировку.
  • Формулы резюмирования. Используйте их для суммирования столбцов в таблице ThisGroup . ThisGroup — это таблица, которая содержит все столбцы исходной таблицы, но ограничена только записями одной группы за раз на основе столбцов группы. Каждая формула должна быть названа как имя столбца в таблице результатов.

Таблица в Power Apps считается значением, как любая строка или число. Вы можете указать таблицу в качестве аргумента для функции, и функция может возвращать таблицу. Summarize не изменяет таблицу; вместо этого он принимает таблицу в качестве аргумента и возвращает другую таблицу. Подробнее см. раздел Работа с таблицами.

Делегирование

Summarize может быть делегирован в зависимости от источник данных и сложности формул суммирования. Базовые агрегатные функции, такие как Sum, Average, Max, Min, CountRows и Concat , имеют хорошие шансы быть делегированными.

Если полное делегирование формулы невозможно, среда разработки отмечает часть, которую невозможно делегировать, предупреждением. По возможности следует изменить формулу, чтобы избежать функций и операторов, которые невозможно делегировать.

Для получения дополнительной информации см. обзор делегирования.

Синтаксис

Суммировать( Таблица, GroupByColumnName1 [, GroupByColumnName2 , ... ] [, SummarizeColumns As SummarizeNames, ...] )

  • Таблица - Обязательно. Таблица будет обобщена.
  • GroupByColumnNames - Требуется хотя бы один. Имена столбцов из таблицы Table, по которой следует сгруппировать записи. Эти столбцы становятся столбцами в итоговой таблице.
  • SummarizeColumns - Необязательно. Формула суммирования по таблице ThisGroup для каждой группы.
  • SummarizeNames - Требуется для каждого SummarizeColumn. Каждый суммированный столбец должен быть явно назван для выходной таблицы.

Примеры

Простой пример

  1. Создайте таблицу на своем Power Fx хосте с этим примером данных:
Set( CityPopulations,
   Table(
        { 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. Оцените следующую формулу:
Summarize( CityPopulations, Country,
           Sum( ThisGroup, Population ) As 'Total Population',
           Concat( ThisGroup, City, ", " ) As Cities 
)

В результате получилась следующая таблица:

Country Общая численность населения Города
Соединенное Королевство 8615000 Лондон
Германия 6816000 Берлин, Гамбург, Мюнхен
Испания 4767000 Мадрид, Барселона
Италия 4218000 Рим, Милан
Франция 2273000 Париж

Несколько групповых столбцов

  1. Создайте таблицу на своем Power Fx хосте с этим примером данных:
Set( Inventory, 
   Table(
      {Supplier:"Contoso",  Fruit:"Grapes",  Price:220, Purchase:Date(2015,10,1), Tags: ["Red","Seedless"]},
      {Supplier:"Fabrikam", Fruit:"Lemons",  Price:31,  Purchase:Date(2015,10,1), Tags: ["Colombia"]},
      {Supplier:"Contoso",  Fruit:"Lemons",  Price:29,  Purchase:Date(2015,10,2), Tags: ["Peru"]},
      {Supplier:"Contoso",  Fruit:"Grapes",  Price:210, Purchase:Date(2015,10,2), Tags: ["Green","Seedless"]},
      {Supplier:"Fabrikam", Fruit:"Lemons",  Price:30,  Purchase:Date(2015,10,3), Tags: ["Mexico","Seedless"]},
      {Supplier:"Contoso",  Fruit:"Bananas", Price:12,  Purchase:Date(2015,10,3), Tags: ["Mexico"]}
   )
)
  1. Оцените следующую формулу:
Summarize( Inventory, Supplier, Fruit, Average( ThisGroup, Price ) As 'Average Price' )
Фрукты Поставщик Средняя цена
Виноград Contoso 215
Лимоны Fabrikam 30.5
Лимоны Contoso 29
Бананы Contoso 12