Course
Función DAX relacionada con Power BI: Introducción y casos prácticos
El modelado de datos es fundamental para crear informes de Power BI perspicaces. Te permite definir relaciones claras entre tablas y organizar, limpiar y recuperar datos con eficacia. En este tutorial, aprenderás sobre la función RELATED
en Power BI.
Mediante ejemplos prácticos, aprenderás cómo la función RELATED
puede mejorar tus habilidades de modelado de datos y elaboración de informes.
Si todavía eres nuevo en Power BI, puedes familiarizarte con el tema con la ayuda de nuestra pista de habilidades Fundamentos de Power BI.
También puedes descargar la hoja de trucos DAX y tenerla a mano mientras aprendes más sobre Power BI y DAX.
Hoja de trucos DAX de DataCamp
¿Qué es la función RELACIONAR en Power BI?
RELATED
es una función DAX de Power BI que te permite obtener un valor de una columna de una tabla relacionada. Fundamentalmente, esta función sólo funciona si existe una relación entre la tabla actual y la tabla donde se encuentra la columna deseada.
La función RELATED
simplifica el modelado de datos al permitirte incorporar datos relevantes de diferentes tablas sin necesidad de fusionar o unir tablas manualmente.
Así es la sintaxis de la función RELATED
:
RELATED(ColumnToFetch)
Como ejemplo sencillo, supón que tienes una tabla Ventas y otra Productos:
InvoiceID |
ProductID |
Cantidad |
Precio |
1000 |
123 |
2 |
21 |
1001 |
456 |
1 |
19.99 |
1002 |
123 |
3 |
31.5 |
1003 |
789 |
1 |
24.95 |
Tabla 1. Ventas
ProductID |
NombreProducto |
Precio unitario |
123 |
Widget |
10.5 |
456 |
Engranaje |
19.99 |
789 |
Gizmo |
24.95 |
Tabla 2. Productos
La tabla Ventas realiza un seguimiento de las transacciones de venta, incluyendo un ID de Producto para cada venta, pero no el nombre del producto ni sus detalles. La tabla Productos contiene los nombres y detalles vinculados a cada ID de Producto.
Sin RELATED
, tendrías que fusionar las dos tablas si quisieras crear una columna calculada que utilizara el nombre del producto desde la tabla Ventas.
Con RELATED
, puedes crear una nueva columna en la tabla Ventas que muestre directamente el Nombre del Producto de cada venta obteniéndolo de la tabla Productos. También puedes utilizar la función RELATED
en una medida para obtener dinámicamente esta información.
InvoiceID |
ProductID |
Cantidad |
Precio |
Nombre del producto |
1000 |
123 |
2 |
21 |
Widget |
1001 |
456 |
1 |
19.99 |
Engranaje |
1002 |
123 |
3 |
31.5 |
Widget |
1003 |
789 |
1 |
24.95 |
Gizmo |
Tabla 3. Utilizando RELATED
Entender las relaciones en Power BI
En Power BI, las relaciones te permiten enlazar tablas basándote en columnas comunes. Estas relaciones son fundamentales para que Power BI integre datos de múltiples fuentes, permitiendo un enfoque de base de datos relacional dentro de sus modelos de datos.
Tipos de relaciones en Power BI
Los tipos de relaciones que podemos tener en Power BI son:
- Uno a uno (1:1): Cada fila de una tabla está relacionada con una (y sólo una) fila de otra tabla. Este tipo de relación es menos frecuente.
- Uno a muchos (1:muchos): Una sola fila de una tabla puede relacionarse con muchas filas de otra tabla. Este es el tipo de relación más común en Power BI.
- De muchos a muchos (muchos:muchos): Las filas de una tabla pueden relacionarse con varias filas de otra tabla y viceversa. Debido a la complejidad potencial y a las implicaciones para el rendimiento, utiliza las relaciones de muchos a muchos con precaución.
Importancia de las relaciones para la Función RELACIONADA
La función RELATED
aprovecha estas relaciones para obtener datos de una tabla relacionada, introduciéndolos en el contexto de la tabla actual. Sin unas relaciones bien definidas, la función RELATED
no funcionará.
Las relaciones proporcionan una ruta de navegación clara para que RELATED
la siga, garantizando que la función sepa exactamente de dónde extraer los datos.
Unas buenas prácticas de modelado de datos y unas relaciones bien definidas permiten a la función RELATED
acceder con eficacia a los datos relacionados. Esto significa que puedes evitar complejas operaciones de búsqueda y mejorar el rendimiento y la facilidad de uso de tus informes de Power BI.
Domina Power BI desde cero
Ejemplos prácticos con la función RELATED
Examinemos ahora algunos ejemplos para comprender cómo funciona RELATED
en la práctica.
Uso básico de RELATED
Supongamos que tenemos una tabla que contiene las ventas mensuales de productos, pero no los nombres de los productos ni las categorías, sólo el ID del producto. También tenemos una tabla Productos con ProductID, ProductName y Category. Creamos una relación entre estas dos tablas utilizando ProductID.
Queremos analizar las ventas por categoría de producto. Para ello, creamos una columna calculada en la tabla Ventas con la siguiente fórmula DAX, que luego podemos añadir a un visual de nuestro informe de Power BI:
ProductCategory = RELATED(Products[ProductCategory])
RELATED
es perfecto para esto porque existe una relación directa de uno a muchos entre Productos y Ventas, lo que facilita la obtención de NombreProducto o Categoría.
Escenario avanzado
RELATED
es especialmente potente cuando necesitas introducir datos de una tabla relacionada en el contexto de la tabla actual.
Utilizar RELATED
en una medida te permite realizar cálculos dinámicos que cambian según el contexto del filtro actual del informe. Las medidas se utilizan para agregaciones y pueden incorporar datos relacionados mediante funciones de contexto de fila como SUMX
.
Si no estás familiarizado con la función SUMX
, puedes aprender más sobre ella en este completo tutorial de SUMX.
Exploremos una versión más compleja de nuestro ejemplo anterior. Supón que tienes tablas que contienen varios productos con precios diferentes y un objetivo de ventas dinámico que varía según el producto y cambia mensualmente. Tu objetivo es hacer un seguimiento mensual del rendimiento de las ventas con respecto a estos objetivos en las distintas categorías de productos.
Nuestro modelo de datos, que contiene una tabla Ventas y Productos, ahora también incluye una tabla ObjetivosVentas que contiene los objetivos de ventas mensuales de cada producto, incluyendo las columnas ProductID, Month y TargetAmount.
Para utilizar correctamente la función RELATED
, creamos una relación basada en una clave compuesta que contiene una combinación de ID de producto y Mes en las tablas Ventas y Objetivos de ventas.
El objetivo es calcular el porcentaje del objetivo de ventas alcanzado para cada categoría de productos, cada mes.
Monthly Target Achievement =
VAR TotalSalesRevenue =
SUMX(
Sales,
Sales[QuantitySold] * RELATED(Products[Price])
)
VAR MonthlyTarget =
SUMX(
Sales,
RELATED(SalesTargets[TargetAmount])
)
RETURN
IF(
MonthlyTarget > 0,
TotalSalesRevenue / MonthlyTarget,
BLANK()
)
Esta medida calcula TotalSalesRevenue
iterando sobre la tabla Ventas, utilizando RELATED
para obtener el Precio por producto. A continuación, MonthlyTarget
se calcula sumando los importes objetivo para el mes y el producto correspondientes de la tabla Objetivos de venta.
Por último, divide los ingresos totales por ventas entre el objetivo mensual para obtener el porcentaje de consecución, asegurándote de que sólo devuelve un valor si hay un objetivo fijado (para evitar la división por cero).
Puedes obtener más información sobre el análisis de datos financieros en el tema de conocimientos Informes financieros en Power BI, que contiene ejemplos prácticos que te guiarán a través del análisis y la visualización de tus datos en Power BI.
La función RELACIONAR en Power BI: Buenas prácticas
Ahora que ya sabemos cómo funciona RELATED
, profundicemos y exploremos algunas de las mejores prácticas.
Utiliza RELATED sólo cuando lo necesites
Aplica RELATED
para los casos en que realmente necesites datos de otra tabla incorporados al contexto de tu tabla actual para realizar cálculos. Esto es especialmente útil para crear columnas calculadas que simplifiquen la elaboración de informes.
El uso excesivo de RELATED
puede dar lugar a modelos de datos innecesariamente complejos, lo que puede ralentizar el rendimiento de tus informes. Si puedes realizar tu análisis directamente a través de las relaciones en los visuales sin necesidad de llevar los datos físicamente a tu tabla, a menudo es más eficaz.
Comprende tu modelo de datos
Antes de utilizar RELATED
, asegúrate de que comprendes tu modelo de datos, especialmente las relaciones entre tablas. RELATED
requiere una relación activa existente, normalmente una relación de uno a muchos en la que la función se utiliza en el lado de "muchos" para extraer datos del lado de "uno".
La función RELATED
no funciona con relaciones de muchos a muchos.
Si utilizas RELATED
sin definir correctamente tus relaciones o sin entender bien la direccionalidad de la relación, puedes provocar errores o resultados inesperados.
Comprender la dirección de la relación
Utiliza RELATED
para extraer datos de una tabla primaria (un lado) a una tabla relacionada (muchos lados). Esto es especialmente útil cuando quieres incluir datos de consulta de otras tablas en tus cálculos o análisis.
Utilizar RELATED
en sentido contrario (de muchos a uno) sin una comprensión adecuada puede llevar a confusión. Para el sentido inverso, RELATEDTABLE
podría ser más apropiado, aunque requiere más funciones de agregación, ya que devuelve una tabla.
Alternativas a RELATED
Cuando la función RELATED
no se ajusta a tus necesidades en Power BI, hay algunos enfoques alternativos que puedes considerar. Las dos alternativas que cubrimos aquí son la función LOOKUPVALUE y la fusión de datos con Power Query.
LOOKUPVALUE
LOOKUPVALUE
es una función increíblemente versátil, pero puede funcionar más lentamente que RELATED
. Esto se debe a que busca en la tabla fila por fila para encontrar una coincidencia. En nuestro ejemplo, miles o millones de transacciones de ventas podrían ralentizar considerablemente el rendimiento de los informes.
LOOKUPVALUE
puede ser innecesariamente complicado para necesidades sencillas en las que existe una relación directa. Sin embargo, si necesitas criterios de concordancia más complejos, no tienes relaciones establecidas o no te preocupa el rendimiento, LOOKUPVALUE
ofrece más flexibilidad.
Si quieres saber más, puedes leer esta guía completa sobre DAX LOOKUPVALUE.
Fusionar datos con Power Query
Fusionar tablas en Power Query crea efectivamente una instantánea estática de tus datos al fusionar.
Pero supón que tu tabla Productos se actualiza con frecuencia (se añaden nuevos productos o se cambian las categorías). En ese caso, tu tabla combinada en Power Query no reflejará automáticamente estas actualizaciones sin una actualización de las tablas Productos y Ventas.
Las tablas fusionadas pueden llegar a ser bastante grandes y ralentizar el rendimiento de tu informe, sobre todo si sólo te interesa un pequeño dato de la tabla relacionada (como una categoría de producto).
Conclusión
La función RELATED
simplifica el modelado de datos al obtener datos de tablas conectadas basándose en relaciones, eliminando la necesidad de fusiones manuales. Esto te permite crear columnas calculadas y medidas que incorporen dinámicamente datos de otras tablas.
Para un uso óptimo, utiliza RELATED
estratégicamente, introduciendo datos en el contexto de la tabla actual sólo cuando sea necesario. Es crucial comprender claramente el modelo de datos y las relaciones establecidas.
Si quieres seguir aprendiendo sobre Power BI, puedes probar estos recursos:
Conviértete en Analista de Datos de Power BI
Domina la herramienta de inteligencia empresarial más popular del mundo.
Preguntas frecuentes
¿Se puede utilizar la función RELACIONADA con relaciones inactivas?
No, la función RELACIONADOS no puede aprovechar directamente las relaciones inactivas en Power BI. RELATED está diseñado para trabajar con relaciones activas entre tablas.
En un modelo de Power BI, aunque pueden existir múltiples relaciones entre dos tablas, sólo una puede estar activa a la vez. La relación activa es la que Power BI utiliza automáticamente para la función RELACIONADA.
¿Se puede utilizar la función RELACIONAR en una medida y en una columna calculada?
Aunque RELATED se suele utilizar en columnas calculadas, también se puede utilizar en medidas, sobre todo dentro de funciones de iteración como SUMX, que exploramos en este tutorial.
Cuando se utiliza en una medida, RELATED obtiene los datos de una tabla relacionada basándose en el contexto de fila actual establecido por la función de iteración. Esto permite cálculos dinámicos a través de tablas relacionadas dentro del contexto de filtro de la medida.
¿Puede utilizarse la función RELACIONADA en varias tablas de una cadena de relaciones?
Sí, RELATED puede recorrer una cadena de relaciones a través de varias tablas, siempre que cada eslabón de la cadena tenga una relación correctamente definida. Esto permite modelos de datos complejos en los que RELATED puede extraer datos a través de tablas intermedias.
¿Cómo afecta el contexto del filtro al uso de RELATED en las medidas?
RELACIONADO funciona dentro del contexto de filtro establecido cuando se utiliza en medidas, que puede modificarse mediante rebanadoras, visuales u otras funciones DAX como CALCULAR.
Los valores extraídos por RELATED reflejarán el contexto actual del filtro, haciéndolo dinámico y sensible a los cambios del informe. Esto permite realizar cálculos sensibles al contexto que se adaptan a las interacciones del usuario.
Aprende Power BI desde cero
Course
DAX intermedio en Power BI
Course