Nivel 1 · Una columna de rango de precio con IF
¿Es nuevo para ti? Lee primero el concepto: ¿Columna calculada o medida?
0 de 3
La solicitud

De Olivia Bennett, Responsable de Merchandising
Tu objetivo
Añade a products una columna calculada llamada Price Band: "Premium" cuando products[unit_price] sea 100 o más, y en otro caso "Everyday". La matriz agrupa las medidas dadas Products y Units Ordered por tu columna.
- Agrega la columna
Price Bandaproductspendiente - También la fila Total correctapendiente
Tu columna calculada
- Visual
- A matrix: rows = your new column on products, values = [Products], [Units Ordered]
- Medidas del informe
Products = COUNTROWS(products)Units Ordered = 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
| product_id | name | category | subcategory | unit_price | unit_cost |
|---|---|---|---|---|---|
| 101 | Vale Velvet Loveseat | Furniture | Sofas | 1,659 | |
| 102 | Alder Oak Coffee Table | Furniture | Tables | 919 | 503.5 |
| 103 | Orchard Rattan Dining Chair | Furniture | Chairs | 789 | 429.87 |
| 104 | Upland Oak Bookcase | Furniture | Storage | 429 | 214.7 |
| 105 | Avery Leather Bed Frame | Furniture | Beds | 449 | 232.7 |
| 106 | Northfield Rattan Sectional | Furniture | Sofas | 229 | 79.35 |
| 107 | Birch Teak Side Table | Furniture | Tables | 169 | 54.61 |
| 108 | Ashford Leather Dining Chair | Furniture | Chairs | 369 | 139.71 |
Mote revisa tu resultado
Presiona Comprobar. Mote completa tu respuesta y la compara con lo que necesita el informe.
Lo que recibe Olivia, y por qué
La lección
Una columna calculada añade una columna nueva a una tabla, rellenada por una fórmula DAX que se ejecuta una vez por cada fila. Es lo más parecido en Power BI a arrastrar una fórmula hacia abajo por una columna en Excel.
En qué estás trabajando
Power BI Desktop solo funciona en Windows, así que esto es un informe de práctica creado para
este sitio: el modelo de la tienda, una matriz y un editor de DAX. Tu columna se añade a
products, la matriz agrupa por ella y el motor comprueba cada celda. Sigue las reglas de Power
BI, así que la fórmula funciona allí sin cambios.
En Power BI Desktop: selecciona la tabla products en el panel Data, luego Table tools →
New column (o Modeling → New column, o clic derecho en la tabla → New column). Escribe
la fórmula en la barra de fórmulas y pulsa Enter. La nueva columna aparece en la vista Tabla
rellena para cada fila, y en el panel Data con un pequeño icono de columna.
Contexto de fila: una fila a la vez
Cuando una fórmula de columna menciona products[unit_price], se refiere al precio de esta
fila. Eso se llama contexto de fila (row context): la fórmula se evalúa con una fila actual,
luego la siguiente, luego la siguiente, 120 veces para 120 productos.
Price Band = IF(products[unit_price] >= 100, "Premium", "Everyday")
IF recibe tres argumentos: una prueba que es TRUE o FALSE, el valor cuando es TRUE y el valor
cuando es FALSE. Los valores de texto van entre comillas dobles rectas.
Agrupar por la columna nueva
Una vez que la columna existe, se comporta como cualquier columna que vino con los datos. Pon
products[Price Band] en las filas de una matriz y aparecen dos filas, Everyday y Premium. Las
medidas Products (COUNTROWS(products)) y Units Ordered (SUM(order_items[quantity])) se
evalúan por fila: el rango filtra products, la relación lleva el filtro a order_items, y cada
medida cuenta o suma solo ese rango.
Cuando la columna es calculada
Las columnas calculadas se calculan cuando los datos se cargan o actualizan, y se guardan en el modelo como las columnas importadas. Ocupan memoria y nunca reaccionan a las segmentaciones: el rango de un producto es el mismo en todas las páginas. Eso es lo correcto para una etiqueta como esta, que pertenece al propio producto.
Errores comunes
- El límite.
> 100y>= 100difieren para cada producto que cuesta exactamente 100. Sigue las palabras del ticket. - Comillas curvas.
“Premium”copiado de un documento no es DAX válido; usa"Premium". - Sin referencia de columna.
IF([unit_price] >= 100, …)funciona dentro de la tabla de productos, pero escribirproducts[unit_price]completo hace la fórmula legible en cualquier lugar. - Una medida en su lugar. Una medida no tiene fila actual, así que
products[unit_price]por sí sola no tiene un único valor ahí. Las etiquetas por fila son columnas.
¡Linterna encendida!
Practicaste: calculated columnifrow contextdax
- Resuelto
- Sin pistas
- Al primer intento
