Compartir vía


USERELATIONSHIP

Se aplica a:columna CalculadaTabla calculadaMeasurecálculo visual

Especifica la relación que se va a usar en un cálculo específico como la que existe entre columnName1 and columnName2.

Sintaxis

USERELATIONSHIP(<columnName1>,<columnName2>)

Parámetros

Término Definición
columnName1 El nombre de una columna existente, utilizando la sintaxis DAX estándar and completo, que normalmente representa el lado de la relación que se va a usar; if los argumentos se proporcionan en orden inverso que la función los intercambiará antes de usarlos. Este argumento no puede ser una expresión.
columnName2 El nombre de una columna existente, utilizando la sintaxis DAX estándar and completa, que normalmente representa el lado or de búsqueda de la relación que se va a usar; if los argumentos se proporcionan en orden inverso que la función los intercambiará antes de usarlos. Este argumento no puede ser una expresión.

Devolver value

La función no devuelve ningún value; la función solo habilita la relación indicada para el duration del cálculo.

Notas

  • USERELATIONSHIP solo se puede usar en funciones que toman un filter como argumento, por ejemplo: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTDandTOTALYTD funciones.

  • USERELATIONSHIP no se puede usar cuando se define la seguridad de nivel de fila para la tabla en la que se incluye el measure. Por ejemplo, CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey])) devolverá una seguridad de nivel de fila errorif se define para DimCustomer.

  • USERELATIONSHIP usa relaciones existentes en el modelo, identificando las relaciones por sus columnas de punto final.

  • En USERELATIONSHIP, el estado de una relación es not importante; es decir, si la relación está activa ornotnot afecta al uso de la función. Even if la relación está inactiva, se usará and invalidará cualquier otra relación activa que pueda estar presente en el modelo, pero not mencionado en los argumentos de función.

  • Se devuelve un errorif cualquiera de las columnas denominadas como argumento se not parte de una relación or los argumentos pertenecen a relaciones diferentes.

  • If se necesitan varias relaciones para combinar la tabla A a la tabla B en un cálculo, cada relación debe indicarse en una función de USERELATIONSHIP diferente.

  • If CALCULATE expresiones están anidadas, and más de una expresión CALCULATEcontains una función de USERELATIONSHIP, la USERELATIONSHIP más interna es la que prevalece en caso de conflicto or ambigüedad.

  • Se pueden anidar hasta 10 funciones USERELATIONSHIP; sin embargo, la expresión puede tener un nivel más profundo de anidamiento, es decir, . la siguiente expresión de sample está anidada 3 niveles de profundidad, pero solo 2 para USERELATIONSHIP: =CALCULATE(CALCULATE( CALCULATE( <anyExpression>, USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA])).

  • Para las relaciones de 1 a 1, USERELATIONSHIP solo activará la relación en una dirección. En concreto, filters solo podrán fluir de columnName2tabla a columnName1tabla. If se desea el filtrado cruzado bidireccional, se pueden usar dos USERELATIONSHIPs con direccionalidad opuesta en el mismo cálculo. Por ejemplo, CALCULATE(..., USERELATIONSHIP(T1[K], T2[K]), USERELATIONSHIP(T2[K], T1[K])).

Ejemplo

En el siguiente sample se muestra cómo invalidar la relación predeterminada, activa y entre internetSales and tablas DateTime. La relación predeterminada existe entre la columna OrderDate, en la tabla InternetSales, and la columna Date, en la tabla DateTime.

Para calculate el sum de ventas por Internet and permitir la segmentación por ShippingDate en lugar de OrderDate tradicional, cree measure, [InternetSales by ShippingDate] mediante la siguiente expresión:

= CALCULATE(SUM(InternetSales[SalesAmount]), USERELATIONSHIP(InternetSales[ShippingDate], DateTime[Date]))

Las relaciones entre InternetSales[ShipmentDate] and DateTime[Date] deben existir and deben not ser la relación activa; además, la relación entre InternetSales[OrderDate] and DateTime[Date] debe existir and debe ser la relación activa.