USERELATIONSHIP

La función USERELATIONSHIP especifica la relación entre dos tablas a utilizar en un cálculo.

Sintaxis

USERELATIONSHIP(
    columnName1,
    columnName2
)

Parámetros
  • columnName1: Nombre totalmente cualificado de una columna existente. No puede ser una expresión. Habitualmente representa el extremo "varios" en una relación "de uno a varios" aunque si los argumentos de la función ocupan la posición errónea, serán intercambiados automáticamente antes de ejecutar la función.
  • columnName2: Nombre totalmente cualificado de una columna existente. Tampoco puede ser una expresión. Habitualmente representa el extremo "uno" en una relación "de uno a varios" aunque, como se ha comentado, si los argumentos de la función ocupan la posición errónea, serán intercambiados antes de ejecutar la función.
Valor devuelto

La función USERELATIONSHIP no devuelve ningún valor.

Información adicional

La función USERELATIONSHIP solo puede usarse como argumento en aquellas funciones que esperan un filtro, como:

Las columnas cuyos nombres se agregan como argumentos deberán ser el comienzo y el fin de una relación entre tablas ya existente, con independencia de que ésta esté activa o no.

Si se están utilizando varias funciones CALCULATE anidadas incluyendo más de una función USERELATIONSHIP, en el caso de conflicto o ambigüedad se utilizará la función USERELATIONSHIP más profunda.

Pueden anidarse hasta 10 funciones USERELATIONSHIP, aun cuando la expresión en la que se incluyan pueda tener un nivel de profundidad mayor.

Ejemplos

En este ejemplo partimos de una tabla de ventas que incluye información sobre la fecha de venta y la fecha de entrega del producto adquirido, así como información sobre el precio unitario, la cantidad de producto vendida y el precio de venta total (resultante de multiplicar el precio unitario por la cantidad):

Función USERELATIONSHIP. Ejemplo de uso

Adicionalmente importamos en Power BI una segunda tabla a modo de calendario. Establecemos una relación entre ambas tablas utilizando los campos Fecha de venta (en la tabla Ventas) y Fecha (en la tabla Calendario). A continuación creamos una segunda relación (que, por defecto, está inactiva) entre los campos Fecha de entrega (en la tabla Ventas) y Fecha (en la tabla Calendario):

Función USERELATIONSHIP. Ejemplo de uso

Deseamos ahora calcular las ventas por mes. Con este objetivo creamos la siguiente medida que suma las ventas en el contexto actual:

Ventas = SUM(Ventas[Precio de venta])

Como no se hace referencia a la relación a utilizar, se utilizará la relación activa (la existente entre los campos Fecha de venta y Fecha). Podemos llevar esta medida junto al campo Month Name a una gráfica de columnas para ver los totales de ventas por mes:

Función USERELATIONSHIP. Ejemplo de uso

Tal y como se ha comentado, las ventas se están agregando por mes considerando las fechas de venta. Pero supongamos que deseamos conocer la distribución por meses de las ventas considerando la fecha de entrega. Para esto creamos una segunda medida que implique la segunda relación creada, la existente (e inactiva) entre los campos Fecha de entrega y Fecha:

Ventas por fecha de entrega =
CALCULATE(
    [Ventas],
    USERELATIONSHIP(
        Ventas[Fecha de entrega],
        Calendario[Fecha]
    )
)

Obsérvese como se está calculando la medida [Ventas] usando como filtro una nueva relación entre tablas: la existente entre las dos columnas indicadas como argumentos. Si llevamos esta nueva medida junto con el campo Month Name a una gráfica de columnas, el resultado es el siguiente:

Función USERELATIONSHIP. Ejemplo de uso

Categoría
Filtro
Enviado por admin el Lun, 03/12/2018 - 20:12