SUMMARIZE

Se aplica a:Columna calculadaTabla calculadaMedidaCálculo visual

Devuelve una tabla de resumen de los totales solicitados en un conjunto de grupos.

Sintaxis

SUMMARIZE (<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, <name>, <expression>]…)

Parámetros

Término Definición
tabla Cualquier expresión DAX que devuelve una tabla de datos.
groupBy_ColumnName (Opcional) Nombre completo de una columna existente usada para crear grupos de resumen basados en los valores que incluye. Este parámetro no puede ser una expresión.
name Nombre dado a una columna de total o de resumen, entre comillas dobles.
expression Cualquier expresión DAX que devuelve un único valor escalar, donde la expresión se va a evaluar varias veces (para cada fila o contexto).

Valor devuelto

Tabla con las columnas seleccionadas de los argumentos groupBy_columnName y las columnas resumidas diseñadas por los argumentos de nombre.

Notas

  • Cada columna para la que se define un nombre debe tener una expresión correspondiente; de lo contrario, se devuelve un error. El primer argumento, name, define el nombre de la columna en los resultados. El segundo argumento, expression, define el cálculo realizado para obtener el valor de cada fila de esa columna.

  • groupBy_columnName debe estar en table o en una tabla relacionada con table.

  • Cada nombre debe ir entre comillas dobles.

  • La función agrupa un conjunto de filas seleccionado en un conjunto de filas de resumen de los valores de una o más columnas groupBy_columnName. Se devuelve una fila de cada grupo.

  • Esta función no se admite para su uso en el modo DirectQuery cuando se utiliza en columnas calculadas o en reglas de seguridad de nivel de fila (RLS).

Ejemplo

En el ejemplo siguiente se devuelve un resumen de las ventas del revendedor agrupadas por año natural y nombre de la categoría de producto. Esta tabla de resultados permite realizar análisis de las ventas del revendedor por año y por categoría de producto.

SUMMARIZE(ResellerSales_USD  
      , DateTime[CalendarYear]  
      , ProductCategory[ProductCategoryName]  
      , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])  
      , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])  
      )  

En la tabla siguiente se muestra una vista previa de los datos tal como la recibiría cualquier función en espera de recibir una tabla:

DateTime[CalendarYear] ProductCategory[ProductCategoryName] [Sales Amount (USD)] [Discount Amount (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 Accessories 153299,924 865,5945
2005 Accessories 18594,4782 4,293
2006 Accessories 86612,7463 1061,4872
2007 Accessories 275794,8403 4756,6546

Con ROLLUP

La incorporación de la sintaxis ROLLUP modifica el comportamiento de la función SUMMARIZE al agregar filas de resumen al resultado de las columnas groupBy_columnName. ROLLUP solo se puede usar en una expresión SUMMARIZE.

Ejemplo

En el ejemplo siguiente se agregan filas de resumen a las columnas Group-By de la llamada de función SUMMARIZE:

SUMMARIZE(ResellerSales_USD  
      , ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])  
      , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])  
      , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])  
)  

Devuelve la tabla siguiente:

DateTime[CalendarYear] ProductCategory[ProductCategoryName] [Sales Amount (USD)] [Discount Amount (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 Accessories 153299,924 865,5945
2005 Accessories 18594,4782 4,293
2006 Accessories 86612,7463 1061,4872
2007 Accessories 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

Con ROLLUPGROUP

La incorporación de ROLLUPGROUP dentro de una sintaxis ROLLUP se puede usar para evitar subtotales parciales en filas de resumen. ROLLUPGROUP solo se puede usar en una expresión ROLLUP, ROLLUPADDISSUBTOTAL o ROLLUPISSUBTOTAL.

Ejemplo

En el ejemplo siguiente se muestra solo el total general de todos los años y categorías sin el subtotal de cada año con todas las categorías:

SUMMARIZE(ResellerSales_USD  
      , ROLLUP(ROLLUPGROUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName]))  
      , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])  
      , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])  
)  

Devuelve la tabla siguiente:

DateTime[CalendarYear] ProductCategory[ProductCategoryName] [Sales Amount (USD)] [Discount Amount (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 Accessories 153299,924 865,5945
2005 Accessories 18594,4782 4,293
2006 Accessories 86612,7463 1061,4872
2007 Accessories 275794,8403 4756,6546
76494758,25 527507,9262

Con ISSUBTOTAL

Con ISSUBTOTAL, se puede crear otra columna en la expresión SUMMARIZE que devuelve "true" si la fila contiene valores de subtotal para la columna especificada como argumento para ISSUBTOTAL; de lo contrario, devuelve "false". ISSUBTOTAL solo se puede usar en una expresión SUMMARIZE.

Ejemplo

En el ejemplo siguiente se genera una columna ISSUBTOTAL para cada una de las columnas ROLLUP de la llamada de función SUMMARIZE especificada:

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])  
)  

Devuelve la tabla siguiente:

[Is Sub Total for DateTimeCalendarYear] [Is Sub Total for ProductCategoryName] DateTime[CalendarYear] ProductCategory[ProductCategoryName] [Sales Amount (USD)] [Discount Amount (USD)]
false false
false false 2008 Bikes 12968255,42 36167,6592
false false 2005 Bikes 6958251,043 4231,1621
FALSO 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 Accessories 153299,924 865,5945
false false 2005 Accessories 18594,4782 4,293
false false 2006 Accessories 86612,7463 1061,4872
false false 2007 Accessories 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