La solicitud

De Monica Reyes, Planificadora de mercancía
Tu objetivo
La matriz tiene products[category] en las filas; una segmentación deja los pedidos completados. Crea una medida llamada Margin %: (ingresos − costo) / ingresos, donde los ingresos son order_items[line_total] y el costo es order_items[quantity] × el unit_cost del producto. Deja fuera, tanto de los ingresos como del costo, toda línea de pedido cuyo producto tenga unit_cost vacío. Se pueden usar medidas auxiliares; se comprueba la última.
- Llena
[Margin %]en cada fila del visualpendiente - También la fila Total correctapendiente
Tu medida
- Visual
- A matrix: rows = products[category]; values = [Margin %]
- Segmentaciones
- 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…
Solución de referencia
| category | Margin % |
|---|---|
| Decor | |
| Furniture | |
| Kitchen | |
| Lighting | |
| Outdoor | |
| Textiles | |
| Total |
Mote revisa tu resultado
Presiona Comprobar. Mote completa tu respuesta y la compara con lo que necesita el informe.
Lo que recibe Monica, y por qué
La lección
Un margen % es una razón entre dos sumas, y ambas sumas tienen que salir de las mismas filas. El catálogo de Monica tiene un hueco, así que el verdadero trabajo de este ticket es decidir qué hacer con las filas que caen por ese hueco.
Dónde estás trabajando
La matriz de abajo es un informe de práctica creado para este sitio; Power BI Desktop solo funciona en Windows. Un motor DAX evalúa tus medidas en cada celda siguiendo las reglas de Power BI. Para hacerlo de verdad: Inicio → Nueva medida (Home → New measure) para cada una de las medidas y luego Herramientas de medida → Formato → Porcentaje (Measure tools → Format → Percentage) en Margin % para que 0.534 se muestre como 53.4 %.
RELATED: cruza una relación, una fila a la vez
El costo por línea es cantidad × costo unitario, pero los dos números viven en tablas distintas.
Dentro de un iterador sobre order_items, RELATED(products[unit_cost]) sigue la relación desde la
línea actual hasta su único producto y devuelve el costo de ese producto:
Cost =
SUMX(
order_items,
order_items[quantity] * RELATED(products[unit_cost])
)
RELATED funciona del lado de muchos al lado de uno (línea → producto). La dirección contraria,
de un producto a sus muchas líneas, es RELATEDTABLE.
Ponderado, no promediado
DIVIDE(ingresos − costo, ingresos) sobre las líneas de la celda es un margen ponderado: un
producto que vendió $200,000 lo mueve mucho más que uno que vendió $2,000. La alternativa,
AVERAGEX(order_items, <margen % de la línea>), da un voto a cada línea, así que un accesorio barato
cuenta tanto como un sofá. Cuando los gerentes dicen “nuestro margen”, se refieren al número
ponderado.
Decidir qué significan los costos vacíos
Nueve productos no tienen unit_cost. En una operación aritmética, DAX trata el vacío como cero, así
que las líneas de esos productos suman ingresos pero ningún costo: 100 % de margen. Así es como
Furniture llega al 70 %.
Tienes tres opciones honestas: conseguir los costos, estimarlos y decirlo, o dejar esas líneas fuera de ambas sumas. Esto último es lo que pidió Monica:
Costed Revenue =
SUMX(
FILTER(order_items, NOT ISBLANK(RELATED(products[unit_cost]))),
order_items[line_total]
)
Usa el mismo FILTER en la medida Cost y luego:
Margin % = DIVIDE([Costed Revenue] - [Cost], [Costed Revenue])
Dejarlas fuera solo del lado del costo es el error que hay que evitar: entonces los productos sin costo siguen contando en los ingresos e inflan el margen.
Medidas que llaman a medidas
Dividir la lógica en Costed Revenue, Cost y Margin % mantiene cada pieza corta y comprobable: pon Cost en la matriz por sí sola y revísala antes de dividir. En este editor, escribe las tres; se comprueba la última.
Errores comunes
- Tratar el vacío como costo cero. Decide qué significan los vacíos antes de dividir.
- Promediar porcentajes. Pondera por ventas: razón de sumas, no promedio de razones.
- RELATED fuera de un iterador. Necesita una fila actual; en una medida simple no hay ninguna.
¡Linterna encendida!
Practicaste: sumxrelatedweighted averagemarginblanksrow context
- Resuelto
- Sin pistas
- Al primer intento
