1. Faro

Nivel 4 · Los 3 mejores productos como medida

La solicitud

De Marcus Bell, Jefe de merchandising

“Tengo un gráfico de barras con un filtro Top N que muestra nuestros 3 mejores productos de la categoría en la que haga clic. Ahora quiero la misma idea en la matriz de categorías: junto a las ventas de 2025 de cada categoría, cuánto aportan sus 3 mejores productos. Eso me dice qué categorías dependen de unos pocos éxitos.”

Tu objetivo

La matriz tiene products[category] en las filas y una segmentación en 'Date'[Year] = 2025. Usando la medida Sales dada, crea una medida llamada Top 3 Product Sales: las Sales de los 3 productos (products[name]) con las Sales más altas en el contexto de filtro actual, sumadas. En la fila Total da los 3 mejores productos de toda la tienda.

  • Llena [Top 3 Product Sales] en cada fila del visualpendiente
  • También la fila Total correctapendiente

Tu medida

DAX
Visual
A matrix: rows = products[category]; values = [Sales], [Top 3 Product Sales]
Segmentaciones
'Date'[Year] = 2025
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[Top 3 Product Sales] fills in when you press Check
    El visual antes de tu respuesta
    categorySalesTop 3 Product Sales
    Decor290,301.42
    Furniture573,131.05
    Kitchen292,808.2
    Lighting385,144.51
    Outdoor507,358.12
    Textiles251,426.23
    Total2,300,169.53

    Mote revisa tu resultado

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

    La lección

    Un filtro Top N en un visual conserva los N mejores elementos de un campo. Es rápido, pero filtra un visual entero y no te da un número que puedas poner en una matriz, dividir o comparar. Para eso escribes el Top N como una medida.

    Dónde estás trabajando

    Este es un informe de práctica, no Power BI (Power BI Desktop solo funciona en Windows). La matriz tiene las categorías en las filas y una segmentación de año 2025; un motor DAX creado para este sitio evalúa tu medida en cada celda, el Total incluido, y compara cada una con la respuesta.

    Para hacerlo de verdad en Power BI Desktop: Inicio → Nueva medida (Home → New measure), escribe la fórmula y arrástrala a Valores (Values) de la matriz junto a Sales. El filtro visual que Marcus ya usa está en el panel Filtros: selecciona el gráfico de barras, arrastra products[name] a Filters on this visual, Tipo de filtro: Top N (Filter type), Mostrar elementos: Superior 3 (Show items), Sales en Por valor (By value), Aplicar filtro (Apply filter).

    TOPN devuelve una tabla

    TOPN(3, VALUES(products[name]), [Sales])
    • VALUES(products[name]) es la lista de nombres de producto visibles en la celda actual: los productos de Furniture en la fila Furniture, los 120 en la fila Total.
    • TOPN evalúa [Sales] para cada nombre y devuelve las 3 filas con los valores más altos. Los empates en el punto de corte se conservan todos, así que la tabla puede tener más de 3 filas.
    • El resultado es una tabla, así que no se puede mostrar sola. Tiene que alimentar algo que acepte una tabla.

    Usa la tabla como filtro

    Top 3 Product Sales = CALCULATE([Sales], TOPN(3, VALUES(products[name]), [Sales]))

    Una tabla pasada a CALCULATE actúa como filtro: solo quedan esos tres nombres. La categoría y el año de la celda siguen ahí, así que Sales se calcula para los tres productos de esa categoría en 2025. El mismo resultado sale de iterar la tabla: SUMX(TOPN(3, VALUES(products[name]), [Sales]), [Sales]).

    Para 2025:

    categoría Sales Top 3 Product Sales participación
    Outdoor $507,358 $315,719 62 %
    Furniture $573,131 $269,710 47 %
    Kitchen $292,808 $104,888 36 %

    Outdoor depende de unos pocos éxitos; Kitchen reparte sus ventas.

    ¿Medida o filtro de visual?

    El filtro visual y la medida coinciden en lo que significa “top 3”, pero hacen trabajos distintos. Usa el filtro visual para mostrar solo los mejores elementos en un gráfico. Usa la medida cuando los mejores elementos son un número: una columna en una matriz, una participación del total o una tarjeta KPI. RANKX(ALLSELECTED(products[name]), [Sales]) es la herramienta relacionada cuando necesitas la posición de cada producto en lugar de una suma.

    Errores comunes

    • ALL sobre la tabla entera. ALL(products) quita también la categoría de la fila, así que todas las filas muestran los mismos 3 mejores de toda la tienda.
    • Clasificar por lo equivocado. El tercer argumento decide el orden. Si clasificas por un conteo de filas o lo omites, las 3 filas no son los 3 más vendidos.
    • Esperar exactamente N filas. Los empates en el punto de corte traen filas adicionales.

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