SUMMARIZE
Se aplica a:columna Calculada
tabla calculada
Medida
cá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 |
---|---|
table |
Cualquier expresión DAX que devuelva una tabla de datos. |
groupBy_ColumnName |
(Opcional) Nombre completo de una columna existente que se usa para crear grupos de resumen en función de los valores encontrados en ella. Este parámetro no puede ser una expresión. |
name |
Nombre asignado a una columna total o de resumen, entre comillas dobles. |
expression |
Cualquier expresión DAX que devuelva 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 para los argumentos groupBy_columnName
y las columnas resumidas diseñadas por los argumentos name.
Notas
Cada columna para la que defina 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, expresión, 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 contable
.Cada nombre debe ir entre comillas dobles.
La función agrupa un conjunto seleccionado de filas en un conjunto de filas de resumen por los valores de una o varias columnas de groupBy_columnName. Se devuelve una fila de cada grupo.
Esta función no se admite para su uso en el modo DirectQuery cuando se usa en columnas calculadas o reglas de seguridad de nivel de fila (RLS).
Ejemplo
En el ejemplo siguiente se devuelve un resumen de las ventas de revendedor agrupadas alrededor del año natural y el nombre de la categoría de producto, esta tabla de resultados le permite realizar análisis sobre las ventas de revendedores por año y 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 lo recibiría cualquier función que espera 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 adición de la sintaxis ROLLUP modifica el comportamiento de la función SUMMARIZE agregando filas de acumulación al resultado en las columnas de groupBy_columnName. ROLLUP solo se puede usar dentro de una expresión SUMMARIZE.
Ejemplo
En el ejemplo siguiente se agregan filas de acumulación a las columnas Group-By de la llamada de función de 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 adición de ROLLUPGROUP dentro de una sintaxis de ROLLUP se puede usar para evitar subtotales parciales en filas de acumulación. ROLLUPGROUP solo se puede usar dentro de una expresión ROLLUP, ROLLUPADDISSUBTOTALo ROLLUPISSUBTOTAL.
Ejemplo
En el ejemplo siguiente solo se muestra 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, puede crear otra columna en la expresión SUMMARIZE que devuelve True si la fila contiene valores subtotales para la columna dada como argumento para ISSUBTOTAL; de lo contrario, devuelve False. ISSUBTOTAL solo se puede usar dentro de una expresión SUMMARIZE.
Ejemplo
El ejemplo siguiente 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 |
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 | 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 |