RELATED
Se aplica a: Columna calculada Tabla calculada Medida Cálculo visual
Devuelve un valor relacionado de otra tabla.
Sintaxis
RELATED(<column>)
Parámetros
Término | Definición |
---|---|
columna | Columna que contiene los valores que quiere recuperar. |
Valor devuelto
Valor único que está relacionado con la fila actual.
Notas
La función RELATED requiere que haya una relación entre la tabla actual y la tabla con información relacionada. Especifique la columna que contiene los datos que quiere; la función seguirá una relación de varios a uno existente para capturar el valor de la columna especificada en la tabla relacionada. Si no existe ninguna relación, debe crear una.
Cuando la función RELATED realiza una búsqueda, examina todos los valores de la tabla especificada, independientemente de los filtros que se puedan haber aplicado.
La función RELATED necesita un contexto de fila; por lo tanto, solo se puede usar en una expresión de columna calculada, en la que el contexto de la fila actual es inequívoco, o bien como una función anidada en una expresión que usa una función de recorrido de tabla. Una función de recorrido de tabla, como SUMX, obtiene el valor de la fila actual y, después, busca instancias de ese valor en otra tabla.
La función RELATED no se puede utilizar para capturar una columna a través de una relación limitada.
Ejemplo
En el ejemplo siguiente, se crea la medida Ventas por Internet fuera de EE. UU. para generar un informe de ventas que excluya las ventas en Estados Unidos. Para crear la medida, la tabla InternetSales_USD se debe filtrar para excluir todas las ventas que pertenecen a Estados Unidos de 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 las ventas por Internet, con el fin de crear la medida, podría ser agregar una expresión de filtro similar a 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)
Pero este enfoque es contradictorio, propenso a errores tipográficos y podría no funcionar si alguna de las regiones existentes se divide en el futuro.
Un mejor enfoque sería usar la relación existente entre InternetSales_USD y SalesTerritory, y establecer explícitamente que el país debe ser diferente de Estados Unidos. Para ello, cree una expresión de filtro similar a la siguiente:
FILTER( 'InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")
Esta expresión usa la función RELATED para buscar el valor de país en la tabla SalesTerritory, empezando por 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 la fila InternetSales_USD está filtrada o no.
Nota
Si el ejemplo no funciona, puede que tenga que crear una relación entre las tablas.
= SUMX(FILTER( 'InternetSales_USD'
, RELATED('SalesTerritory'[SalesTerritoryCountry])
<>"United States"
)
,'InternetSales_USD'[SalesAmount_USD])
En la tabla siguiente se muestran solo los totales de cada región, para demostrar que la expresión de filtro de la medida, Ventas por Internet fuera de EE. UU., funciona según lo previsto.
Row Labels | Internet Sales | Non USA Internet Sales |
---|---|---|
Australia | 4 999 021,84 $ | 4 999 021,84 $ |
Canadá | 1 343 109,10 $ | 1 343 109,10 $ |
Francia | 2 490 944,57 $ | 2 490 944,57 $ |
Alemania | 2 775 195,60 $ | 2 775 195,60 $ |
Reino Unido | 5 057 076,55 $ | 5 057 076,55 $ |
Estados Unidos | 9 389 479,79 $ | |
Total general | 26 054 827,45 $ | 16 665 347,67 $ |
En la tabla siguiente se muestra lo que podría obtener si ha usado esta medida en un objeto visual de tabla de informe:
Row Labels | Accessories | Bikes | Clothing | Grand Total |
---|---|---|---|---|
2005 | 1 526 481,95 $ | 1 526 481,95 $ | ||
2006 | 3 554 744,04 $ | 3 554 744,04 $ | ||
2007 | 156 480,18 $ | 5 640 106,05 $ | 70 142,77 $ | 5 866 729,00 $ |
2008 | 228 159,45 $ | 5 386 558,19 $ | 102 675,04 $ | 5 717 392,68 $ |
Total general | 384 639,63 $ | 16 107 890,23 $ | 172 817,81 $ | 16 665 347,67 $ |