En Aglaia nos volvemos a sumergir en el mundo de Power BI y DAX, dándote a conocer algunas de sus funciones más destacadas. En esta ocasión, nos centramos en una esencial, la función RELATED en DAX. Aquí va un avance acerca de su utilidad: se va a convertir en tu aliada cuando trabajas con modelos de datos con tablas relacionadas, permitiéndote transferir información de una tabla a otra de forma eficiente. Descubre con nosotros qué es la función RELATED en DAX, para qué sirve y cómo puede impulsar tus análisis.
¿Qué es la función RELATED en DAX?
Como las funciones DATESINPERIOD, SWITCH o CALCULATE, la función RELATED es una función en DAX (Data Analysis Expressions). Está diseñada para que puedas acceder a valores de una tabla relacionada desde la tabla en la que estás trabajando actualmente. Recuerda que Power BI trabaja con modelos relacionales, así que puedes tener varias tablas conectadas entre sí mediante relaciones. Estas relaciones permiten mantener los datos organizados, evitar duplicidades y mantener la integridad y eficiencia del modelo.
Entonces, cuando tienes una relación entre dos tablas y estás escribiendo una fórmula en la tabla A, puedes usar RELATED para ir a la tabla B (que está relacionada) y tomar un valor específico. Todo esto sin necesidad de hacer búsquedas complicadas ni usar código farragoso.
He aquí algo que debes tener en cuenta: RELATED solo funciona cuando la relación está bien definida y activa. Por otro lado, funciona desde la tabla “muchos” hacia la tabla “uno”. Es decir, si tienes una tabla de ventas con miles de registros y otra tabla de productos con un solo registro por producto, puedes usar RELATED en la tabla de ventas para traer datos de productos, pero no al revés.
¿Para qué sirve la función RELATED en DAX?
La utilidad principal de RELATED es permitirte trabajar con modelos bien estructurados sin perder acceso a datos importantes que están en otras tablas. Veamos algunos ejemplos típicos donde esta función brilla:
- Enriquecer tus datos sin duplicarlos. Si tienes solo el ID de un cliente en tu tabla de ventas, pero necesitas el nombre del cliente para mostrarlo en una tabla o gráfico, RELATED te lo trae sin necesidad de hacer una nueva consulta.
- Hacer cálculos más eficientes. Muchas veces necesitas multiplicar, dividir o comparar valores que están en diferentes tablas. RELATED te permite traer esos valores y hacer las operaciones como si todos estuvieran en la misma tabla.
- Construir informes más claros. Tener columnas con nombres comprensibles y directamente utilizables hace que tus visualizaciones sean más intuitivas para los usuarios finales.
Principio de funcionamiento
Para que RELATED funcione correctamente deben darse estas dos casuísticas:
- Debe existir una relación activa y válida (uno a muchos, o uno a uno) entre las tablas. RELATED navega del lado «muchos» al «uno».
- Power BI debe poder identificar inequívocamente la relación a seguir.
Si la relación está inactiva o es ambigua, RELATED no funcionará directamente.
Sintaxis básica de RELATED
La sintaxis de esta función es muy simple:
- RELATED(<nombre_columna>)
Donde dice <nombre_columna> hay que indicar la columna de la tabla relacionada de la que quieres obtener el valor. Por ejemplo, (Clientes[Nombre]). Para la fila actual, RELATED sigue la relación y devuelve el valor correspondiente.
Ejemplos prácticos de uso de RELATED en Power BI
Después de toda la parte teórica, vamos a repasar algunos ejemplos más específicos que vamos a poder llevar a cabo con la función RELATED en Power BI
Ejemplo 1: Mostrar el nombre del cliente en una tabla de pedidos
Imagina que tienes una tabla Pedidos con las columnas PedidoID, ClienteID, Fecha y Total. Y tienes otra tabla llamada Clientes, donde están los detalles de cada cliente. En esta hay las siguientes columnas: ClienteID, Nombre, Email y otras.
Con RELATED, puedes crear una columna nueva en la tabla de pedidos que te muestre el nombre del cliente asociado:
- NombreCliente = RELATED(Clientes[Nombre])
Esto es muy útil porque ahora puedes hacer gráficos de ventas por nombre del cliente o tablas dinámicas agrupadas por cliente. Todo ello sin necesidad de hacer combinaciones manuales.
Ejemplo 2: Calcular el precio unitario en una tabla de ventas
Vamos con otro ejemplo. Piensa que tienes una tabla llamada Ventas con ProductoID, Cantidad y VentaID. Pero el precio del producto está en una tabla aparte llamada Productos, donde cada producto tiene un solo registro.
Para traer el precio unitario a la tabla de ventas, harías lo siguiente:
- PrecioUnitario = RELATED(Productos[Precio])
Una vez tienes ese dato, puedes calcular automáticamente el total vendido por línea de esta manera:
- TotalVenta = Ventas[Cantidad] * Ventas[PrecioUnitario]
Así no solo automatizas el cálculo, sino que también evitas inconsistencias si el precio llega a cambiar en la tabla de productos.
Ejemplo 3: Obtener la categoría del producto para agrupar ventas
Tercer ejemplo. Piensa ahora en que quieres hacer un gráfico con el total de ventas por categoría de producto. El problema es que la categoría está en la tabla Productos, no en la tabla Ventas.
Aquí puedes usar RELATED para traer ese dato:
- CategoriaProducto = RELATED(Productos[Categoria])
Con esa columna nueva, ahora puedes agrupar fácilmente tus ventas por categoría en una visualización. Es una forma rápida de dar más contexto a tus datos sin modificar la estructura del modelo.
Ejemplo 4: Traer datos de una tabla geográfica
Finalmente, supón que tienes una tabla Tiendas con la columna TiendaID y otra llamada Ubicaciones donde están los datos de la ciudad, país o región de cada tienda.
Para mostrar la ciudad en la tabla de ventas (donde solo tienes el TiendaID), puedes hacer:
- Ciudad = RELATED(Ubicaciones[Ciudad])
De esta forma puedes construir mapas o informes de ventas por región sin tener que unir las tablas previamente.
Buenas prácticas al usar la función RELATED en DAX
Aquí van algunos consejos para hacer un uso correcto de la función RELATED:
- Crea relaciones claras y directas. Sin una relación activa entre las tablas, RELATED no funcionará.
- Evita traer columnas innecesarias. Cada vez que usas RELATED, estás expandiendo la tabla con más datos. Úsalo solo cuando sea necesario para evitar empobrecer el rendimiento.
- Revisa siempre el sentido de la relación. RELATED no funciona del lado «uno» al lado «muchos». Si necesitas hacerlo así, quizá debas usar RELATEDTABLE o LOOKUPVALUE.
- Usa referencias claras. Cambia el nombre de la columna que creas con RELATED para que se entienda de dónde viene ese dato. Por ejemplo: NombreCliente, CategoriaProducto, etc.
Alternativas a RELATED en DAX: ¿cuándo usar otras funciones?
Hay casos donde RELATED no es suficiente, y puedes optar por otras funciones:
- RELATEDTABLE. Si estás en el lado “uno” de la relación y quieres ver todos los registros relacionados del lado “muchos”.
- LOOKUPVALUE. Para hacer búsquedas más flexibles, incluso si no hay una relación activa en el modelo.
- USERELATIONSHIP. Cuando tienes varias relaciones entre las mismas dos tablas y necesitas forzar cuál usar en un cálculo específico.
Lo que es evidente es que conocer estas opciones y para qué sirve esta función de DAX te hará más eficiente. Esperamos que esta guía te ayude a dominar la función RELATED en Power BI. Es fundamental para enriquecer tus datos. Si quieres profundizar, considera nuestro curso de Power BI Completo o el curso DAX Avanzado.
¿No conoces Aglaia? Somos una Consultora Tecnológica especializada en Business Intelligence, Data & Business Applications, Modern Workplace e Inteligencia Artificial. Como partners de Microsoft, somos especialistas en transferirte nuestro know-how en estas herramientas a través Consultoría y Formación. Te apoyamos en cualquier proyecto que puedas tener entre manos o en formarte con nuestros cursos para Power Platform y cursos de Microsoft 365 en formato InCompany, InClass y 100% Online. Maximiza tu productividad y sácale partido al potencial de estas herramientas con nosotros.