Función RELATED (DAX)

Devuelve un valor relacionado de otra tabla.

Sintaxis

RELATED(<column>)

Parámetros

Término

Definición

column

Columna que contiene los valores que desea recuperar.

Valor devuelto

Valor único que se relaciona con la fila actual.

Comentarios

La función RELATED requiere la existencia de una relación entre la tabla actual y la tabla con información relacionada. Debe especificar la columna que contiene los datos que desea y la función sigue una relación existente de varios a uno para capturar el valor de la columna especificada en la tabla relacionada.

Si no existe una relación, debe crear una. Para obtener más información, vea Crear una relación entre dos tablas.

Cuando la función RELATED realiza una búsqueda, examina todos los valores en la tabla especificada independientemente de los filtros que se puedan haber aplicado.

Nota

La función RELATED necesita un contexto de fila. Por consiguiente, solo se puede usar en una expresión de columna calculada, donde el contexto de la fila actual es inequívoco, o como una función anidada en una expresión que usa una función de examen de tablas. Una función de recorrido de tabla, como SUMX, obtiene el valor a partir del valor de la fila actual y, a continuación, examina otra tabla para encontrar instancias de ese valor.

Ejemplo

En el siguiente ejemplo, se crea la medida Non USA Internet Sales para generar un informe de ventas que excluye las ventas en los Estados Unidos. Para crear la medida, la tabla InternetSales_USD se debe filtrarse para excluir todas las ventas que pertenecen a los Estados Unidos en la tabla SalesTerritory. Los Estados Unidos, como país, aparece cinco veces en la tabla SalesTerritory; una vez para cada una de las siguientes regiones: Northwest, Northeast, Central, Southwest y Southeast.

El primer enfoque para filtrar Internet Sales para crear la medida podría ser crear una expresión de filtro como la siguiente:

FILTER('InternetSales_USD', 'InternetSales_USD'[SalesTerritoryKey]<>1 && 'InternetSales_USD'[SalesTerritoryKey]<>2 && 'InternetSales_USD'[SalesTerritoryKey]<>3 && 'InternetSales_USD'[SalesTerritoryKey]<>4 && 'InternetSales_USD'[SalesTerritoryKey]<>5)

Sin embargo, este enfoque es susceptible a errores tipográficos y podría no funcionar si alguna de las regiones existentes se divide en el futuro.

Una solución más apropiada sería usar la relación existente entre InternetSales_USD y SalesTerritory, e indicar explícitamente que el país debe ser diferente de Estados Unidos. Para esto, cree una expresión de filtro como la siguiente:

FILTER( 'InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")

Esta expresión utiliza la función RELATED para buscar el valor de país en la tabla SalesTerritory, comenzando con el valor de la columna de clave, SalesTerritoryKey, en la tabla InternetSales_USD. La función de filtro usa el resultado de la búsqueda para determinar si se filtra la fila InternetSales_USD o no.

Nota

Si el ejemplo no funciona, es posible que deba crear una relación entre las tablas. Para obtener más información, vea Relaciones entre tablas.

= SUMX(FILTER( 'InternetSales_USD'
            ,  RELATED('SalesTerritory'[SalesTerritoryCountry])
               <>"United States"
             )
     ,'InternetSales_USD'[SalesAmount_USD])

La siguiente tabla solo muestra totales para cada región, para demostrar que la expresión de filtro en la medida, No USA Internet Sales, funciona tal y como se tenía previsto.

Etiquetas de fila

Ventas por Internet

Ventas por Internet fuera de EE.UU.

Australia

$4,999,021.84

$4,999,021.84

Canada

$1,343,109.10

$1,343,109.10

France

$2,490,944.57

$2,490,944.57

Germany

$2,775,195.60

$2,775,195.60

United Kingdom

$5,057,076.55

$5,057,076.55

United States

$9,389,479.79

 

Grand Total

$26,054,827.45

$16,665,347.67

La siguiente tabla muestra el informe final que podría obtener si usó esta medida en una tabla dinámica:

Ventas por Internet fuera de EE.UU.

Etiquetas de columna

 

 

 

Row Labels

Accessories

Bikes

Clothing

Grand Total

2001

 

$1,526,481.95

 

$1,526,481.95

2002

 

$3,554,744.04

 

$3,554,744.04

2003

$156,480.18

$5,640,106.05

$70,142.77

$5,866,729.00

2004

$228,159.45

$5,386,558.19

$102,675.04

$5,717,392.68

Grand Total

$384,639.63

$16,107,890.23

$172,817.81

$16,665,347.67