RANKX 函数 (DAX)

对于 table 参数中的每一行,返回某个数字在数字列表中的排名。

语法

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

参数

  • table
    一个 DAX 表达式,该表达式返回对表达式进行计算的数据表。

  • expression
    任何返回单一标量值的 DAX 表达式。 此表达式将针对 table 的每一行进行计算,以生成所有用于排名的可能值。 请参阅“注释”部分以了解当 expression 的计算结果为 BLANK 时函数的行为。

  • value
    (可选)任何返回要找到其排名的单个标量值的 DAX 表达式。 请参阅“注释”部分以了解当在表达式中找不到 value 时函数的行为。

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

  • order
    (可选)指定如何对 value 排名的值,从低到高或从高到低:

    备选值

    说明

    0(零)

    FALSE

    按表达式值的降序排名。 如果值等于表达式中的最高数字,则 RANKX 返回 1。

    这是忽略 order 参数时的默认值。

    1

    TRUE

    按表达式的升序排名。 如果值等于表达式中的最低数字,则 RANKX 返回 1。

  • ties
    (可选)一个枚举,它定义如何在具有等同值时确定排名。

    枚举

    说明

    Skip

    等同值之后的下一个排名值是等同值的排名值加上等同值计数。 例如,如果五 (5) 个值与排名 11 等同,则下一个值将获得排名 16 (11 + 5)。

    当忽略 ties 参数时,这是默认值。

    Dense

    等同值之后的下一个排名值是下一个排名值。 例如,如果五 (5) 个值与排名 11 等同,则下一个值将获得排名 12。

返回值

value 在针对所有 table 数字行计算的 expression 的所有可能值中的排名数字。

注释

  • 如果 expression 或 value 的计算结果为 BLANK,则对于其结果为数字的所有表达式,它被视为 0(零);或者对于所有文本表达式,则被视为空文本。

  • 如果 value 不在 expression 的所有可能值内,RANKX 会临时将 value 添加到 expression 的值中,并重新计算 RANKX 以确定 value 的正确排名。

  • 可以通过在参数列表中放入一个空的逗号 (,) 来跳过可选参数,也即 RANKX(Inventory, [InventoryCost],,,"Dense")

示例

Products 表中的以下计算列将为 Internet 渠道中的每个产品计算销售额排名。

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