Acumulados con EARLIER
- Jaime Franco Jimenez
- 11 abr 2023
- 2 Min. de lectura
Para el siguiente ejemplo, vamos a ver como podemos crear un acumulado, tengo cargado en Power Bi el modelo con el que vamos a trabajar, esta compuesto por tres columnas, que son ID, Mes, y, Total.

Vamos a añadir una nueva columna, donde calcularemos el acumulado, ya sabemos que un acumulado es la suma del primer valor mas el segundo, mas el tercero, y, así con el resto de las cantidades, si estamos, por ejemplo, en la celda 4, nos debe de dar la suma de los valores de enero, febrero, marzo, y, abril.
Este acumulado lo haremos con una columna calculada.
Ya sabemos que en DAX, no podemos hacer referencia a una celda, ni a una fila, solo podemos hacer referencia a una columna, o, una tabla, pero, en este ejemplo, debemos de acceder a la celda, o, fila anterior, por lo que necesitamos una columna con ID con números consecutivos, que ya tenemos, para identificar cada fila.
Creamos una columna calculada, para ello, vamos a la pestaña herramientas de tablas, y, hacemos clic en nueva columna.

En el momento de escribir el signo igual (=), se genera un contexto de fila, llamado automático, sabemos que el modelo empieza a ser recorrido desde la fila 1, pero, como tenemos que trabajar con valores anteriores, un solo contexto de filtro no basta, porque estaríamos restringido a esa fila que tenemos seleccionada, necesitamos otro contexto de fila para poder interactuar, por lo que necesitamos una función de iteración, para este ejemplo, vamos a usar SUMX, pues después del signo igual, ponemos SUMX, que va a trabajar fila a fila.

El primer argumento es tabla, pues, ponemos la tabla Acumulados.
SUMX genera otro contexto de fila, por lo que ahora, tenemos dos contextos de filas, este contexto de fila se llama programable, porque lo genera la función, quiere decir, que el primer contexto de fila, esta en la fila 4, que seleccionamos anteriormente, y, el contexto de fila generado por SUMX, se encuentra en la fila 1, el contexto de filtro programable, va a iterar sobre toda la tabla.

Coma, el siguiente argumento es expresión, aquí debemos de preguntar, preguntar que, si el valor por debajo del valor donde estoy es menor o igual que el valor de la fila donde estoy, entonces, que me devuelva ese valor, cuando este en la fila 1, el resultado será VERDADERO, y, devolverá el valor de la fila 1, cuando este en la fila 2, el valor será mayor que el de la fila de encima, entonces, devolverá el valor de dicha fila, y, en caso de que no se cumpla la condición, que ponga 0, es en este punto, donde debemos de usar EARLIER.
La expresión quedaría:

Ponemos coma, como argumento valor si verdadero, le decimos que nos devuelva la columna total.

Coma, como argumento valor si falso, que ponga 0.
Cerramos paréntesis.

Aceptamos, y, podemos ver como hemos creado nuestro acumulado.

Miguel Angel Franco
Comments