The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredCompete to become Power BI Data Viz World Champion! First round ends August 18th. Get started.
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.
User | Count |
---|---|
83 | |
83 | |
37 | |
34 | |
32 |
User | Count |
---|---|
92 | |
79 | |
62 | |
53 | |
51 |