1. Faro

Nivel 8 · Desafío final: tres medidas para la revisión de canales

La solicitud

De Robert Kim, COO

“Para la revisión de canales del lunes quiero tres números de 2025, uno junto al otro para web, app y marketplace: lo que vendimos, cuántos pedidos hicieron falta y cuánto valía un pedido promedio. Solo pedidos completados. La página ya está filtrada así; solo necesita las medidas.”

Tu objetivo

Paso 1 de 3. Crea una medida llamada Sales que sume order_items[line_total], el valor de cada línea de pedido tras el descuento.

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

Paso 1 · tu medida

DAX
Visual
A matrix: rows = orders[channel]; values = [Sales]
Segmentaciones
'Date'[Year] = 2025orders[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] fills in when you press Check
    El visual antes de tu respuesta
    channelSales
    app
    marketplace
    web
    Total

    Mote revisa tu resultado

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

    Paso 2 · tu medida

    DAX
    Visual
    A matrix: rows = orders[channel]; values = [Orders]
    Segmentaciones
    'Date'[Year] = 2025orders[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[Orders] fills in when you press Check
      El visual antes de tu respuesta
      channelOrders
      app
      marketplace
      web
      Total

      Mote revisa tu resultado

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

      Paso 3 · tu medida

      DAX
      Visual
      A matrix: rows = orders[channel]; values = [Sales], [Orders], [Average Order Value]
      Segmentaciones
      'Date'[Year] = 2025orders[status] = completed
      Medidas del informe
      Sales = SUM(order_items[line_total])Orders = COUNTROWS(orders)
      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[Average Order Value] fills in when you press Check
        El visual antes de tu respuesta
        channelSalesOrdersAverage Order Value
        app995,524.181,904
        marketplace324,298.57630
        web980,346.781,761
        Total2,300,169.534,295

        Mote revisa tu resultado

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

        La lección

        Este Desafío final son tres medidas, construidas como las construirías en Power BI Desktop: una a la vez, cada una probada en el visual antes de escribir la siguiente.

        El informe en el que trabajas

        El informe de práctica tiene una matriz con orders[channel] en las filas (web, app, marketplace) y una fila Total. La página ya tiene dos filtros, de los que se configuran en el panel Filters bajo Filters on this page: 'Date'[Year] es 2025 y orders[status] es completed. Se aplican a todas las medidas de la página, así que tus fórmulas no necesitan mencionarlos.

        El motor DAX de aquí está hecho para este sitio y sigue las reglas de Power BI, así que las medidas funcionan sin cambios en Desktop. Allí: selecciona una tabla en el panel Data, Home → New measure, escribe la fórmula, pulsa Enter y arrastra la medida a Values de la matriz. Repite con cada una.

        Paso 1: Sales

        Sales = SUM(order_items[line_total])

        line_total es el valor de cada línea de pedido tras su descuento. Cada celda suma las líneas que puede ver: los filtros de la página y el canal de la fila viajan de orders a order_items por la relación, así que la fila web suma solo las líneas web de pedidos completados de 2025.

        Paso 2: Orders

        Orders = COUNTROWS(orders)

        COUNTROWS cuenta las filas de una tabla en el contexto de filtro de la celda. orders tiene una fila por pedido, así que esto es el número de pedidos. Contar order_items contaría líneas de pedido, que es un número distinto (unas 2.5 líneas por pedido).

        Paso 3: Average Order Value

        Average Order Value = DIVIDE([Sales], [Orders])

        Una medida puede usar otras medidas: escribe sus nombres entre corchetes. DIVIDE(a, b) devuelve a / b, o vacío cuando b es cero o está vacío, donde a / b mostraría un error o infinito. Úsalo para cada razón.

        Por qué el Total no es un promedio de las filas

        En cada fila de canal, Average Order Value son las ventas de ese canal entre los pedidos de ese canal. En la fila Total, Power BI evalúa la medida una vez más sin filtro de canal: todas las ventas entre todos los pedidos. La app y la web tienen cada una unas tres veces más pedidos que el marketplace, así que pesan más. Ese es el número correcto para «¿cuánto vale un pedido promedio?» ($535.55); promediar los tres valores de las filas daría a cada canal el mismo peso y una respuesta equivocada.

        Dale formato

        El valor medio del pedido es dinero: selecciona la medida y luego Measure tools → Format → Currency y dos decimales. La matriz de práctica lo hace por ti en el paso 3.

        Qué le dice a Robert

        En 2025 la app vendió más ($995.5K con 1,904 pedidos), justo por delante de la web ($980.3K con 1,761), con el marketplace en $324.3K con 630. Sin embargo, el pedido promedio de la web es el mayor, unos $557 frente a $523 en la app y $515 en el marketplace: la app gana en número de pedidos, no en su tamaño. Un canal puede vender menos porque tiene menos pedidos o porque cada pedido es más pequeño, y los dos problemas tienen arreglos distintos, por eso Robert pidió los tres.

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