RANKX
применяется:вычисляемый столбецвычисляемой таблицыизмерениевизуального вычисления
Возвращает ранжирование числа в списке чисел для каждой строки в аргументе table
.
Синтаксис
RANKX(<table>, <expression>[, <value>[, <order>[, <ties>]]])
Параметры
table
любое выражение DAX, которое возвращает таблицу данных, по которым вычисляется выражение.
expression
любое выражение DAX, возвращающее одно скалярное значение. Выражение вычисляется для каждой строки table
, чтобы создать все возможные значения для ранжирования. Ознакомьтесь с разделом примечаний, чтобы понять поведение функции, когда expression
оценивается BLANK.
value
(необязательно) Любое выражение DAX, которое возвращает одно скалярное значение, ранг которого необходимо найти. Ознакомьтесь с разделом примечаний, чтобы понять поведение функции, если value
не найден в выражении.
Если параметр value
опущен, вместо него используется значение выражения в текущей строке.
order
(необязательно) Значение, указывающее, как ранжировать value
, низкую до высокой или высокой:
ценность | альтернативное значение | Description |
---|---|---|
0 (ноль) | FALSE |
Ранжирует в порядке убывания значений выражения. Если значение равно наибольшему числу в выражении, RANKX возвращает 1. Это значение по умолчанию при опущении параметра заказа. |
1 | TRUE |
Ранжирует по возрастанию выражения. Если значение равно наименьшему числу в выражении, RANKX возвращает 1. |
ties
(необязательно) Перечисление, определяющее способ определения ранжирования при наличии связей.
перечисление | Description |
---|---|
Skip |
Следующее значение ранжирования после галстука — это значение ранга галстука плюс количество связанных значений. Например, если пять (5) значений привязаны к рангу 11, то следующее значение получит ранг 16 (11 + 5). Это значение по умолчанию при опущении параметра ties . |
Dense |
Следующее значение ранжирования после галстука — это следующее значение ранжирования. Например, если пять (5) значений привязаны к рангу 11, то следующее значение получит ранг 12. |
Возвращаемое значение
Число рангов value
среди всех возможных значений expression
вычисляется для всех строк table
чисел.
Замечания
Если
expression
илиvalue
оценивается как BLANK она обрабатывается как 0 (ноль) для всех выражений, которые приводят к числу или как пустой текст для всех текстовых выражений.Если
value
не является одним из всех возможных значенийexpression
, RANKX временно добавляетvalue
к значениям изexpression
и повторно оценивает RANKX, чтобы определить соответствующий рангvalue
.Необязательные аргументы могут быть пропущены путем размещения пустой запятой (,) в списке аргументов, например
RANKX(Inventory, [InventoryCost],,,"Dense")
.Сравнения с равенством (
=
,<
,>
,>=
и<=
) между значениями с типом данных десятичного числа могут потенциально возвращать непредвиденные результаты при использовании функции RANKX. Неправильные результаты могут возникать, так как значения с десятичным числом тип данных хранятся в виде чисел с плавающей запятой СТАНДАРТА IEEE 754 и имеют ограничения в их точности. Чтобы избежать непредвиденных результатов, измените тип данных на фиксированное десятичное число или выполните принудительное округление с помощью ROUND.Эта функция не поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах или правилах безопасности на уровне строк (RLS).
Пример
Следующий вычисляемый столбец в таблице "Продукты" вычисляет рейтинг продаж для каждого продукта в канале Интернета.
= RANKX(ALL(Products), SUMX(RELATEDTABLE(InternetSales), [SalesAmount]))