La solicitud

De Brian Foster, Jefe de la app móvil
Tu objetivo
Paso 1 de 3. Crea una medida llamada Category Share: las Sales de cada categoría divididas entre las Sales de todas las categorías, para el canal y el año que seleccionan las segmentaciones. En la fila Total es 100 %.
- Llena
[Category Share]en cada fila del visualpendiente - También la fila Total correctapendiente
Paso 2 de 3. Añade una medida llamada Channel Share: las Sales de cada categoría en el canal seleccionado divididas entre las Sales de esa categoría en todos los canales, todavía en 2025. Conserva Category Share en el editor.
- Llena
[Channel Share]en cada fila del visualpendiente - También la fila Total correctapendiente
Paso 3 de 3. Añade una medida llamada Share Label que devuelva el canal seleccionado, luego ": ", luego Channel Share con formato "0.0%", luego " of sales", por ejemplo "app: 43.3% of sales". Cuando no hay exactamente un canal seleccionado empieza con "All channels" en su lugar. Conserva las otras dos medidas.
- Llena
[Share Label]en cada fila del visualpendiente - También la fila Total correctapendiente
Paso 1 · tu medida
- Visual
- A matrix: rows = products[category]; values = [Sales], [Category Share]
- Segmentaciones
- 'Date'[Year] = 2025orders[channel] = app
- 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 | Category Share |
|---|---|---|
| Decor | 127,955.33 | |
| Furniture | 215,193.5 | |
| Kitchen | 133,000.84 | |
| Lighting | 174,926.47 | |
| Outdoor | 227,093.18 | |
| Textiles | 117,354.86 | |
| Total | 995,524.18 |
Mote revisa tu resultado
Presiona Comprobar. Mote completa tu respuesta y la compara con lo que necesita el informe.
Paso 2 · tu medida
- Visual
- A matrix: rows = products[category]; values = [Sales], [Channel Share]
- Segmentaciones
- 'Date'[Year] = 2025orders[channel] = app
- 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 | Channel Share |
|---|---|---|
| Decor | 127,955.33 | |
| Furniture | 215,193.5 | |
| Kitchen | 133,000.84 | |
| Lighting | 174,926.47 | |
| Outdoor | 227,093.18 | |
| Textiles | 117,354.86 | |
| Total | 995,524.18 |
Mote revisa tu resultado
Presiona Comprobar. Mote completa tu respuesta y la compara con lo que necesita el informe.
Paso 3 · tu medida
- Visual
- A matrix: rows = products[category]; values = [Sales], [Share Label]
- Segmentaciones
- 'Date'[Year] = 2025orders[channel] = app
- 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 Label |
|---|---|---|
| Decor | 127,955.33 | |
| Furniture | 215,193.5 | |
| Kitchen | 133,000.84 | |
| Lighting | 174,926.47 | |
| Outdoor | 227,093.18 | |
| Textiles | 117,354.86 | |
| Total | 995,524.18 |
Mote revisa tu resultado
Presiona Comprobar. Mote completa tu respuesta y la compara con lo que necesita el informe.
Lo que recibe Brian, y por qué
La lección
Este desafío junta el capítulo en una página: segmentaciones que lo filtran todo, dos medidas que ignoran cada una exactamente un filtro a propósito y una etiqueta que dice lo que seleccionó el lector.
Dónde estás trabajando
Un informe de práctica, no Power BI, que solo funciona en Windows. Las segmentaciones (año 2025, canal app) están listadas sobre la matriz de categorías, y un motor DAX creado para este sitio evalúa tus medidas en cada celda. Cada paso comprueba la última medida del editor; conserva las anteriores.
En Power BI Desktop añadirías una Segmentación (Slicer) para orders[channel] y otra para
'Date'[Year], crearías cada medida con Inicio → Nueva medida (Home → New measure) y darías formato
a las participaciones con Herramientas de medida → Formato → Porcentaje (Measure tools → Format →
Percentage) con la medida seleccionada. La etiqueta va en una tarjeta, o en el título de un visual con
Dar formato al visual → General → Título → fx → Valor de campo (Format visual → General → Title →
fx → Field value).
Dos participaciones, dos denominadores
Ambas participaciones dividen [Sales] entre unas Sales mayores. La única diferencia es qué filtro
descarta la mayor:
| medida | conserva | quita | responde |
|---|---|---|---|
| Category Share | canal, año | categoría | ¿de dónde vienen las ventas de app? |
| Channel Share | categoría, año | canal | ¿cuánto de cada categoría pasa por la app? |
Category Share = DIVIDE([Sales], CALCULATE([Sales], REMOVEFILTERS(products[category])))
Como ninguna medida nombra el año, la segmentación de año llega a ambos denominadores. Cambia la segmentación a 2024 y ambas participaciones son de 2024; cambia el canal a web y ambas tratan de web. Eso es lo que significa “consciente de las segmentaciones”: la medida solo anula lo que tiene que anular.
DIVIDE en lugar de / devuelve BLANK cuando el denominador está vacío o es cero (un canal sin ventas
en una categoría) en lugar de Infinity o NaN.
Los números de app en 2025
| categoría | ventas de app | Category Share | Channel Share |
|---|---|---|---|
| Outdoor | $227,093 | 22.8 % | 44.8 % |
| Furniture | $215,194 | 21.6 % | 37.5 % |
| Textiles | $117,355 | 11.8 % | 46.7 % |
| Total | $995,524 | 100 % | 43.3 % |
Furniture es una parte grande de lo que vende la app, pero es la categoría más débil de la app en relación con los otros canales: un punto útil para la charla de Brian.
La etiqueta
Share Label = SELECTEDVALUE(orders[channel], "All channels") & ": " & FORMAT([Channel Share], "0.0%") & " of sales"
FORMAT convierte un número en texto con una cadena de formato: "0.0%" multiplica por 100 y añade un
decimal y el signo de porcentaje. Las medidas de texto no se pueden sumar ni graficar, pero son
exactamente lo que necesita una tarjeta o un título dinámico.
Errores comunes
- Quitar una tabla en lugar de una columna.
ALL(orders)descarta también el año que llega a orders a través de la tabla Date. - Intercambiar los denominadores. Si la fila Total de Category Share no es 100 %, se quitó el filtro equivocado.
- Dividir con
/. Bien hasta que una segmentación deja vacío un denominador y una celda muestra Infinity.
¡Linterna encendida!
Practicaste: slicerremovefiltersdivideselectedvalueformatfilter context
- Resuelto
- Sin pistas
- Al primer intento
