Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:
Вычисляемый столбец
Вычисляемая таблица
Измерять
Визуальное вычисление
Указывает связь, используемую в определенном вычислении в качестве той, которая существует между columnName1 и columnName2.
Синтаксис
USERELATIONSHIP(<columnName1>,<columnName2>)
Параметры
| Термин | Определение |
|---|---|
columnName1 |
Имя существующего столбца, использующего стандартный синтаксис DAX и полный синтаксис, который обычно представляет многие стороны используемой связи; Если аргументы задаются в обратном порядке, функция переключится перед их использованием. Этот аргумент не может быть выражением. |
columnName2 |
Имя существующего столбца, используя стандартный синтаксис DAX и полный синтаксис, который обычно представляет одну сторону или сторону подстановки используемой связи; Если аргументы задаются в обратном порядке, функция переключится перед их использованием. Этот аргумент не может быть выражением. |
Возвращаемое значение
Функция не возвращает значения; Функция включает только указанную связь в течение длительности вычисления.
Замечания
USERELATIONSHIPможно использовать только в функциях, которые принимают фильтр в качестве аргумента, например CALCULATE, CLOSINGBALANCEWEEKCLOSINGBALANCEYEAROPENINGBALANCEWEEKCLOSINGBALANCEQUARTEROPENINGBALANCEMONTHOPENINGBALANCEQUARTERCLOSINGBALANCEMONTHCALCULATETABLETOTALWTDTOTALMTDOPENINGBALANCEYEARTOTALQTD и TOTALYTD функций.
USERELATIONSHIP нельзя использовать при определении безопасности на уровне строк для таблицы, в которой включена мера. Например, возвращает ошибку,
CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey]))если для DimCustomer определена безопасность на уровне строк.USERELATIONSHIP использует существующие связи в модели, определяя связи по их конечным столбцам точек.
В USERELATIONSHIPсостояние связи не важно; То есть, является ли связь активной или не влияет на использование функции. Даже если связь неактивна, она будет использоваться и переопределяет любые другие активные связи, которые могут присутствовать в модели, но не упоминаются в аргументах функции.
Ошибка возвращается, если любой из столбцов, именованных как аргумент, не является частью связи или аргументы принадлежат разным связям.
Если требуется несколько связей для объединения таблицы A к таблице B в вычислении, каждая связь должна быть указана в другой функции USERELATIONSHIP.
Если выражения CALCULATE вложены, а несколько выражений CALCULATE содержат функцию USERELATIONSHIP, то самым внутренним USERELATIONSHIP является тот, который преобладает в случае конфликта или неоднозначности.
Можно вложить до 10 USERELATIONSHIP функций; однако выражение может иметь более глубокий уровень вложения, т. е. Следующее примере выражения вложено 3 уровня глубоко, но только 2 для USERELATIONSHIP:
=CALCULATE(CALCULATE( CALCULATE( <anyExpression>, USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA])).Для связей 1–1 USERELATIONSHIP активирует связь только в одном направлении. В частности, фильтры смогут передаваться только из таблицы columnName2 в таблицу columnName1. Если нужно реализовать двунаправленную фильтрацию, вы можете использовать две функции USERELATIONSHIP с противоположными направлениями в одном вычислении. Например,
CALCULATE(..., USERELATIONSHIP(T1[K], T2[K]), USERELATIONSHIP(T2[K], T1[K])).
Пример
В следующем примере показано, как переопределить значения по умолчанию, активные, связи между InternetSales и таблицами DateTime. Связь по умолчанию существует между столбцом OrderDate в таблице InternetSales и столбцом Date в таблице DateTime.
Чтобы вычислить сумму интернет-продаж и разрешить срезы по shippingDate вместо традиционного заказа, создайте меру [InternetSales by ShippingDate], используя следующее выражение:
= CALCULATE(SUM(InternetSales[SalesAmount]), USERELATIONSHIP(InternetSales[ShippingDate], DateTime[Date]))
Связи между InternetSales[ShippingDate] и DateTime[Date] должны существовать и не должны быть активными связями; Кроме того, связь между InternetSales[OrderDate] и DateTime[Date] должна существовать и должна быть активной связью.