SUMMARIZE
aplica-se a:coluna calculadatabela calculadaMeasurecálculo visual
Retorna uma tabela de resumo para os totais solicitados sobre um conjunto de grupos.
Sintaxe
SUMMARIZE (<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, <name>, <expression>]…)
Parâmetros
Termo | Definição |
---|---|
table |
Qualquer expressão DAX que retorna uma tabela de dados. |
groupBy_ColumnName |
(Opcional) O nome qualificado de uma coluna existente usada para criar grupos de resumo com base no values encontrado nela. Esse parâmetro não pode ser uma expressão. |
name |
O nome dado a uma coluna de orsummarize total, entre aspas duplas. |
expression |
Qualquer expressão DAX que retorna um único valueescalar, em que a expressão deve ser avaliada várias vezes (para cada linha/contexto). |
Retornar value
Uma tabela com as colunas selecionadas para os argumentos groupBy_columnName
and colunas resumidas projetadas pelos argumentos de nome.
Comentários
Cada coluna para a qual você define um nome deve ter uma expressão correspondente; caso contrário, um error será retornado. O argumento first, nome, define o nome da coluna nos resultados. O argumento second, expressão, define o cálculo executado para obter o value para cada linha nessa coluna.
groupBy_columnName deve estar em
table
or em uma tabela related paratable
.Cada nome deve ser colocado entre aspas duplas.
A função agrupa um conjunto selecionado de linhas em um conjunto de linhas de resumo pelo values de uma or colunas mais groupBy_columnName. Uma linha é retornada para cada grupo.
Essa função not tem suporte para uso no modo DirectQuery quando usada em colunas calculadas or regras de RLS (segurança em nível de linha).
Exemplo
O exemplo a seguir retorna um resumo das vendas do revendedor agrupadas ao redor do calendaryearand o nome da categoria product, essa tabela de resultados permite que você faça análise sobre as vendas do revendedor por yearandproduct categoria.
SUMMARIZE(ResellerSales_USD
, DateTime[CalendarYear]
, ProductCategory[ProductCategoryName]
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
A tabela a seguir mostra uma visualização dos dados, pois eles seriam received por qualquer função que espera receber uma tabela:
DateTime[CalendarYear] | ProductCategory[ProductCategoryName] | [Valor das vendas (USD)] | [Valor de Desconto (USD)] |
---|---|---|---|
2008 | Bikes | 12968255,42 | 36167,6592 |
2005 | Bikes | 6958251,043 | 4231,1621 |
2006 | Bikes | 18901351,08 | 178175,8399 |
2007 | Bikes | 24256817,5 | 276065,992 |
2008 | Componentes | 2008052,706 | 39,9266 |
2005 | Componentes | 574256,9865 | 0 |
2006 | Componentes | 3428213,05 | 948,7674 |
2007 | Componentes | 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 | Acessórios | 153299,924 | 865,5945 |
2005 | Acessórios | 18594,4782 | 4,293 |
2006 | Acessórios | 86612,7463 | 1061,4872 |
2007 | Acessórios | 275794,8403 | 4756,6546 |
Com ROLLUP
A adição da sintaxe ROLLUP modifica o comportamento da função SUMMARIZE adicionando linhas rollup ao resultado nas colunas groupBy_columnName. ROLLUP só pode ser usado em uma expressão SUMMARIZE.
Exemplo
O exemplo a seguir adiciona linhas rollup às colunas Group-By da chamada de função SUMMARIZE:
SUMMARIZE(ResellerSales_USD
, ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
Retorna a tabela a seguir,
DateTime[CalendarYear] | ProductCategory[ProductCategoryName] | [Valor das vendas (USD)] | [Valor de Desconto (USD)] |
---|---|---|---|
2008 | Bikes | 12968255,42 | 36167,6592 |
2005 | Bikes | 6958251,043 | 4231,1621 |
2006 | Bikes | 18901351,08 | 178175,8399 |
2007 | Bikes | 24256817,5 | 276065,992 |
2008 | Componentes | 2008052,706 | 39,9266 |
2005 | Componentes | 574256,9865 | 0 |
2006 | Componentes | 3428213,05 | 948,7674 |
2007 | Componentes | 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 | Acessórios | 153299,924 | 865,5945 |
2005 | Acessórios | 18594,4782 | 4,293 |
2006 | Acessórios | 86612,7463 | 1061,4872 |
2007 | Acessórios | 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 |
Com ROLLUPGROUP
A adição de ROLLUPGROUP dentro de uma sintaxe ROLLUP pode ser usada para evitar subtotais parciais em linhas rollup. ROLLUPGROUP só pode ser usado em uma expressão ROLLUP, ROLLUPADDISSUBTOTAL, orROLLUPISSUBTOTAL.
Exemplo
O exemplo a seguir mostra apenas o total geral de all anos and categorias sem o subtotal de cada year com categorias de all:
SUMMARIZE(ResellerSales_USD
, ROLLUP(ROLLUPGROUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName]))
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
Retorna a tabela a seguir,
DateTime[CalendarYear] | ProductCategory[ProductCategoryName] | [Valor das vendas (USD)] | [Valor de Desconto (USD)] |
---|---|---|---|
2008 | Bikes | 12968255,42 | 36167,6592 |
2005 | Bikes | 6958251,043 | 4231,1621 |
2006 | Bikes | 18901351,08 | 178175,8399 |
2007 | Bikes | 24256817,5 | 276065,992 |
2008 | Componentes | 2008052,706 | 39,9266 |
2005 | Componentes | 574256,9865 | 0 |
2006 | Componentes | 3428213,05 | 948,7674 |
2007 | Componentes | 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 | Acessórios | 153299,924 | 865,5945 |
2005 | Acessórios | 18594,4782 | 4,293 |
2006 | Acessórios | 86612,7463 | 1061,4872 |
2007 | Acessórios | 275794,8403 | 4756,6546 |
76494758,25 | 527507,9262 |
Com ISSUBTOTAL
Com ISSUBTOTAL, você pode criar outra coluna na expressão SUMMARIZE que retorna Trueif linha containsvalues subtotal da coluna fornecida como argumento para ISSUBTOTAL; caso contrário, retorna False. ISSUBTOTAL só pode ser usado em uma expressão SUMMARIZE.
Exemplo
O sample a seguir gera uma coluna ISSUBTOTAL para cada uma das colunas ROLLUP na chamada de função SUMMARIZE fornecida:
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])
)
Retorna a tabela a seguir,
[É o subtotal para DateTimeCalendarYear] | [É o subtotal para ProductCategoryName] | DateTime[CalendarYear] | ProductCategory[ProductCategoryName] | [Valor das vendas (USD)] | [Valor de Desconto (USD)] |
---|---|---|---|---|---|
FALSE |
FALSE |
||||
FALSE |
FALSE |
2008 | Bikes | 12968255,42 | 36167,6592 |
FALSE |
FALSE |
2005 | Bikes | 6958251,043 | 4231,1621 |
FALSE |
FALSE |
2006 | Bikes | 18901351,08 | 178175,8399 |
FALSE |
FALSE |
2007 | Bikes | 24256817,5 | 276065,992 |
FALSE |
FALSE |
2008 | Componentes | 2008052,706 | 39,9266 |
FALSE |
FALSE |
2005 | Componentes | 574256,9865 | 0 |
FALSE |
FALSE |
2006 | Componentes | 3428213,05 | 948,7674 |
FALSE |
FALSE |
2007 | Componentes | 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 | Acessórios | 153299,924 | 865,5945 |
FALSE |
FALSE |
2005 | Acessórios | 18594,4782 | 4,293 |
FALSE |
FALSE |
2006 | Acessórios | 86612,7463 | 1061,4872 |
FALSE |
FALSE |
2007 | Acessórios | 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 |