(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Cómo usar la función RELATED en DAX: paso a paso

João Barros 15 de July de 2026 4 min de lectura

La función RELATED en DAX sirve para traer un valor de otra tabla siguiendo una relación que ya existe en tu modelo. Es especialmente útil en un modelo en estrella, donde la tabla de hechos (las ventas) está separada de las dimensiones (productos, clientes o fechas). Con un ejemplo sencillo de ventas y productos, aprenderás a usar RELATED para colocar el precio y la categoría correctos en cada fila de venta.

Requisitos previos

  • Power BI Desktop instalado (la función también existe en Power Pivot de Excel y en Analysis Services).
  • Dos tablas en el modelo: una de hechos, Sales, y una de dimensión, Products.
  • Una relación entre las dos tablas, unida por una columna común como ProductID.
  • Saber crear una columna calculada (basta con hacer clic derecho en la tabla).

Paso 1: Entender el modelo de datos

Imagina dos tablas. La tabla Sales registra cada línea de pedido y tiene las columnas ProductID y Quantity. La tabla Products describe cada artículo y tiene ProductID, ProductName, Category y UnitPrice. Entre ellas hay una relación muchos-a-uno: muchas ventas apuntan al mismo producto.

El objetivo es habitual: quieres saber el total de cada línea de venta (cantidad × precio), pero el precio está en la tabla Products y no en la tabla Sales. Justo para esto existe la función RELATED.

Paso 2: Confirmar que existe una relación

RELATED solo funciona si hay una relación entre las tablas. Abre la vista Modelo en Power BI Desktop y confirma que hay una línea que conecta Sales[ProductID] con Products[ProductID]. El lado "uno" es la tabla Products (cada producto aparece una vez) y el lado "muchos" es la tabla Sales.

RELATED sigue siempre la relación del lado "muchos" hacia el lado "uno". Es decir, se llama desde la tabla de hechos para traer valores de la dimensión.

Paso 3: Crear una columna calculada con RELATED

Selecciona la tabla Sales, crea una nueva columna y escribe la fórmula de abajo. Trae el precio unitario del producto correspondiente a la tabla de ventas:

UnitPrice = RELATED( Products[UnitPrice] )

Fíjate en que solo indicas la columna que quieres — Products[UnitPrice]. No necesitas decir qué relación usar: DAX encuentra el camino por sí solo, porque la relación ya existe en el modelo.

Paso 4: Calcular el total de cada línea

Con el precio disponible en cada fila, ya puedes calcular el valor de cada venta. Crea otra columna calculada en la tabla Sales:

LineTotal = Sales[Quantity] * RELATED( Products[UnitPrice] )

Esto funciona porque una columna calculada tiene row context (contexto de fila): DAX sabe en qué fila está y, por lo tanto, qué producto buscar. Del mismo modo, puedes traer la categoría para agrupar las ventas después:

Category = RELATED( Products[Category] )

Paso 5: Usar RELATED dentro de una medida con SUMX

No siempre quieres crear columnas físicas. Puedes usar RELATED dentro de un iterador como SUMX, que recorre la tabla fila a fila y crea, en cada una, el row context que RELATED necesita:

Total Sales =
SUMX(
    Sales,
    Sales[Quantity] * RELATED( Products[UnitPrice] )
)

Esta medida devuelve el total de ventas sin ocupar espacio con columnas calculadas: una buena práctica en modelos grandes.

Paso 6: Error común y la función inversa

Un error frecuente es usar RELATED en una medida simple, del tipo = RELATED( Products[UnitPrice] ). No funciona: una medida no tiene contexto de fila, así que DAX devuelve un error. Usa RELATED solo en columnas calculadas o dentro de iteradores (SUMX, AVERAGEX, FILTER y similares).

Si necesitas el sentido contrario — del lado "uno" al lado "muchos" — usa RELATEDTABLE. Por ejemplo, para contar cuántas ventas tuvo cada producto, crea esta columna en la tabla Products:

NumSales = COUNTROWS( RELATEDTABLE( Sales ) )

Verificar el resultado

Crea una tabla visual con Products[ProductName] y la medida Total Sales. Los valores deben coincidir con la suma manual de cantidad × precio de cada producto. Comprueba también la columna LineTotal: elige una fila cualquiera y verifica que el resultado sea realmente la cantidad multiplicada por el UnitPrice de ese producto. Si aparece (Blank) o un error, revisa que la relación exista y que los valores de ProductID tengan correspondencia en ambas tablas.

Conclusión

Has aprendido a usar la función RELATED para traer valores de una dimensión a la tabla de hechos siguiendo las relaciones del modelo, y a usar RELATEDTABLE para el camino inverso. El siguiente paso es combinar RELATED con CALCULATE para crear métricas más ricas, o profundizar en cómo se relacionan el row context y el filter context. ¿Cuál será la primera columna que dejarás de copiar a mano gracias a RELATED?