1. Faro

Nivel 8 · Acumulado del año del año pasado

La solicitud

De Laura Bennett, Gerente de Finanzas

“La columna YTD ya está en el dossier del consejo, gracias. La siguiente pregunta era obvia: ¿vamos por delante del año pasado en el mismo punto? Para cada mes de 2025 necesito el acumulado del año pasado hasta el mismo mes, junto al nuestro.”

Tu objetivo

La matriz tiene 'Date'[Year Month] en las filas, una segmentación 'Date'[Year] en 2025 y la medida dada Sales YTD. Crea una medida llamada Sales YTD LY: Sales acumulado del año pasado hasta el mismo punto, con CALCULATE, DATESYTD y SAMEPERIODLASTYEAR.

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

Tu medida

DAX
Visual
A matrix: rows = 'Date'[Year Month]; values = [Sales YTD], [Sales YTD LY]
Segmentaciones
'Date'[Year] = 2025
Medidas del informe
Sales = CALCULATE(SUM(order_items[line_total]), orders[status] = "completed")Sales YTD = TOTALYTD([Sales], 'Date'[Date])
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 YTD LY] fills in when you press Check
    El visual antes de tu respuesta
    Year MonthSales YTDSales YTD LY
    2025-01$150,571
    2025-02$250,474
    2025-03$417,261
    2025-04$606,996
    2025-05$813,465
    2025-06$1,026,527
    2025-07$1,218,494
    2025-08$1,401,481
    2025-09$1,544,860
    2025-10$1,719,459
    2025-11$2,011,823
    2025-12$2,300,170
    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

    Un total acumulado por sí solo dice cuánto has avanzado. El consejo quiere saber si es más o menos que el año pasado en el mismo punto. Eso necesita dos funciones de tiempo trabajando juntas.

    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 y colócala junto a Sales YTD en la matriz.

    Anida las funciones: desplaza y luego extiende

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

    Léela de dentro hacia fuera, para la fila 2025-04:

    1. Las fechas visibles son del 1 al 30 de abril de 2025.
    2. SAMEPERIODLASTYEAR('Date'[Date]) devuelve del 1 al 30 de abril de 2024.
    3. DATESYTD(…) toma esa tabla como entrada: la última fecha es el 30 de abril de 2024, así que devuelve del 1 de enero al 30 de abril de 2024.
    4. CALCULATE evalúa [Sales] en esas fechas.

    Las funciones de inteligencia de tiempo aceptan una tabla de fechas allí donde aceptan una columna de fecha, lo que hace posible anidarlas.

    O desplaza una medida que ya tienes

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

    CALCULATE fija el contexto en abril de 2024, y entonces la medida Sales YTD se ejecuta dentro de ese contexto y construye ella misma enero–abril de 2024. Mismos números, y si alguien cambia después Sales YTD (un fin de año fiscal, por ejemplo), la versión LY lo sigue automáticamente. Muchos equipos prefieren esta forma por eso.

    La trampa: dos argumentos de filtro

    Esta versión parece razonable y es común en apuntes de cursos y respuestas de foros:

    CALCULATE([Sales], DATESYTD('Date'[Date]), SAMEPERIODLASTYEAR('Date'[Date]))

    Cada argumento de filtro se evalúa por separado, en el contexto original, y CALCULATE aplica entonces todos juntos. DATESYTD da enero–abril de 2025, SAMEPERIODLASTYEAR da abril de 2024. Ambos filtran 'Date'[Date], así que el resultado es su intersección: ninguna fecha, y Power BI muestra un vacío. Los filtros en argumentos separados se combinan con AND; para encadenar dos transformaciones, anídalas.

    Leer el resultado

    Year Month Sales YTD Sales YTD LY
    2025-03 $417,261 $348,330
    2025-06 $1,026,527 $789,588
    2025-09 $1,544,860 $1,234,547
    2025-12 $2,300,170 $1,993,604

    El total acumulado de 2025 se mantiene por encima del del año pasado en cada fin de mes. La ventaja es mayor en términos relativos a principios del verano (un 30 % por delante en junio) y se reduce al 15.4 % en diciembre tras un septiembre y un noviembre flojos, un matiz que una sola cifra del año completo no mostraría.

    Errores comunes

    • Argumentos separados en lugar de anidar. Mira arriba: un vacío.
    • Desplazar en el sentido equivocado. DATEADD('Date'[Date], 1, YEAR) mira hacia adelante; el año pasado es −1.
    • Mes actual parcial. En un informe en vivo el mes actual está incompleto. Compara hasta el mismo día, no el mismo mes, si el negocio necesita esa precisión.

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