SUMMARIZE
Область применения: вычисление вычисляемого столбца вычисляемой таблицы Меры визуального элемента
Возвращает сводную таблицу для запрошенных итогов по набору групп.
SUMMARIZE (<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, <name>, <expression>]…)
Термин | Определение |
---|---|
table | Любое выражение DAX, возвращающее таблицу данных. |
groupBy_ColumnName | (Необязательно) Полное имя существующего столбца, используемого для создания сводных групп на основе значений, найденных в нем. Этот параметр не может быть выражением. |
name | Имя, заданное общему столбцу или сводке, заключенному в двойные кавычки. |
выражение | Любое выражение DAX, возвращающее одно скалярное значение, где выражение вычисляется несколько раз (для каждой строки или контекста). |
Таблица с выбранными столбцами для аргументов groupBy_columnName и суммированных столбцов, разработанных аргументами имени.
Каждый столбец, для которого определяется имя, должно иметь соответствующее выражение; в противном случае возвращается ошибка. Первый аргумент, имя, определяет имя столбца в результатах. Второй аргумент, выражение, определяет вычисление, выполняемое для получения значения для каждой строки в этом столбце.
groupBy_columnName должны находиться в таблице или в связанной таблице.
Каждое имя должно быть заключено в двойные кавычки.
Функция группирует выбранный набор строк в набор суммарных строк по значениям одного или нескольких столбцов groupBy_columnName. Для каждой группы возвращается одна строка.
Эта функция не поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах или правилах безопасности на уровне строк (RLS).
В следующем примере возвращается сводка по продажам торгового посредника, сгруппированного по календарю и имени категории продукта, эта таблица результатов позволяет выполнять анализ продаж торгового посредника по годам и категории продуктов.
SUMMARIZE(ResellerSales_USD
, DateTime[CalendarYear]
, ProductCategory[ProductCategoryName]
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
В следующей таблице показана предварительная версия данных по мере получения любой функцией, ожидающей получения таблицы:
DateTime[CalendarYear] | ProductCategory[ProductCategoryName] | [Сумма продаж (USD)] | [Сумма скидки (USD)] |
---|---|---|---|
2008 | Велосипеды | 12968255.42 | 36167.6592 |
2005 | Велосипеды | 6958251.043 | 4231.1621 |
2006 | Велосипеды | 18901351.08 | 178175.8399 |
2007 | Велосипеды | 24256817.5 | 276065.992 |
2008 | Компоненты | 2008052.706 | 39.9266 |
2005 | Компоненты | 574256.9865 | 0 |
2006 | Компоненты | 3428213.05 | 948.7674 |
2007 | Компоненты | 5195315.216 | 4226.0444 |
2008 | Clothing | 366507.844 | 4151.1235 |
2005 | Clothing | 31851.1628 | 90.9593 |
2006 | Clothing | 455730.9729 | 4233.039 |
2007 | Clothing | 815853.2868 | 12489.3835 |
2008 | Аксессуары | 153299.924 | 865.5945 |
2005 | Аксессуары | 18594.4782 | 4.293 |
2006 | Аксессуары | 86612.7463 | 1061.4872 |
2007 | Аксессуары | 275794.8403 | 4756.6546 |
Добавление синтаксиса ROLLUP изменяет поведение функции СУММКE путем добавления строк свертки в результат в столбцы groupBy_columnName. ROLLUP можно использовать только в выражении SUMMARIZE.
В следующем примере добавляются строки свертки в столбцы вызова функции СУММТE:
SUMMARIZE(ResellerSales_USD
, ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
Возвращает следующую таблицу:
DateTime[CalendarYear] | ProductCategory[ProductCategoryName] | [Сумма продаж (USD)] | [Сумма скидки (USD)] |
---|---|---|---|
2008 | Велосипеды | 12968255.42 | 36167.6592 |
2005 | Велосипеды | 6958251.043 | 4231.1621 |
2006 | Велосипеды | 18901351.08 | 178175.8399 |
2007 | Велосипеды | 24256817.5 | 276065.992 |
2008 | Компоненты | 2008052.706 | 39.9266 |
2005 | Компоненты | 574256.9865 | 0 |
2006 | Компоненты | 3428213.05 | 948.7674 |
2007 | Компоненты | 5195315.216 | 4226.0444 |
2008 | Clothing | 366507.844 | 4151.1235 |
2005 | Clothing | 31851.1628 | 90.9593 |
2006 | Clothing | 455730.9729 | 4233.039 |
2007 | Clothing | 815853.2868 | 12489.3835 |
2008 | Аксессуары | 153299.924 | 865.5945 |
2005 | Аксессуары | 18594.4782 | 4.293 |
2006 | Аксессуары | 86612.7463 | 1061.4872 |
2007 | Аксессуары | 275794.8403 | 4756.6546 |
2008 | 15496115.89 | 41224.3038 | |
2005 | 7582953.67 | 4326.4144 | |
2006 | 22871907.85 | 184419.1335 | |
2007 | 30543780.84 | 297538.0745 | |
76494758.25 | 527507.9262 |
Добавление ROLLUPGROUP в синтаксис ROLLUP можно использовать для предотвращения частичных промежуточных итогов в строках свертки. ROLLUPGROUP можно использовать только в выражении ROLLUP, ROLLUPADDISSUBTOTAL или ROLLUPISSUBTOTAL.
В следующем примере показан только общий итог всех лет и категорий без промежуточных итогов каждого года со всеми категориями:
SUMMARIZE(ResellerSales_USD
, ROLLUP(ROLLUPGROUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName]))
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
Возвращает следующую таблицу:
DateTime[CalendarYear] | ProductCategory[ProductCategoryName] | [Сумма продаж (USD)] | [Сумма скидки (USD)] |
---|---|---|---|
2008 | Велосипеды | 12968255.42 | 36167.6592 |
2005 | Велосипеды | 6958251.043 | 4231.1621 |
2006 | Велосипеды | 18901351.08 | 178175.8399 |
2007 | Велосипеды | 24256817.5 | 276065.992 |
2008 | Компоненты | 2008052.706 | 39.9266 |
2005 | Компоненты | 574256.9865 | 0 |
2006 | Компоненты | 3428213.05 | 948.7674 |
2007 | Компоненты | 5195315.216 | 4226.0444 |
2008 | Clothing | 366507.844 | 4151.1235 |
2005 | Clothing | 31851.1628 | 90.9593 |
2006 | Clothing | 455730.9729 | 4233.039 |
2007 | Clothing | 815853.2868 | 12489.3835 |
2008 | Аксессуары | 153299.924 | 865.5945 |
2005 | Аксессуары | 18594.4782 | 4.293 |
2006 | Аксессуары | 86612.7463 | 1061.4872 |
2007 | Аксессуары | 275794.8403 | 4756.6546 |
76494758.25 | 527507.9262 |
С помощью ISSUBTOTAL можно создать другой столбец в выражении SUMMARIZE, возвращающий значение True, если строка содержит промежуточные значения столбца, заданного в качестве аргумента ISSUBTOTAL, в противном случае возвращает значение False. ISSUBTOTAL можно использовать только в выражении SUMMARIZE.
В следующем примере создается столбец ISSUBTOTAL для каждого столбца ROLLUP в заданном вызове функции SUMMARIZE:
SUMMARIZE(ResellerSales_USD
, ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
, "Is Sub Total for DateTimeCalendarYear", ISSUBTOTAL(DateTime[CalendarYear])
, "Is Sub Total for ProductCategoryName", ISSUBTOTAL(ProductCategory[ProductCategoryName])
)
Возвращает следующую таблицу:
[Общее значение для DateTimeCalendarYear] | [Вложено общее значение для ProductCategoryName] | DateTime[CalendarYear] | ProductCategory[ProductCategoryName] | [Сумма продаж (USD)] | [Сумма скидки (USD)] |
---|---|---|---|---|---|
FALSE | FALSE | ||||
FALSE | FALSE | 2008 | Велосипеды | 12968255.42 | 36167.6592 |
FALSE | FALSE | 2005 | Велосипеды | 6958251.043 | 4231.1621 |
FALSE | FALSE | 2006 | Велосипеды | 18901351.08 | 178175.8399 |
FALSE | FALSE | 2007 | Велосипеды | 24256817.5 | 276065.992 |
FALSE | FALSE | 2008 | Компоненты | 2008052.706 | 39.9266 |
FALSE | FALSE | 2005 | Компоненты | 574256.9865 | 0 |
FALSE | FALSE | 2006 | Компоненты | 3428213.05 | 948.7674 |
FALSE | FALSE | 2007 | Компоненты | 5195315.216 | 4226.0444 |
FALSE | FALSE | 2008 | Clothing | 366507.844 | 4151.1235 |
FALSE | FALSE | 2005 | Clothing | 31851.1628 | 90.9593 |
FALSE | FALSE | 2006 | Clothing | 455730.9729 | 4233.039 |
FALSE | FALSE | 2007 | Clothing | 815853.2868 | 12489.3835 |
FALSE | FALSE | 2008 | Аксессуары | 153299.924 | 865.5945 |
FALSE | FALSE | 2005 | Аксессуары | 18594.4782 | 4.293 |
FALSE | FALSE | 2006 | Аксессуары | 86612.7463 | 1061.4872 |
FALSE | FALSE | 2007 | Аксессуары | 275794.8403 | 4756.6546 |
FALSE | TRUE | ||||
FALSE | TRUE | 2008 | 15496115.89 | 41224.3038 | |
FALSE | TRUE | 2005 | 7582953.67 | 4326.4144 | |
FALSE | TRUE | 2006 | 22871907.85 | 184419.1335 | |
FALSE | TRUE | 2007 | 30543780.84 | 297538.0745 | |
TRUE | TRUE | 76494758.25 | 527507.9262 |