Ler em inglês

Compartilhar via


SUMMARIZE

Aplica-se a:Coluna calculadaTabela calculadaMedidaCálculo visual

Retorna uma tabela de resumo para os totais solicitados sobre um conjunto de grupos.

Sintaxe

DAX
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 nos valores encontrados nela. Esse parâmetro não pode ser uma expressão.
name O nome fornecido a uma coluna total ou de resumo, entre aspas duplas.
expression Qualquer expressão DAX que retorna um único valor escalar, em que a expressão deve ser avaliada várias vezes (para cada linha/contexto).

Valor retornado

Uma tabela com as colunas selecionadas para os argumentos groupBy_columnName e as 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 erro será retornado. O primeiro argumento, name, define o nome da coluna nos resultados. O segundo argumento, expression, define o cálculo executado para obter o valor de cada linha nessa coluna.

  • groupBy_columnName deve estar em table ou em uma tabela relacionada para table.

  • Cada nome deve ser colocado entre aspas duplas.

  • A função agrupa um conjunto selecionado de linhas em um conjunto de linhas de resumo pelos valores de uma ou mais colunas de groupBy_columnName. Uma linha é retornada para cada grupo.

  • Não há suporte para a função ser usada no modo DirectQuery quando usada em regras RLS (segurança em nível de linha) ou colunas calculadas.

Exemplo

O exemplo a seguir retorna um resumo das vendas do revendedor agrupadas ao longo do ano civil e do nome da categoria do produto. Essa tabela de resultados permite analisar as vendas do revendedor por ano e categoria de produto.

DAX
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 conforme eles seriam recebidos 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 ao acrescentar linhas de acúmulo ao resultado nas colunas groupBy_columnName. ROLLUP pode ser usada somente dentro de uma expressão SUMMARIZE.

Exemplo

O seguinte exemplo adiciona linhas de valores acumulados às colunas Group-By da chamada de função SUMMARIZE:

DAX
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 impedir subtotais parciais em linhas de acúmulo. ROLLUPGROUP pode ser usado somente dentro de uma expressão ROLLUP, ROLLUPADDISSUBTOTAL ou ROLLUPISSUBTOTAL.

Exemplo

O exemplo a seguir mostra apenas o total geral de todos os anos e categorias sem o subtotal de cada ano com todas as categorias:

DAX
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ê poderá criar outra coluna na expressão SUMMARIZE que retornará True se a linha contiver valores de subtotal para a coluna fornecida como argumento para ISSUBTOTAL; caso contrário, retornará False. ISSUBTOTAL pode ser usada somente dentro de uma expressão SUMMARIZE.

Exemplo

O seguinte exemplo gera uma coluna ISSUBTOTAL para cada uma das colunas ROLLUP na chamada de função SUMMARIZE fornecida:

DAX
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

SUMMARIZECOLUMNS