1. Faro

Nivel 1 · Una columna de rango de precio con IF

¿Es nuevo para ti? Lee primero el concepto: ¿Columna calculada o medida?

La solicitud

De Olivia Bennett, Responsable de Merchandising

“Para la reunión del catálogo quiero dividir nuestra gama en dos: todo lo que cuesta $100 o más es Premium, todo lo demás es Everyday. ¿Cuántos productos hay en cada grupo y cuántas unidades ha vendido cada grupo?”

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 Band a productspendiente
  • También la fila Total correctapendiente

Tu columna calculada

DAX
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…

    VisualData view of products: your column appears in the visual once you press Check
    El visual antes de tu respuesta
    product_idnamecategorysubcategoryunit_priceunit_cost
    101Vale Velvet LoveseatFurnitureSofas1,659
    102Alder Oak Coffee TableFurnitureTables919503.5
    103Orchard Rattan Dining ChairFurnitureChairs789429.87
    104Upland Oak BookcaseFurnitureStorage429214.7
    105Avery Leather Bed FrameFurnitureBeds449232.7
    106Northfield Rattan SectionalFurnitureSofas22979.35
    107Birch Teak Side TableFurnitureTables16954.61
    108Ashford Leather Dining ChairFurnitureChairs369139.71

    Mote revisa tu resultado

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

    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. > 100 y >= 100 difieren 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 escribir products[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.

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