1. Faro

Nivel 7 · Clientes nuevos por fecha de registro con USERELATIONSHIP

La solicitud

De Natalie Cooper, Gerente de marketing de crecimiento

“Estoy reportando cuántos clientes se registraron cada trimestre desde 2023, para la revisión del programa de referidos. Arrastré un conteo de clientes junto a los trimestres y me salió 2,018 en todas las filas, que es todo el que alguna vez se registró. ¿Qué estoy haciendo mal?”

Tu objetivo

La matriz tiene 'Date'[Year] y 'Date'[Quarter] en las filas, con una segmentación en 'Date'[Year] para 2023, 2024 y 2025. El modelo ya tiene una relación inactiva de customers[signup_date] a 'Date'[Date]. Crea una medida llamada New Customers que cuente las filas de customers cuyo signup_date cae en el periodo de la celda.

  • Llena [New Customers] en cada fila del visualpendiente
  • También la fila Total correctapendiente

Tu medida

DAX
Visual
A matrix: rows = 'Date'[Year], 'Date'[Quarter]; values = [New Customers]
Segmentaciones
'Date'[Year] = 2023, 2024, 2025
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[New Customers] fills in when you press Check
    El visual antes de tu respuesta
    YearQuarterNew Customers
    2,023Q1
    2,023Q2
    2,023Q3
    2,023Q4
    2,024Q1
    2,024Q2
    2,024Q3
    2,024Q4
    2,025Q1
    2,025Q2
    2,025Q3
    2,025Q4
    Total

    Mote revisa tu resultado

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

    La lección

    Un cliente tiene más de una fecha que importa. Las relaciones activas del modelo conectan la tabla Date con orders por la fecha del pedido. La pregunta de Natalie trata de otra fecha, el día en que un cliente se registró, así que necesita otro camino.

    Dónde estás trabajando

    La matriz de abajo es un informe de práctica creado para este sitio; Power BI Desktop solo funciona en Windows. Un motor DAX en la página evalúa tu medida en cada celda, siguiendo las reglas de Power BI para relaciones activas e inactivas. En Power BI Desktop la relación inactiva es la línea discontinua en la Vista de modelo (Model view); la crearías con Modelado → Administrar relaciones → Nueva (Modeling → Manage relationships → New), dejando sin marcar Hacer activa esta relación (Make this relationship active). Luego Inicio → Nueva medida (Home → New measure) para la medida.

    Por qué el conteo es igual en todas partes

    Sigue el filtro. La fila 2024 Q3 filtra 'Date'. La relación activa lleva ese filtro a orders (por order_date), y de orders a order_items. Nada lo lleva a customers: la relación de orders a customers es de muchos a uno, con dirección única, así que customers filtra orders, no al revés. COUNTROWS(customers) ve a todos los clientes en todas las celdas.

    Un solo camino activo a la vez

    Power BI permite solo un camino activo entre dos tablas. El modelo tiene una segunda relación, customers[signup_date] → 'Date'[Date], pero está inactiva. Si estuviera activa, habría dos rutas de Date a orders (directa y a través de customers), y Power BI no podría saber a qué fecha te refieres. Una relación inactiva no hace nada hasta que una medida la pide.

    USERELATIONSHIP la activa, para un solo cálculo

    New Customers =
    CALCULATE(
        COUNTROWS(customers),
        USERELATIONSHIP(customers[signup_date], 'Date'[Date])
    )
    • USERELATIONSHIP solo funciona como argumento de filtro de CALCULATE (o en funciones que los aceptan, como CALCULATETABLE).
    • Nombra las dos columnas de una relación existente, por convención primero el lado de muchos (Power BI acepta cualquier orden). No crea una relación.
    • Se aplica solo dentro de ese CALCULATE. Todas las demás medidas del informe siguen usando las fechas de pedido.

    Ahora las fechas de la fila 2024 Q3 filtran customers[signup_date] directamente, y COUNTROWS cuenta los clientes que se registraron en ese trimestre.

    La fila Total y la segmentación

    Algunos clientes se registraron en 2022, antes de que empiece la tabla Date. La segmentación de año conserva 2023 a 2025, así que la fila Total cuenta solo los registros de esos tres años. Sin la segmentación, el Total contaría a todos los clientes, incluidos aquellos cuya fecha de registro no tiene fila en la tabla Date.

    Errores comunes

    • Activar la relación. Rompe el camino de la fecha de pedido, y todas las medidas de ventas cambian de significado.
    • USERELATIONSHIP fuera de CALCULATE. Es un modificador de filtro, no un valor.
    • Nombrar columnas sin relación entre ellas. USERELATIONSHIP solo activa una relación que ya existe en el modelo.

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