1. Faro

Nivel 1 · Qué le hace una segmentación a una medida

¿Es nuevo para ti? Lee primero el concepto: Cada clic es un filtro

La solicitud

De Rachel Moreno, Gerente regional de ventas

“En la página de canales elegí web en la segmentación, y ahora todos los números son solo de web. Eso es lo que quería para la columna Sales, pero también necesito las ventas de cada categoría en todos los canales justo al lado, para ver cuánto aporta web. ¿Puede la segunda columna ignorar la segmentación?”

Tu objetivo

La matriz tiene products[category] en las filas; las segmentaciones seleccionan 'Date'[Year] = 2025 y orders[channel] = web. El informe ya tiene Sales (solo pedidos completados). Crea una medida llamada All Channel Sales que devuelva Sales de todos los canales: debe ignorar la segmentación de canal pero seguir respetando la de año y la categoría de cada fila.

  • Llena [All Channel Sales] en cada fila del visualpendiente
  • También la fila Total correctapendiente

Tu medida

DAX
Visual
A matrix: rows = products[category]; values = [Sales], [All Channel Sales]
Segmentaciones
'Date'[Year] = 2025orders[channel] = web
Medidas del informe
Sales = CALCULATE(SUM(order_items[line_total]), 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[All Channel Sales] fills in when you press Check
    El visual antes de tu respuesta
    categorySalesAll Channel Sales
    Decor121,360.48
    Furniture261,924.1
    Kitchen120,343.39
    Lighting156,002.69
    Outdoor219,252.66
    Textiles101,463.46
    Total980,346.78

    Mote revisa tu resultado

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

    La lección

    Una segmentación parece un control de la página, pero para DAX es simplemente un filtro. Elige web y Power BI añade orders[channel] = "web" al contexto de filtro de cada visual al que llega la segmentación. Tus medidas no saben que existe una segmentación; solo ven menos filas.

    Dónde estás trabajando

    Este es un informe de práctica, no Power BI: Power BI Desktop solo funciona en Windows, así que la página te da el modelo de la tienda, una matriz y las selecciones de las segmentaciones escritas encima (año 2025, canal web). Un motor DAX creado para este sitio evalúa tu medida en cada celda con esos filtros activos y compara cada celda con la respuesta.

    Para hacerlo de verdad en Power BI Desktop: añade una segmentación desde Visualizaciones → Segmentación de datos (Visualizations → Slicer), suelta orders[channel] en su pozo Campo (Field) y elige web. Luego selecciona una tabla en el panel Datos (Data), Inicio → Nueva medida (Home → New measure), escribe la fórmula y arrastra la medida a Valores (Values) de la matriz.

    Cómo llega una segmentación a una medida

    Para la fila Furniture en 2025, [Sales] se evalúa con tres filtros: categoría = Furniture (la fila), año = 2025 (una segmentación, a través de la tabla Date) y canal = web (la otra segmentación). Son $261,924. Todos los visuales de la página reciben los mismos filtros de segmentación a menos que cambies sus interacciones (nivel 3).

    Normalmente eso es justo lo correcto. A veces un número debe quedarse fijo mientras el lector hace clic: un denominador para una participación, una línea de meta, “todos los canales” para comparar.

    Quitar un solo filtro

    CALCULATE evalúa una expresión en un contexto de filtro modificado. Sus argumentos de filtro pueden añadir filtros, reemplazarlos o quitarlos:

    All Channel Sales = CALCULATE([Sales], REMOVEFILTERS(orders[channel]))

    REMOVEFILTERS(orders[channel]) quita cualquier filtro sobre esa columna, venga de una segmentación, de un encabezado de fila o del panel de filtros. La fila de categoría y la segmentación de año se mantienen. En la fila Total la medida da $2,300,170: todo 2025, todos los canales.

    ALL(orders[channel]) usado como filtro de CALCULATE hace lo mismo; REMOVEFILTERS se añadió después como un nombre más claro para exactamente este uso.

    Hasta dónde llega la eliminación

    Quita lo más estrecho que quieras decir:

    argumento de filtro canal año categoría
    REMOVEFILTERS(orders[channel]) quitado conservado conservado
    REMOVEFILTERS(orders) quitado quitado conservado
    REMOVEFILTERS() (sin argumento) quitado quitado quitado

    La fila del medio sorprende a la gente. El filtro de año empieza en la tabla Date, pero llega a orders a través de la relación, y borrar toda la tabla orders lo borra también.

    La otra vía: cambiar el visual, no la medida

    En Power BI también puedes evitar que la segmentación toque un visual entero con Formato → Editar interacciones (Format → Edit interactions). Está bien cuando todos los números del visual deben ignorarla. Cuando una columna sigue la segmentación y la siguiente no, como aquí, solo DAX puede hacerlo.

    Errores comunes

    • Quitar la tabla entera. ALL(orders) descarta también el año sin avisar.
    • Escribir a mano los otros canales. orders[channel] IN {"web", "app", "marketplace"} parece equivalente, pero reemplaza el filtro; se rompe el día que aparece un cuarto canal.
    • Olvidar la segmentación en el título. Si una columna ignora una segmentación, dilo en su nombre.

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