1. Faro

Nivel 4 · Ventas del año pasado con SAMEPERIODLASTYEAR

La solicitud

De Nicole Hayes, Planificadora de Mercancía

“Estoy fijando los niveles de stock de 2026 mes a mes. Para cada mes necesito las ventas de este año y las del año pasado para el mismo mes, lado a lado, para ver qué meses crecieron y cuáles retrocedieron.”

Tu objetivo

La matriz tiene 'Date'[Month] en las filas y una segmentación 'Date'[Year] en 2025. Crea una medida llamada Sales LY: Sales del mismo periodo un año antes, con CALCULATE y SAMEPERIODLASTYEAR('Date'[Date]).

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

Tu medida

DAX
Visual
A matrix: rows = 'Date'[Month]; values = [Sales], [Sales LY]
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 LY] fills in when you press Check
    El visual antes de tu respuesta
    MonthSalesSales LY
    Jan$150,571
    Feb$99,903
    Mar$166,787
    Apr$189,734
    May$206,469
    Jun$213,062
    Jul$191,967
    Aug$182,987
    Sep$143,379
    Oct$174,599
    Nov$292,364
    Dec$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

    «Comparado con el año pasado» es la comparación más común en los informes de negocio. En DAX es un CALCULATE con una función que mueve un año hacia atrás las fechas visibles.

    En qué estás trabajando

    Esta página ejecuta un motor DAX de práctica creado para este sitio. Evalúa tu medida para cada mes de 2025 y para el Total, y comprueba cada celda. En Power BI Desktop: Home → New measure, escribe la fórmula, luego pon 'Date'[Month] en las filas de la matriz (está ordenada por Month Number, así que enero va primero) y una segmentación 'Date'[Year] en la página.

    SAMEPERIODLASTYEAR desplaza las fechas visibles

    Sales LY = CALCULATE([Sales], SAMEPERIODLASTYEAR('Date'[Date]))

    SAMEPERIODLASTYEAR('Date'[Date]) toma las fechas visibles en la celda y devuelve cada una movida un año hacia atrás. Para la fila Feb de 2025 eso es del 1 al 28 de febrero de 2025 → del 1 al 28 de febrero de 2024. Cuando el último día de un mes es visible, se devuelve todo el mes desplazado, así que febrero de 2025 se corresponde con los 29 días de febrero de 2024, el día bisiesto incluido.

    CALCULATE usa las fechas desplazadas como filtro sobre 'Date'[Date]. La celda sigue teniendo filtros sobre 'Date'[Month] (la fila) y 'Date'[Year] (la segmentación, 2025). Como la tabla Date está marcada, el nuevo filtro sobre su columna de fecha los reemplaza a todos; de lo contrario la segmentación de 2025 recortaría las fechas de 2024 y dejaría un vacío.

    Es DATEADD disfrazada

    SAMEPERIODLASTYEAR('Date'[Date]) es lo mismo que DATEADD('Date'[Date], -1, YEAR). DATEADD también puede desplazar por meses o trimestres, lo que usarás para el mes anterior más adelante en este capítulo.

    Qué necesita el calendario

    • Todos los días presentes. La función devuelve solo fechas que existen en la tabla Date. Un calendario que empieza en marzo de 2024 no tiene «año pasado» para enero de 2025.
    • Datos en el año anterior. El modelo empieza en 2023, así que una fila de 2023 no tiene con qué compararse y Sales LY está vacía ahí, lo cual es correcto: no cero, simplemente no hay datos.

    Leer el resultado

    Pon Sales y Sales LY lado a lado y la historia es clara: la mayoría de los meses de 2025 superaron a 2024, algunos en más de un 40 % (junio). Septiembre, noviembre y diciembre quedaron algo por debajo del año pasado, y noviembre es el mes más grande en ambos años. Nicole ya sabe en qué meses hacer stock con más decisión. El siguiente nivel convierte las dos columnas en un porcentaje de crecimiento.

    Errores comunes

    • Fijar el año a mano. 'Date'[Year] = 2024 funciona para exactamente un ajuste de la segmentación.
    • La columna de fecha de la tabla de hechos. SAMEPERIODLASTYEAR(orders[order_date]) desplaza solo las fechas que tuvieron pedidos, y los huecos hacen que algunos periodos salgan cortos. Usa el calendario.
    • Comparar periodos parciales. En un informe en vivo, el mes actual de este año está incompleto mientras el del año pasado está entero. Compara el acumulado del mes con el acumulado del mes cuando eso importe.

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