Esta función es extremadamente útil en numerosos escenarios y sirve para crear una tabla a partir de otra tras añadirle una o más columnas calculadas. ADDCOLUMNS espera una tabla como primer argumento y parejas de nombre de columna / expresión DAX como argumentos adicionales (argumentos que definirán el nombre y contenido de las columnas que se añadan).
Por ejemplo, supongamos que queremos crear una tabla calculada de países con sus ventas totales. Podríamos hacerlo de la siguiente forma:
ADDCOLUMNS(
VALUES(Geography[Country]),
"Sales", [Sales]
)
Pasamos como primer argumento una tabla con los valores distintos de la columna Geography[Country] y a esta tabla le añadimos otra columna de nombre “Sales” cuyo contenido viene definido por el resultado de la medida [Sales].
Debemos tener en cuenta que, usando esta función, trabajaremos por defecto en contexto de fila, iterando la tabla inicial (VALUES(Geography[Country]) en nuestro ejemplo) y obteniendo el valor correspondiente para cada fila. Esto nos obliga a forzar la transición de contexto si queremos que se filtre el modelo de datos. El resultado de la anterior expresión es el siguiente:
En nuestra expresión DAX estamos involucrando la medida [Sales], con lo que sabemos que se está ejecutando la transición de contexto. Pero obsérvese cuál sería el resultado si sumásemos la columna Sales[Amount] directamente con la función SUM: