Acceso a campo relacionado por una relación no activa

Saludos,

tengo una duda y no sé si alguien podrá echarme una mano... Tengo dos tablas: Main es un listado de documentos en el que cada documento tiene asignado un identificador. Documents es una especie de subconjunto de Main en el que tengo dos identificadores, y ambos apuntan al campo identificador de Main. Es decir, tengo dos relaciones creadas, una entre Documents[Id] y Main[Id] y otra entre Documents[Id2] y Main[Id] -los nombres no son exactamente estos, pero da igual-. La cuestión es que querría crear en Documents dos campos nuevos que "trajesen" a Documents el nombre del documento que figura en Main. Y querría que uno de los nombres fuese el correspondiente al identificador Id y el otro al de Id2, no sé si me explico.

Para traer el nombre correspondiente a Id uso un simple RELATED, pues es la relación principal. Pero no sé cómo traer el segundo campo, pues Id2 es la relación no activa. Estoy intentando usar la función CALCULATE y USERELATIONSHIP:

DocName = CALCULATE(RELATED(Main[Name]); USERELATIONSHIP(Documents[Id2]; Main[Id]))

Pero no me funciona.

Si alguien ha entendido mi terrible explicación :) y sabe cómo solucionarlo, lo agradeceré.

Ángela

Hola Ángela,

Creo que entendí bien tu explicación :) Yo, en casos como éste, prefiero usar la función LOOKUPVALUE para buscar el campo remoto en cuestión. En tu caso sería algo así como:

DocName = LOOKUPVALUE(Main[Name]; Main[Id]; Documents[Id2])

Lo estoy escribiendo de cabeza, no copies y pegues :)

La idea es definir el campo que quieres traer, el campo en el que hacer la búsqueda y el valor a buscar.

Y así te quitas todos los problemas de las relaciones...

Ya me dirás si te funciona

AH

Hola AH, muchas gracias, me parece una estupenda alternativa, reconozco que no había usado mucho la función LOOKUPVALUE pero veo que puede suplir perfectamente las relaciones entre tablas. Muchísimas gracias, te lo agradezco mucho.

Enviado por Ángela Roima el Sáb, 24/08/2019 - 21:52