1. Faro

Nivel 7 · Valor medio del pedido con DIVIDE

La solicitud

De Steven Clark, Jefe de E-commerce

“No dejo de oír que la app trae carritos más pequeños que la web. Demuéstralo en un sentido u otro: valor medio del pedido por canal, solo pedidos completados. El informe ya tiene Sales y Completed Orders.”

Tu objetivo

La matriz tiene orders[channel] en las filas, junto a las medidas dadas Sales (ventas completadas) y Completed Orders. Crea una medida llamada Average Order Value: Sales dividido entre Completed Orders, usando DIVIDE.

  • Llena [Average Order Value] en cada fila del visualpendiente
  • También la fila Total correctapendiente

Tu medida

DAX
Visual
A matrix: rows = orders[channel]; values = [Sales], [Completed Orders], [Average Order Value]
Medidas del informe
Sales = CALCULATE(SUM(order_items[line_total]), orders[status] = "completed")Completed Orders = CALCULATE(COUNTROWS(orders), 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[Average Order Value] fills in when you press Check
    El visual antes de tu respuesta
    channelSalesCompleted OrdersAverage Order Value
    app$2,024,727.983,885
    marketplace$837,482.831,597
    web$3,032,073.635,367
    Total$5,894,284.4410,849

    Mote revisa tu resultado

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

    La lección

    El valor medio del pedido es uno de los primeros números que pide cualquier gerente de e-commerce, y uno de los más fáciles de equivocar sutilmente. El patrón seguro es una razón de dos medidas.

    En qué estás trabajando

    Esto es un informe de práctica creado para este sitio; Power BI Desktop solo funciona en Windows. La matriz tiene orders[channel] en las filas y dos medidas ya en el informe:

    Sales            = CALCULATE(SUM(order_items[line_total]), orders[status] = "completed")
    Completed Orders = CALCULATE(COUNTROWS(orders), orders[status] = "completed")

    CALCULATE conserva solo los pedidos completados; la aprenderás bien en el siguiente capítulo. Tu medida se comprueba en cada celda, Total incluido.

    En Power BI Desktop: Home → New measure, escribe la fórmula, pulsa Enter y arrástrala a Values de la matriz. Ponle formato de moneda en Measure tools → Format.

    DIVIDE en lugar de /

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

    DIVIDE(numerator, denominator) hace lo mismo que [Sales] / [Completed Orders] con una diferencia: cuando el denominador es cero o está vacío, devuelve un vacío en lugar de un error o infinito. Un tercer argumento fija un valor alternativo distinto: DIVIDE(a, b, 0).

    Eso importa en informes reales. Cuando una celda tiene ventas pero un denominador de cero (un conteo escrito para devolver 0 en lugar de vacío, por ejemplo), / muestra «Infinity», y 0 dividido entre 0 muestra «NaN». DIVIDE deja la celda vacía, y Power BI oculta las filas donde todos los valores están vacíos. La guía de Microsoft es usar DIVIDE siempre que el denominador pueda ser cero o vacío, que en un informe filtrado es casi siempre.

    Por qué una razón de totales

    Un valor medio del pedido tiene que calcularse a nivel de pedido: todas las ventas de la celda divididas entre todos los pedidos de la celda. Eso es exactamente lo que hace dividir dos medidas, en cada celda:

    • En la fila web, las ventas de la web entre los pedidos de la web.
    • En la fila Total, todas las ventas entre todos los pedidos. No el promedio de los tres valores de canal, que daría al pequeño canal marketplace el mismo peso que a la web.

    ¿Por qué no AVERAGE?

    AVERAGE(order_items[line_total]) promedia las líneas de pedido. Un pedido con tres líneas cuenta tres veces, y cada línea es solo parte de un carrito, así que el número es demasiado pequeño. No hay una columna con un valor por pedido que promediar, por eso la razón es la herramienta correcta.

    Errores comunes

    • / en lugar de DIVIDE. Correcto aquí, frágil bajo filtros. El ticket pide DIVIDE.
    • Contar todos los pedidos. COUNTROWS(orders) incluye pedidos cancelados y reembolsados, mientras que Sales no, así que el promedio sale demasiado bajo.
    • Promediar tú mismo las filas. El Total es una razón de totales, no un promedio de razones.

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