La solicitud

De Nicole Adams, Gerente de Logística
Tu objetivo
Añade a order_items una columna calculada llamada Quantity Band: "Check" cuando quantity sea 0 o menos, "Small" cuando sea menor que 3, "Medium" de 3 a 5 y "Large" por encima de 5. La matriz agrupa las medidas dadas Order Lines y Units por tu columna.
- Agrega la columna
Quantity Bandaorder_itemspendiente - También la fila Total correctapendiente
Tu columna calculada
- Visual
- A matrix: rows = your new column on order_items, values = [Order Lines], [Units]
- Medidas del informe
Order Lines = COUNTROWS(order_items)Units = SUM(order_items[quantity])
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
| order_item_id | order_id | product_id | quantity | unit_price | discount_pct |
|---|---|---|---|---|---|
| 1 | 1,001 | 121 | 9 | 31.99 | 0 |
| 2 | 1,001 | 154 | 3 | 11.99 | 0 |
| 3 | 1,002 | 154 | 4 | 11.99 | 0 |
| 4 | 1,002 | 194 | 1 | 149 | 0 |
| 5 | 1,002 | 193 | 2 | 19.99 | 0 |
| 6 | 1,002 | 196 | 2 | 25.99 | 0 |
| 7 | 1,002 | 156 | 1 | 53.99 | 0 |
| 8 | 1,003 | 134 | 1 | 92.99 | 10 |
Mote revisa tu resultado
Presiona Comprobar. Mote completa tu respuesta y la compara con lo que necesita el informe.
Lo que recibe Nicole, y por qué
La lección
Dos rangos necesitan un IF. Cuatro rangos necesitan o tres IF anidados uno dentro de otro, o un
SWITCH que se lee como una lista. Ambos funcionan; la lista es más fácil de leer y de cambiar.
En qué estás trabajando
Esto es un informe de práctica creado para este sitio; Power BI Desktop solo funciona en
Windows. Tu columna se añade a order_items, y la matriz agrupa Order Lines
(COUNTROWS(order_items)) y Units (SUM(order_items[quantity])) por ella.
En Power BI Desktop: selecciona order_items en el panel Data, Table tools → New column,
escribe la fórmula (Shift+Enter empieza una línea nueva en la barra de fórmulas) y pulsa Enter.
IF anidado
Quantity Band =
IF(order_items[quantity] <= 0, "Check",
IF(order_items[quantity] < 3, "Small",
IF(order_items[quantity] <= 5, "Medium", "Large")))
Cada IF maneja una prueba y pasa el resto al siguiente. Funciona, pero en el cuarto rango los
paréntesis son difíciles de contar.
SWITCH(TRUE(), …)
SWITCH compara un valor con una lista de casos. Dale TRUE() como valor, y cada caso se
convierte en una prueba: gana la primera prueba que sea igual a TRUE.
Quantity Band =
SWITCH(
TRUE(),
order_items[quantity] <= 0, "Check",
order_items[quantity] < 3, "Small",
order_items[quantity] <= 5, "Medium",
"Large"
)
El último argumento, sin prueba, es el valor predeterminado: lo que no pasó ninguna prueba. Aquí es toda cantidad por encima de 5.
El orden es la lógica
Como gana la primera prueba TRUE, cada prueba solo ve las filas que las anteriores dejaron pasar.
La prueba < 3 no necesita decir «y por encima de 0», porque las filas con 0 o menos ya tienen su
etiqueta. Pon las pruebas en el orden equivocado y los rangos cambian en silencio: prueba < 3
primero y toda cantidad negativa pasa a ser Small.
Lee también con cuidado los límites del ticket. «De 3 a 5 es Medium» incluye tanto 3 como 5, así
que la prueba es <= 5, y «más de 5» es el valor predeterminado.
Las filas defectuosas merecen su propio rango
Las líneas de pedido de Harbor & Pine incluyen un puñado de cantidades de 0 o menos, dejadas por una importación defectuosa. Un rango Check las mantiene visibles en lugar de dejar que se escondan dentro de Small, para que alguien las arregle en el origen. Fíjate en que el total de Units de la matriz las incluye, negativos y todo.
Errores comunes
- La prueba de filas defectuosas al final. Demasiado tarde: Small ya se ha llevado esas filas.
< 5para «de 3 a 5». Las líneas de exactamente 5 unidades pasarían a ser Large. (Aquí ninguna línea tiene 5, pero la próxima importación podría.)- Sin valor predeterminado. Sin un valor final, las filas que no pasan ninguna prueba reciben un rango en blanco.
¡Linterna encendida!
Practicaste: calculated columnswitchnested ifbandsdata quality
- Resuelto
- Sin pistas
- Al primer intento
