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

Get inspired! Check out the entries from the Power BI DataViz World Championships preliminary rounds and give kudos to your favorites. View the vizzies.

Reply
Syndicate_Admin
Administrator
Administrator

Calcular las ventas mensuales móviles (acumulativas) del año anterior

Hola

Necesito calcular las ventas acumuladas a partir de un período determinado (algo similar a las ventas hasta la fecha

Usé esto:

Ventas YTD =
SI(
FILTRADO(«finanzas»[Fecha]),
ERROR("Las medidas rápidas de inteligencia de tiempo solo se pueden agrupar o filtrar por la jerarquía de fechas proporcionada por Power BI o la columna de fecha principal".),
TOTALYTD(SUMA('finanzas'[ Ventas]), 'Calendario'[Fecha])
)
Sin embargo, necesito acumular las ventas del mes anterior:
clarainesgg_0-1727272683980.png

A continuación se muestran mis datos de maqueta.

Gracias

AñoCuartoMes Ventas Ahora Ventas
2013Cuarto de trimestre 4Noviembre 6.350
2013Cuarto de trimestre 4Diciembre 60.000
2014Cuarto 1Enero 50.000
2014Cuarto 1Febrero 70.000 6.350
2014Cuarto 1Marzo 45.000 66.350
2014Qtr 2Abril 25.000 116.350
2014Qtr 2Mayo 30.000 186.350
2014Qtr 2Junio 45.000 231.350
2014Qtr 3Julio 10.000 256.350
2014Qtr 3Agosto 50.000 286.350
391.350
4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

Hola @clarainesgg, aquí hay un algoritmo:

  1. Cree una clasificación basada en una condición necesaria, para que pueda compensar de "período actual" a N "períodos" anteriores
  2. use Calculate() para sobrescribir el contexto del filtro actual y calcular la fórmula en todas las filas anteriores al desplazamiento (también puede agregar un límite superior si es necesario)
  3. Mostrar un resultado en el lienzo

Adjunto puedes encontrar un ejemplo para tu caso específico cuando solo hay una mesa plana y tus números están disponibles solo a nivel mensual. Léelo de la siguiente manera:

  1. La columna calcualizada "Month Rank" se crea para obtener un número de mes como número en lugar de texto
  2. La columna calculada "Año Número de mes" se crea para obtener un número para el mes y el año juntos (porque el número de mes se repite a lo largo de los años)
  3. Se crea la columna calculada "RowNumberByYearMonthNumber" para la clasificación
  4. Crear una medida "Accum Sales"

Acum Sales = 
VAR _RowNumberByYearMonthNumber = MIN( 'Table'[RowNumberByYearMonthNumber] ) //get current value of the column
VAR _Offset= 3      //when you want to start capturing previous data
VAR _CurrentOffset = _RowNumberByYearMonthNumber - _Offset      //to check if you arrived to a necessary month
VAR _Result =
    IF(
        _CurrentOffset >= 0,            //when we are at a necessary month or after
        CALCULATE(                      //than calculate a sum
            SUM( 'Table'[  Sales ] ),
            ALL( 'Table' ),             //necessary to remove filters from other columns such as year, month etc.
            'Table'[RowNumberByYearMonthNumber] <= _CurrentOffset
        ),
        BLANK()                         //otherwise keep it blank
    )

RETURN _Result

Este es el resultado final:

Sergii24_0-1727281302589.png



En caso de que tenga un modelo de datos adecuado con la tabla de calendario marcada como "Tabla de fechas" (¿Necesita una dimensión de fecha? - RADACAD) y ventas con granularidad diaria, puede seguir la sugerencia de @rajendraongole1 y usar la columna de fecha para el sistema de clasificación.

¡Buena suerte con tu proyecto! 🙂

Recibí un error cuando quiero crear un row_number

clarainesgg_0-1727285590225.png

Syndicate_Admin
Administrator
Administrator

Hola @clarainesgg -¿puedes comprobar el siguiente dax formaule modificado?

Ventas acumuladas =
VAR CurrentDate = MAX('Calendario'[Fecha])
VAR FirstDateOfPreviousMonth = EDATE(CurrentDate, -1) // Retrasa la fecha un mes
DEVOLUCIÓN
CALCULAR(
SUM('finanzas'[Ventas]),
FILTRO(
ALL('Calendario'),
'Calendario'[Fecha] >= PrimeraFechaDeMesAnterior && 'Calendario'[Fecha] <= FechaActual
)
)

Supongo que si el contexto actual es marzo de 2014, esta fórmula del DAX acumulará ventas a partir de febrero de 2014 y seguirá acumulándose a medida que se avanza. Espero que esto funcione

Necesito comenzar a partir de febrero para traer mis ventas de nov-23 y así sucesivamente.

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 FABINSIDER for a $400 discount!

FebPBI_Carousel

Power BI Monthly Update - February 2025

Check out the February 2025 Power BI update to learn about new features.

March2025 Carousel

Fabric Community Update - March 2025

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

Top Solution Authors
Top Kudoed Authors