RANKX

适用于:计算列计算表Measure视觉计算

返回 table 参数中每一行的数字列表中的数字的排名。

语法

RANKX(<table>, <expression>[, <value>[, <order>[, <ties>]]])

parameters

table 返回计算表达式的数据表的任何 DAX 表达式。

expression 返回单个标量 value的任何 DAX 表达式。 表达式针对 table的每一行进行计算,以 generateall 可能的排名 values。 请参阅备注部分,了解 expression 计算结果为 BLANK时的函数行为。

value(可选)返回要找到 rank 的单个标量 value 的任何 DAX 表达式。 请参阅备注部分,了解在表达式中找到 value 时 not 函数的行为。

省略 value 参数时,将改用当前行中的表达式 value。

order(可选)指定如何 rankvalue、低到高 or 高到低的 value:

value 备用 value 说明
0(零) FALSE 按表达式 values 降序排名。 If value 等于表达式中的最高数字,然后 RANKX 返回 1。

这是省略 order 参数时的默认 value。
1 TRUE 表达式按升序进行排名。 If value 等于表达式中最低的数字,然后 RANKX 返回 1。

ties(可选)一个枚举,用于定义在有联系时如何确定排名。

枚举 说明
Skip next rank value在平局后,是平局的 rankvalue 加上 values的 count。 例如,if 五(5)values 与 11 的 rank 绑定,nextvalue 将收到 16 (11 + 5) 的 rank。

省略 ties 参数时,这是默认 value。
Dense 平局后 nextrankvalue是 nextrankvalue。 例如,if 五(5)个 values 与 11 的 rank 绑定,nextvalue 将收到 12 个 rank。

返回 value

rank table all 行计算的 expressionvaluesallvalue 数。

备注

  • If expression or value 计算结果为 BLANKall 表达式的计算结果为 0(零),orall 文本表达式的空文本。

  • If valueexpressionall 可能的 values 中 not,然后 RANKX 暂时将 valuevalues 添加到 expressionand 重新评估 RANKXRANKX,以确定 value的正确 rank。

  • 通过将空的逗号(,)置于参数列表中(如 RANKX(Inventory, [InventoryCost],,,"Dense")),可以跳过可选参数。

  • values 与 十进制数 数据类型之间的相等 related 比较(=<>>=and<=)可能会在使用 RANKX 函数时返回意外结果。 由于 十进制数 数据类型 values 存储为 IEEE 标准 754 浮点数,and 其精度具有固有限制,因此可能会出现不正确的结果。 为了避免意外的结果,请将数据类型更改为 Fixed 十进制数,or 使用 ROUND执行强制舍入。

  • 在计算列 or 行级别安全性 (RLS) 规则中使用时,not 支持在 DirectQuery 模式下使用此函数。

示例

“产品”表中的以下计算列计算 Internet 频道中每个 product 的销售排名。

= RANKX(ALL(Products), SUMX(RELATEDTABLE(InternetSales), [SalesAmount]))