La solicitud

De Samantha Price, Gerente de Marketing de Ciclo de Vida
Tu objetivo
El modelo ya relaciona order_items → orders → customers y orders → 'Date' (todas activas), y 'Date' está marcada. Añade la relación de customers[signup_date] a 'Date'[Date], varios a uno, dirección única, y hazla inactiva para que las rutas existentes sigan funcionando.
- Todas las relaciones que el informe necesita, bien configuradaspendiente
- La tabla de fechas marcadapendiente
Tu modelo
Las tablas del modelo: 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), customers (customer_id, first_name, last_name, email, city, state, signup_date, segment, referral_source), Date (Date, Year, Quarter, Month Number, Month, Year Month, Year Quarter, Day, Weekday Number, Weekday).
Ya relacionadas: order_items[order_id] > orders[order_id] | many-to-one | single | activeorders[customer_id] > customers[customer_id] | many-to-one | single | activeorders[order_date] > 'Date'[Date] | many-to-one | single | active
Cargando el editor…
Solución de referencia
Mote revisa tu resultado
Presiona Comprobar. Mote completa tu respuesta y la compara con lo que necesita el informe.
Lo que recibe Samantha, y por qué
La lección
Un calendario puede describir varias fechas: cuándo se hizo un pedido, cuándo se envió, cuándo se registró el cliente. Una tabla Date usada así se llama dimensión con varios roles (role-playing dimension), y solo uno de sus roles puede estar activo entre las mismas tablas.
En qué estás trabajando
Este es un diagrama de práctica creado para este sitio; Power BI Desktop solo funciona en Windows. Las relaciones existentes están dibujadas y bloqueadas. Añade la nueva con el formulario, incluido el ajuste active; el diagrama rechaza una segunda ruta activa como lo hace Power BI.
En Power BI Desktop: Modeling → Manage relationships → New, elige customers y signup_date,
luego Date y Date, Many to one (*:1), Single, y desmarca Make this relationship
active. En la vista Modelo una relación inactiva se dibuja como una línea discontinua.
Por qué solo puede haber una ruta activa
Traza hoy los filtros desde 'Date':
'Date' → orders (order_date, active)
orders → customers? no: filters flow from customers to orders, not back
Pero añade customers[signup_date] > 'Date'[Date] como activa y 'Date' se relaciona tanto con
orders como con customers, mientras que customers también se relaciona con orders. Ahora un
filtro para marzo de 2025 podría llegar a orders directamente (pedidos hechos en marzo) o a
través de customers (pedidos de clientes que se registraron en marzo). Dos respuestas a una
pregunta: Power BI lo llama ruta ambigua y no la crea como activa.
Inactiva, no inútil
Una relación inactiva se queda en el modelo sin hacer nada hasta que una medida la pide:
New Signups =
CALCULATE(
COUNTROWS(customers),
USERELATIONSHIP(customers[signup_date], 'Date'[Date])
)
Dentro de ese CALCULATE la relación de registro está activa y la ruta de la fecha del pedido se
aparta, así que 'Date'[Month] en las filas da los registros por mes. Todas las demás medidas
siguen usando la fecha del pedido. Escribirás medidas como esta en el capítulo de DAX avanzado.
¿Cuál debería ser la activa?
La que necesitan la mayoría de las medidas. Ventas, unidades y pedidos siguen la fecha del pedido, así que esa se queda activa; la fecha de registro sirve a una o dos medidas.
Errores comunes
- Hacerla activa de todos modos. Power BI la rechaza o apaga otra relación, y las ventas por mes cambian sin avisar.
- Una segunda tabla Date «para evitar el problema». Funciona, pero duplica el calendario y las segmentaciones. Un calendario más USERELATIONSHIP es la respuesta habitual.
- Olvidar que existe. Una relación inactiva nunca filtra nada por sí sola. Si un gráfico de registros muestra meses de pedidos, a la medida le falta USERELATIONSHIP.
¡Linterna encendida!
Practicaste: inactive relationshipactive relationshipambiguous pathuserelationshiprole playing dimension
- Resuelto
- Sin pistas
- Al primer intento
