1. Faro

Nivel 6 · Participación de la selección con ALLSELECTED

La solicitud

De Eric Lawson, Jefe de categorías de alto valor

“Mi equipo se ocupa de Furniture, Lighting y Outdoor, así que nuestra página tiene una segmentación con solo esas tres. La columna de participación divide entre toda la tienda, y nuestros porcentajes suman 63 %. Quiero la participación de cada categoría sobre las tres que elegí, sumando 100 %.”

Tu objetivo

La matriz tiene products[category] en las filas; una segmentación sobre products[category] selecciona Furniture, Lighting y Outdoor. Crea una medida llamada Share of Selected: el [Sales] de la fila dividido entre el [Sales] de todas las categorías seleccionadas en la segmentación. La fila Total debe mostrar 100 %.

  • Llena [Share of Selected] en cada fila del visualpendiente
  • También la fila Total correctapendiente

Tu medida

DAX
Visual
A matrix: rows = products[category]; values = [Sales], [Share of Selected]
Segmentaciones
products[category] = Furniture, Lighting, Outdoor
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[Share of Selected] fills in when you press Check
    El visual antes de tu respuesta
    categorySalesShare of Selected
    Furniture$1,393,164
    Lighting$1,001,844
    Outdoor$1,297,802
    Total$3,692,809

    Mote revisa tu resultado

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

    La lección

    Una participación es una razón: el número de esta fila sobre otro número mayor. Todo depende de cuál sea ese número mayor. Eric quiere que sea “todo lo que elegí”, y la segmentación es la forma de elegir.

    Dónde estás trabajando

    Esta página es un informe de práctica: Power BI Desktop solo funciona en Windows, así que un motor DAX creado para este sitio evalúa tu medida en cada celda, siguiendo las reglas de Power BI. La segmentación sobre la matriz representa una segmentación de categorías en la página del informe. En Power BI Desktop: Inicio → Nueva medida (Home → New measure), escribe la fórmula y luego Herramientas de medida → Formato → Porcentaje (Measure tools → Format → Percentage).

    De dónde vienen los filtros de una celda

    La celda de Lighting está filtrada dos veces sobre products[category]:

    1. Desde fuera del visual: la segmentación conserva Furniture, Lighting y Outdoor.
    2. Desde el visual: la fila conserva Lighting.

    El numerador, [Sales], usa ambos: las ventas de Lighting. El denominador necesita el primer filtro y no el segundo.

    ALL frente a ALLSELECTED

    Share of Total =
    DIVIDE([Sales], CALCULATE([Sales], ALL(products[category])))
    
    Share of Selected =
    DIVIDE([Sales], CALCULATE([Sales], ALLSELECTED(products[category])))
    • ALL(products[category]) elimina todos los filtros de la columna, tanto del visual como de la segmentación. El denominador son las seis categorías: toda la tienda. Las tres filas de Eric suman 63 %.
    • ALLSELECTED(products[category]) elimina los filtros que añade el visual (filas, columnas) pero conserva lo seleccionado fuera de él: segmentaciones, filtros de página y de informe. El denominador son las tres categorías seleccionadas, y las filas suman 100 %.

    Ambas conservan los filtros sobre otras columnas. Una segmentación de año se seguiría aplicando a las dos versiones.

    Compruébalo en la fila Total

    En la fila Total no hay filtro de fila, así que el numerador ya son las ventas de las tres categorías. Con ALLSELECTED el denominador es el mismo, y el Total muestra 100 %: una prueba rápida de que la medida hace lo que querías. Con ALL el Total muestra 63 %, la participación de la selección en la tienda.

    Cuándo ALL es la correcta

    A veces la participación en toda la tienda es lo importante: “Lighting es el 17 % de la empresa” no debería cambiar porque alguien filtró la página. Entonces usa ALL y dilo en el título de la columna. Muchos informes muestran ambas columnas lado a lado: participación de la selección y participación del total.

    Errores comunes

    • ALL cuando el lector espera la selección. Porcentajes que suman 63 % parecen un error.
    • ALLSELECTED sobre la columna equivocada. ALLSELECTED(products[name]) no elimina nada aquí: las filas son categorías.
    • Dividir con /. Usa DIVIDE para que una selección vacía dé un vacío y no un error.

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