Advance your Data & AI career with 50 days of live learning, dataviz contests, hands-on challenges, study groups & certifications and more!
Get registeredGet Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now
Hola a todos, estoy haciendo un problema en DAX y me encuentro un poco en problemas. Tengo la siguiente tabla:
| Mes | Clave | Valor |
| enero | T123 | 200 |
| febrero | T123 | 300 |
| marzo | T123 | 400 |
| abril | T223 | 500 |
| mayo | T223 | 600 |
Lo que necesito es que se vayan sumando los valores de la columna "Valor" según la clave. Por ejemplo, si quiero ver febrero que muestre la suma de 200+300=500; si quisiera ver marzo que muestre 200+300+400=900; si quisiera ver abril, solo muestre 500, y si quisiera ver mayo que muestre 500+600=1100. ¿Alguien sabe como podría hacerlo?
Solved! Go to Solution.
Para lograr la suma acumulada de los valores en DAX de acuerdo a la clave y el mes, puedes utilizar la función `CALCULATE` junto con la función `FILTER` y `ALL` para iterar sobre la tabla y sumar los valores condicionales al orden de los meses y la clave. Aquí te dejo un ejemplo de cómo podrías hacerlo:
```dax
Suma Acumulada =
CALCULATE(
SUM('Tabla'[Valor]),
FILTER(
ALL('Tabla'),
'Tabla'[Clave] = EARLIER('Tabla'[Clave])
&& 'Tabla'[Mes] <= EARLIER('Tabla'[Mes])
)
)
```
En este cálculo:
- `SUM('Tabla'[Valor])` es la expresión que queremos calcular, en este caso, la suma de 'Valor'.
- `FILTER` recorre todas las filas de 'Tabla'.
- `ALL('Tabla')` elimina los filtros que pudieran existir sobre 'Tabla', de manera que podemos evaluar todos sus registros.
- `EARLIER('Tabla'[Clave])` y `EARLIER('Tabla'[Mes])` son utilizados para comparar el valor de la fila actual con cada una de las otras filas de la tabla. `EARLIER` es una función que ayuda a mantener el valor de referencia de la fila actual mientras se evalúan las otras filas en el contexto del `FILTER`.
Debes asegurarte de que el 'Mes' sea tratado como una columna que pueda ser ordenada correctamente, tal vez necesites convertirlo a fecha o a un número que represente el orden cronológico para que la comparación `'Tabla'[Mes] <= EARLIER('Tabla'[Mes])` funcione correctamente.
Coloca este nuevo cálculo en una medida y úsala en tus visualizaciones para ver la suma acumulada por clave y mes.
Me sirvió mucho, muchas gracias 😄
Para lograr la suma acumulada de los valores en DAX de acuerdo a la clave y el mes, puedes utilizar la función `CALCULATE` junto con la función `FILTER` y `ALL` para iterar sobre la tabla y sumar los valores condicionales al orden de los meses y la clave. Aquí te dejo un ejemplo de cómo podrías hacerlo:
```dax
Suma Acumulada =
CALCULATE(
SUM('Tabla'[Valor]),
FILTER(
ALL('Tabla'),
'Tabla'[Clave] = EARLIER('Tabla'[Clave])
&& 'Tabla'[Mes] <= EARLIER('Tabla'[Mes])
)
)
```
En este cálculo:
- `SUM('Tabla'[Valor])` es la expresión que queremos calcular, en este caso, la suma de 'Valor'.
- `FILTER` recorre todas las filas de 'Tabla'.
- `ALL('Tabla')` elimina los filtros que pudieran existir sobre 'Tabla', de manera que podemos evaluar todos sus registros.
- `EARLIER('Tabla'[Clave])` y `EARLIER('Tabla'[Mes])` son utilizados para comparar el valor de la fila actual con cada una de las otras filas de la tabla. `EARLIER` es una función que ayuda a mantener el valor de referencia de la fila actual mientras se evalúan las otras filas en el contexto del `FILTER`.
Debes asegurarte de que el 'Mes' sea tratado como una columna que pueda ser ordenada correctamente, tal vez necesites convertirlo a fecha o a un número que represente el orden cronológico para que la comparación `'Tabla'[Mes] <= EARLIER('Tabla'[Mes])` funcione correctamente.
Coloca este nuevo cálculo en una medida y úsala en tus visualizaciones para ver la suma acumulada por clave y mes.
Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!
Check out the October 2025 Power BI update to learn about new features.