Hola
Tengo una suma corriente que funciona.
@Wresen Aquí está mi solución a su problema. También puedes probar esto.
Suma de carrera hasta el día 10 =
SI (
MÁXIMO ( 'DataTable'[Día] ) <= 10,
CALCULAR (
SUMA('DataTable'[Valor]),
FILTRO (
TODO ( 'DataTable' ),
ISONORAFTER ( 'DataTable'[Día], MÁXIMO ( 'DataTable'[Día] ), DESC )
&& 'DataTable'[Día] <= 10
)
),
ESPACIO EN BLANCO ()
)
** Si te gustó mi solución, por favor dale un pulgar hacia arriba. Y si respondí a su pregunta, marque esta publicación como una solución, para que esté en la parte superior de la búsqueda y ayude a los demás. ¡Gracias! Buena suerte 👍 |
Hola @ghoshabhijeet
Eso también funciona exactamente como quiero.
Muchas gracias
@Wresen antes de escribir la medida, no estoy seguro de por qué escribiste el original que funciona de la manera en que lo escribiste. Por favor, vea si esta versión también funciona para usted:
Running Sum 2 =
CALCULATE(
SUM(Sheet1[Value]),
'Sheet1'[Day] <= MAX('Sheet1'[Day])
)
Para la medida que se detiene en 10:
Running Sum Stop at 10 =
IF(
SELECTEDVALUE(Sheet1[Day]) > 10 || NOT HASONEVALUE(Sheet1[Day]),
CALCULATE(
SUM(Sheet1[Value]),
'Sheet1'[Day] <= 10
),
[Running Sum 2]
)
No estaba seguro de cómo desea manejar los valores después de 10 (en blanco o seguir siendo 19). Lo mismo para el total. Hice que se viera así, pero no hubo problema en modificarlo de manera diferente:
Hola @Jihwan_Kim y @SpartaBI
Muchas gracias por la ayuda y las medidas que voy a mirar y ver, ambos funciona exactamente como yo lo quiero.
Tengo una pregunta más tal vez no relacionada con la suma de ejecución, pero lo intentaré aquí de todos modos.
¿Por qué no funciona esto?
Medida = Calcular( [una medida] , Mes[mes] = Máx.(Mes[mes]))
Pero esto funciona
Medida = Calcular( [una medida] , Mes[mes] = "202112")
(Quiero que la medida [una medida] se filtre para mostrar solo el último valor del mes)
Muchas gracias.
@Wresen mi placer.
Cuando escribes:
Medida = Calcular( [una medida] , Mes[mes] = Máx.(Ventas[mes]))
Entonces Max(Sales[month]) es igual al máximo en el contexto de filtro actual.
Eso significa que si estás en una fila donde es enero de 2022, será enero de 2022 y no el máximo de tu fecha.
Para lograr el máximo de todas las fechas escribirás algo como
CALCULATE(Max(Sales[mes]), REMOVEFILTERS('Hoja1')
También será mejor en cualquier caso utilizar varibales, por lo que esta será tu medida:
Measure =
VAR _max_month_all_sales = CALCULATE(Max(Sales[month]), REMOVEFILTERS('Sheet1'))
RETURN
Calculate( [a measure] , Month[month] = _max_month_all_sales)
@SpartaBI
Muchas gracias por la solución y la explicación de por qué no trabajé.
¡¡Tu medida funciona perfecta!!
@Wresen mi placer 🙂
Oye, echa un vistazo a mi informe de exhibición:
https://community.powerbi.com/t5/Data-Stories-Gallery/SpartaBI-Feat-Contoso-100K/td-p/2449543
Dale un pulgar hacia arriba si te gustó 🙂
Hola
Por favor, compruebe la imagen de abajo y el archivo pbix adjunto.
Running sum stop at day10 measure: =
VAR _condition =
MAX ( Data[Day] ) <= 10
RETURN
COALESCE (
CALCULATE (
SUM ( Data[Value] ),
FILTER ( ALL ( Data ), Data[Day] <= MAX ( Data[Day] ) )
),
""
)
* DIVIDE ( _condition, _condition )
Sugeriría una simplificación de esto:
Running sum stop at day10 =
VAR _condition = MAX ( Data[Day] ) <= 10
RETURN
CALCULATE (
SUM ( Data[Value] ),
FILTER ( ALL ( Data[Day] ), Data[Day] <= MAX ( Data[Day] ) && _condition )
)
O una ligera refactorización:
Running sum stop at day10 =
VAR _currday = MAX ( Data[Day] )
RETURN
CALCULATE (
SUM ( Data[Value] ),
FILTER (
ALL ( Data[Day] ),
Data[Day] <= _currday && _currday <= 10
)
)