Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Cálculo de la suma acumulada de una medida que utiliza la función de desplazamiento para obtener el valor de la fila anterior.

Hola
Estoy tratando de calcular la suma acumulativa (digamos Measure2) de una medida ya creada (digamos Measure1) que está usando la función "Offset" para obtener el valor de la semana anterior para la semana actual.
En la suma acumulativa, tengo que sumar la suma de la semana anterior calculada con el valor de la semana actual.

El problema es que cuando calculo la suma acumulativa ( [Medida2]), solo toma el valor de la semana actual ([Medir]) e ignora el valor de la semana anterior ([Medida1])
Mire la medida para el cálculo del valor de la semana actual:

Medida = Suma('Tabla1'[Abc])

Para obtener el valor de la semana anterior, he creado otra medida usando la función "Desplazamiento":

Medida1 =

CALCULAR (
[Medir] ,
COMPENSAR( -1,
ORDENAR POR('Calendario'[Semana QTR], ASC))
)

Y la medida para calcular la suma acumulativa es la siguiente:
Medida2 =

CALCULAR(
[Medida] - [Medida1],
FILTRO(
TODOS SELECCIONADOS('Calendario'[Semana QTR]),
ISONORAFTER('Calendario'[Semana QTR], MÁXIMO('Calendario'[Semana QTR]), DESC)
)
)
Su ayuda sería apreciada, ya que estoy luchando por encontrar una solución para esto desde hace mucho tiempo.
4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

Hola @Shravan133 y @v-fenling-msft ,
Gracias por su respuesta.

Probé el dax compartido por los dos. Sin embargo, todavía no obtengo el resultado esperado, ya que todavía toma solo el valor actual e ignora el valor anterior.

Hola, @Swati20

¿Podría proporcionar algunos datos de muestra en formato de texto (excluyendo datos confidenciales) con resultados esperados con lógica de backend y ejemplos especiales?

Se agradecerían archivos pbix simplificados. Esto nos ayudará a identificar rápidamente su problema y resolverlo.

Haremos todo lo posible para ayudarlo a resolver el problema que está experimentando.

Espero que mis sugerencias le den buenas ideas, si tiene más preguntas, aclare en una respuesta de seguimiento.
Saludos
Fen Ling,
Si esta publicación ayuda, considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.

Syndicate_Admin
Administrator
Administrator

Hola, @Shravan133

Gracias por su preocupación sobre este tema.

¡Tu respuesta es excelente! Estoy de acuerdo con sus cálculos.

Y me gustaría compartir algunas soluciones adicionales a continuación.

Hola, @Swati20

Estoy encantado de ayudarte.

De acuerdo con su descripción, ¿desea calcular la suma acumulada de una medida que utiliza la función de desplazamiento para obtener el valor de la fila anterior?

Si te he entendido correctamente, entonces puedes consultar mi solución.

Creo que la razón del problema con sus cálculos puede ser que la forma en que se usa la función ISONORAFTER puede resultar en que solo se tengan en cuenta la semana actual y las semanas siguientes, en lugar de acumular las semanas anteriores.

Y puedes consultar mi fórmula:

Measure2 =
VAR CSTable =
    SUMMARIZE (
        'Calendar',
        'Calendar'[QTR Week],
        "CurrentWeekValue", [Measure],
        "PreviousWeekValue", CALCULATE ( [Measure], OFFSET ( -1, ORDERBY ( 'Calendar'[QTR Week], ASC ) ) )
    )
RETURN
    SUMX (
        FILTER ( CSTable, 'Calendar'[QTR Week] <= MAX ( 'Calendar'[QTR Week] ) ),
        [CurrentWeekValue] - [PreviousWeekValue]
    )

Espero que esto ayude a resolver su problema.

Espero que mis sugerencias le den buenas ideas, si tiene más preguntas, aclare en una respuesta de seguimiento.


Saludos
Fen Ling,


Si esta publicación ayuda, considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.

Syndicate_Admin
Administrator
Administrator

pruebe esto: Medida2 =
CALCULAR(
SUMX(
FILTRO(
ALLSELECTED('Calendario' [QTR Week]),
'Calendario'[QTR Semana] <= MAX('Calendario'[QTR Semana])
),
[Medir] - CALCULAR(
[Medir],
COMPENSACIÓN(
-1,
ORDERBY('Calendario' [QTR Week], ASC)
)
)
)
)

O

Medida2 =
CALCULAR(
SUMX(
FILTRO(
ALL('Calendario'),
'Calendario'[QTR Semana] <= MAX('Calendario'[QTR Semana])
),
[Medir] - CALCULAR(
[Medir],
OFFSET(-1, ORDERBY('Calendar'[QTR Week], ASC))
)
),
REMOVEFILTERS('Calendario')
)

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors