La solicitud

De Rachel Kim, Gerente de Categoría
Tu objetivo
La matriz tiene products[category] en las filas y la medida dada Sales. Crea una medida llamada Share of Sales: Sales de la categoría dividido entre Sales de todos los productos. Usa DIVIDE, y CALCULATE con ALL(products) para el denominador.
- Llena
[Share of Sales]en cada fila del visualpendiente - También la fila Total correctapendiente
Tu medida
- Visual
- A matrix: rows = products[category]; values = [Sales], [Share of Sales]
- 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 | Share of Sales |
|---|---|---|
| Decor | $822,667 | |
| Furniture | $1,393,164 | |
| Kitchen | $799,150 | |
| Lighting | $1,001,844 | |
| Outdoor | $1,297,802 | |
| Textiles | $579,658 | |
| Total | $5,894,284 |
Mote revisa tu resultado
Presiona Comprobar. Mote completa tu respuesta y la compara con lo que necesita el informe.
Lo que recibe Rachel, y por qué
La lección
Un porcentaje del total es una fracción cuya parte de arriba y de abajo viven en contextos de
filtro distintos. La de arriba es el Sales propio de la celda. La de abajo es la misma medida
con el filtro de categoría quitado. ALL es la forma de quitarlo.
En qué estás trabajando
Esta página ejecuta un motor DAX de práctica creado para este sitio, que evalúa tu medida en cada celda de la matriz y la comprueba. En Power BI Desktop: Home → New measure, escribe la fórmula, y con la medida seleccionada configura Measure tools → Format → Percentage para que 0.236 se muestre como 23.6 %.
ALL quita filtros
Dentro de CALCULATE, ALL(products) es un modificador de filtro: quita todos los filtros
sobre la tabla products (categoría, subcategoría, nombre de producto) antes de evaluar la
expresión.
Share of Sales =
DIVIDE(
[Sales],
CALCULATE([Sales], ALL(products))
)
Para la fila Lighting:
[Sales]ve category = Lighting: unos $1.0 millones.CALCULATE([Sales], ALL(products))no ve filtro de producto: unos $5.9 millones.- DIVIDE devuelve unos 0.17, mostrado como 17.0 %.
En la fila Total ambas mitades no ven filtro de producto, así que la cuota es 100 %.
ALL sobre una tabla o sobre una columna
ALL(products) limpia los filtros de todas las columnas de la tabla. ALL(products[category])
limpia solo el filtro de categoría, así que un filtro de subcategoría o de producto sobreviviría.
Para una matriz de categorías ambos dan el mismo resultado; la diferencia se nota cuando un visual
tiene varias columnas de producto, que es el siguiente nivel.
ALL toca solo la tabla o columna que nombras. Una segmentación sobre 'Date'[Year] o sobre
orders[channel] sigue aplicándose al denominador, que es lo que Rachel quiere: cuando la página
está filtrada a 2025, las cuotas son cuotas de las ventas de 2025 y siguen sumando 100 %. Para
ignorar todos los filtros del informe escribirías ALL() o REMOVEFILTERS() sin argumento, lo
cual rara vez es lo que necesita una cuota.
Por qué DIVIDE
DIVIDE(a, b) devuelve un vacío en lugar de un error cuando b es cero o está vacío. Un /
normal mostraría «Infinity» o un error en una celda vacía. Usa DIVIDE para cada razón de un
informe.
Errores comunes
- Los mismos filtros en ambas mitades.
DIVIDE([Sales], [Sales])es 100 % en todas partes. - ALL sobre la tabla de hechos.
ALL(order_items)quita demasiado: los filtros de una tabla de hechos incluyen los de todas las tablas a las que apunta (products, orders, customers, Date), así que la segmentación de año también desaparece y las cuotas ya no suman 100 % en una página filtrada. Quita el filtro donde vive. - Fijar el total a mano. Escribir 5,894,284 como denominador se rompe en cuanto alguien mueve una segmentación.
¡Linterna encendida!
Practicaste: allcalculatedividepercent of totalremove filters
- Resuelto
- Sin pistas
- Al primer intento
