La función ROLLUPADDISSUBTOTAL identifica un conjunto de columnas especificadas en la función SUMMARIZECOLUMNS para las que dicha función deberá calcular subtotales.
ROLLUPADDISSUBTOTAL(
<groupBy_columnName>,
<isSubtotal_columnName>,
<filter>
[, <groupBy_columnName>, <isSubtotal_columnName>, <filter>]
)
- groupBy_columnName: Nombre totalmente cualificado de una columna existente que servirá para la creación de grupos basados en los valores encontrados en ella. No puede ser una expresión.
- isSubtotal_columnName: Nombre de columna a añadir que contendrá booleanos indicando si la fila es o no resultado de calcular un subtotal.
- filter: Expresión que devuelve una tabla que se añadirá al contexto de filtro.
La función ROLLUPADDISSUBTOTAL no devuelve ningún valor.
La función ROLLUPADDISSUBTOTAL se usa exclusivamente como argumento de la función SUMMARIZECOLUMNS.
Si partimos de un modelo de datos con tablas para ventas (Sales), categorías de productos (Category) y localizaciones geográficas (Geography), podríamos crear una tabla calculada con los valores agregados de la cifra de ventas y número de unidades vendidas por país y categoría con el siguiente código:
Tabla = SUMMARIZECOLUMNS(
Geography[Country],
Category[Category],
"Sales", SUM(Sales[Amount]),
"Units", SUM(Sales[Units])
)
Podemos calcular subtotales para el campo relativo a la categoría con el siguiente código:
Tabla = SUMMARIZECOLUMNS(
ROLLUPADDISSUBTOTAL(
Geography[Country], "Is subtotal", Geography
),
Category[Category],
"Sales", SUM(Sales[Amount]),
"Units", SUM(Sales[Units])
)
Obsérvese que se ha pasado a la función como filtro la tabla completa de Geography.