La solicitud

De Marcus Bell, Jefe de merchandising
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
- 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…
Solución de referencia
| category | Sales | Top 3 Product Sales |
|---|---|---|
| Decor | 290,301.42 | |
| Furniture | 573,131.05 | |
| Kitchen | 292,808.2 | |
| Lighting | 385,144.51 | |
| Outdoor | 507,358.12 | |
| Textiles | 251,426.23 | |
| Total | 2,300,169.53 |
Mote revisa tu resultado
Presiona Comprobar. Mote completa tu respuesta y la compara con lo que necesita el informe.
Lo que recibe Marcus, y por qué
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.TOPNevalú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.
¡Linterna encendida!
Practicaste: topntop n filtercalculatevaluesfilter context
- Resuelto
- Sin pistas
- Al primer intento
