1. Faro

Nivel 5 · Crecimiento interanual con VAR y DIVIDE

La solicitud

De Rachel Kim, Gerente de Categoría

“La dirección quiere un número por categoría para la revisión anual: cuánto crecieron las ventas de 2025 sobre 2024, como porcentaje. Positivo significa crecimiento, negativo significa caída. La página tiene una segmentación de Year en 2025.”

Tu objetivo

La matriz tiene products[category] en las filas y una segmentación 'Date'[Year] en 2025. Crea una medida llamada Sales YoY %: (Sales − Sales del año pasado) ÷ Sales del año pasado. Guarda Sales del año pasado (CALCULATE con SAMEPERIODLASTYEAR) en una variable y divide con DIVIDE.

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

Tu medida

DAX
Visual
A matrix: rows = products[category]; values = [Sales], [Sales YoY %]
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 YoY %] fills in when you press Check
    El visual antes de tu respuesta
    categorySalesSales YoY %
    Decor$290,301
    Furniture$573,131
    Kitchen$292,808
    Lighting$385,145
    Outdoor$507,358
    Textiles$251,426
    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

    Una tasa de crecimiento responde «cuánto cambió, en relación con donde empezó». Año contra año (YoY), es:

    growth = (this year − last year) ÷ last year

    En DAX, la cifra del año pasado es un CALCULATE con SAMEPERIODLASTYEAR, como en el nivel anterior. Este nivel añade dos hábitos que hacen legibles y seguras las medidas como esta: las variables y DIVIDE.

    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 categoría en 2025 y para la fila Total, y comprueba cada celda. En Power BI Desktop: Home → New measure, escribe la fórmula (Shift+Enter para líneas nuevas) y configura Measure tools → Format → Percentage.

    VAR … RETURN

    Sales YoY % =
    VAR SalesLY = CALCULATE([Sales], SAMEPERIODLASTYEAR('Date'[Date]))
    RETURN
        DIVIDE([Sales] - SalesLY, SalesLY)
    • VAR name = expression calcula un valor una vez y le da un nombre. Las variables se evalúan en el contexto de filtro donde están definidas: aquí el propio contexto de la celda, así que SalesLY son las ventas del año pasado de esta categoría.
    • RETURN da el resultado de la medida, usando las variables.

    Sin una variable escribirías el CALCULATE dos veces, una en el numerador y otra en el denominador. Eso es más difícil de leer, más fácil de desajustar al editar una copia y (en modelos grandes) más lento. Las variables también facilitan la depuración: escribe temporalmente RETURN SalesLY para ver el valor intermedio en la matriz.

    DIVIDE en lugar de /

    DIVIDE(numerator, denominator) devuelve un vacío cuando el denominador es cero o está vacío. Una categoría lanzada este año no tiene ventas el año pasado; / produciría un error o infinito en esa celda, DIVIDE la deja vacía. Un tercer argumento opcional fija qué devolver en su lugar, DIVIDE(a, b, 0).

    Leer el resultado

    Categoría 2025 vs 2024
    Textiles +29.3 %
    Outdoor +25.5 %
    Lighting +18.3 %
    Furniture +12.7 %
    Decor +4.1 %
    Kitchen +4.0 %

    En toda la tienda, las ventas de 2025 fueron un 15.4 % superiores a las de 2024. Las tasas de crecimiento hacen comparables categorías de tamaños muy distintos: Furniture añadió más dólares, pero Textiles creció más rápido.

    Errores comunes

    • La razón en lugar del crecimiento. DIVIDE([Sales], SalesLY) da 1.183 para Lighting. El crecimiento es eso menos 1.
    • Las variables no cambian el contexto. VAR s = [Sales] RETURN CALCULATE(s, …) no vuelve a evaluar s bajo los nuevos filtros: una variable es un valor fijo una vez calculada. Pon el CALCULATE dentro de la VAR, como aquí.
    • Puntos porcentuales vs porcentaje. Pasar de un margen del 10 % al 12 % es +2 puntos porcentuales, pero un crecimiento del +20 %. Di a cuál te refieres.

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