Поделиться через


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]))