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

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

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
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

AugPowerBI_Carousel

Power BI Monthly Update - August 2024

Check out the August 2024 Power BI update to learn about new features.

August Carousel

Fabric Community Update - August 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors
Top Kudoed Authors