Función SUMMARIZE

La función SUMMARIZE va a recibir como primer argumento el nombre de una tabla, a continuación los nombres de las columnas a partir de cuyos valores queremos realizar la agregación -columnas que deberán estar en la tabla indicada o en tablas relacionadas- y, por último, parejas de nombre de columna / expresión DAX.

Con un ejemplo quedará más claro. Supongamos que queremos crear una tabla que agrupe las ventas realizadas por país. Según lo explicado su código sería el siguiente:

Country sales = 
SUMMARIZE(
    Geography,
    Geography[Country],
    "Sales", [Sales]
)

Los dos primeros argumentos son la tabla de la que partimos (Geography) y la columna Geography[Country] según cuyos valores queremos realizar la agregación y, a continuación, el nombre de la columna a crear (“Sales”) y la expresión que va a definir el contenido de esta columna (en este caso la medida [Sales]). Téngase en cuenta que esta expresión se va a evaluar en el contexto de filtro definido por los valores las columnas según las cuales estamos realizando la agregación o, con otras palabras: en nuestro ejemplo, para cada uno de los países incluidos en la columna Geography[Country] se va a filtrar el modelo de datos antes de calcular el valor de la columna que estamos creando. Esto supone que la expresión DAX anterior también habría podido ser la siguiente:

Country sales = 
SUMMARIZE(
    Geography,
    Geography[Country],
    "Sales", SUM(Sales[Amount])
)

puesto que siempre se va a evaluar la expresión en contexto de filtro.

La tabla obtenida es la siguiente:

Función SUMMARIZE

Obsérvese que, tal y como se ha comentado, las columnas de agregación (Geography[Country] en nuestro ejemplo) tienen que estar en la tabla indicada o en tablas relacionadas, lo que significa que también podríamos haber partido de la tabla de ventas:

Country sales = 
SUMMARIZE(
    Sales,
    Geography[Country],
    "Sales", SUM(Sales[Amount])
)

obteniendo el mismo resultado:

Función SUMMARIZE

Por supuesto, podríamos haber añadido más de una columna de agregación, y más de una columna calculada:

Country sales = 
SUMMARIZE(
    Sales,
    Geography[Country],
    Customers[Gender],
    "Sales", SUM(Sales[Amount]),
    "Units", SUM(Sales[Units])
)

En este caso el resultado sería el siguiente:

Función SUMMARIZE

Aunque hay que destacar que si estamos mezclando columnas de agregación de más de una tabla (como en nuestro ejemplo, en el que mezclamos el campo Country de Geography y el campo Gender de Customers), la tabla que se indique como tabla base deberá ser una de ellas y estar relacionada con las demás, o ser una tabla directamente relacionada con todas las tablas involucradas en la expresión.