1. Faro

Nivel 6 · Mes anterior y % MoM con DATEADD

La solicitud

De Olivia Grant, Gerente de E-commerce

“Mi llamada semanal de trading quiere impulso, no totales anuales: para cada mes de 2025, ¿subieron o bajaron las ventas respecto al mes anterior, en porcentaje? Enero debería compararse con diciembre de 2024, no mostrar un vacío.”

Tu objetivo

La matriz tiene 'Date'[Year Month] en las filas y una segmentación 'Date'[Year] en 2025. Escribe dos medidas: Sales PM (Sales del mes anterior, con CALCULATE y DATEADD('Date'[Date], -1, MONTH)), y luego Sales MoM % = (Sales − Sales PM) ÷ Sales PM con DIVIDE. Se comprueba la última medida.

  • Llena [Sales MoM %] en cada fila del visualpendiente
  • También la fila Total correctapendiente

Tu medida

DAX
Visual
A matrix: rows = 'Date'[Year Month]; values = [Sales], [Sales MoM %]
Segmentaciones
'Date'[Year] = 2025
Medidas del informe
Sales = CALCULATE(SUM(order_items[line_total]), orders[status] = "completed")
Panel de datos: tablas y columnas
  • order_items order_item_id, order_id, product_id, quantity, unit_price, discount_pct, line_total
  • orders order_id, customer_id, order_date, status, channel, shipping_fee, coupon_code
  • products product_id, name, category, subcategory, unit_price, unit_cost, launched_on, is_active
  • customers customer_id, first_name, last_name, email, city, state, signup_date, segment, referral_source
  • returns return_id, order_item_id, returned_on, reason, refund_amount
  • Date Date, Year, Quarter, Month Number, Month, Year Month, Year Quarter, Day, Weekday Number, Weekday

Cargando el editor…

    Visual[Sales MoM %] fills in when you press Check
    El visual antes de tu respuesta
    Year MonthSalesSales MoM %
    2025-01$150,571
    2025-02$99,903
    2025-03$166,787
    2025-04$189,734
    2025-05$206,469
    2025-06$213,062
    2025-07$191,967
    2025-08$182,987
    2025-09$143,379
    2025-10$174,599
    2025-11$292,364
    2025-12$288,346
    Total$2,300,170

    Mote revisa tu resultado

    Presiona Comprobar. Mote completa tu respuesta y la compara con lo que necesita el informe.

    La lección

    El año contra año elimina la estacionalidad; el mes contra mes (MoM) muestra el impulso. Un equipo de trading mira ambos: ¿este mes es mejor que el mismo mes del año pasado, y es mejor que el mes pasado?

    En qué estás trabajando

    Esta página ejecuta un motor DAX de práctica creado para este sitio. Evalúa tu última medida para cada mes de 2025 y para la fila Total, y comprueba cada celda. En Power BI Desktop: crea cada medida con Home → New measure, da formato de porcentaje a la segunda y pon 'Date'[Year Month] en las filas de la matriz.

    DATEADD desplaza fechas por cualquier intervalo

    Sales PM = CALCULATE([Sales], DATEADD('Date'[Date], -1, MONTH))

    DATEADD(dates, number, interval) toma las fechas visibles y mueve cada una number unidades de interval (DAY, MONTH, QUARTER o YEAR). Un número negativo retrocede en el tiempo. Para la fila 2025-03:

    • fechas visibles: del 1 al 31 de marzo de 2025
    • desplazadas: del 1 al 28 de febrero de 2025 (un día de fin de mes se corresponde con el final del mes más corto)
    • [Sales] evaluada sobre esas fechas: las ventas de febrero

    DATEADD('Date'[Date], -1, YEAR) es lo mismo que SAMEPERIODLASTYEAR, y -1, QUARTER da el trimestre anterior. Una función cubre todos los desplazamientos.

    Medidas que usan medidas

    Sales MoM % = DIVIDE([Sales] - [Sales PM], [Sales PM])

    Escribir Sales PM como medida propia, en lugar de una variable, la hace reutilizable: puede estar en la matriz junto a Sales, alimentar un tooltip o comprobarse por sí sola. Las variables son mejores para valores que solo necesita una medida.

    Enero y la segmentación de Year

    La fila 2025-01 tiene dos filtros sobre el calendario: Year = 2025 y Year Month = 2025-01. DATEADD produce diciembre de 2024, fuera del año de la segmentación. CALCULATE igual lo ve, porque un filtro sobre la columna de fecha de la tabla Date marcada reemplaza todos los demás filtros de esa tabla. Así, enero se compara con diciembre de 2024, como pidió Olivia: baja un 48.2 % tras el pico de las fiestas.

    ¿DATEADD o PREVIOUSMONTH?

    PREVIOUSMONTH('Date'[Date]) devuelve el mes completo anterior a la primera fecha visible. En un solo mes equivale a DATEADD con −1 mes. En la fila Total (todo 2025) devuelve solo diciembre de 2024, mientras que DATEADD desplaza todo el año un mes hacia atrás. DATEADD conserva la duración del periodo, que suele ser lo que necesita una comparación.

    Errores comunes

    • Un mes fijado a mano. 'Date'[Month Number] = MONTH(TODAY()) - 1 se rompe en enero e ignora la fila.
    • Comparar meses de distinta duración. Febrero tiene tres días menos que marzo; parte del salto del 66.9 % de marzo es el calendario. Para un impulso justo, compara ventas diarias promedio o semanas.
    • Leer el MoM como tendencia. El mes contra mes oscila con las estaciones. Mira el YoY junto a él antes de hablar de una caída.

    Elige qué puede ejecutarse en este sitio. Puedes cambiarlo cuando quieras desde "Configurar cookies", al pie de cada página.