沿着第一参数指定的表的每行,计值第二参数表达式,并将结果暂存(记为集合 A),然后将第三参数在调用 RANKX 的环境中计值一次,记为结果 B,最终返回 B 在集合 A 中的排名。
语法
RANKX( <表>, <表达式>, [<值>], [<排序>], [<平局规则>])
参数 | 属性 | 描述 |
---|---|---|
表 | 表或返回表的表达式 | |
表达式 | 沿着表每行计值的表达式 | |
值 | 可选 | 需要返回排名的 DAX 表达式,返回标量值。当<value>省略时,用第二参数<表达式>代替 |
排序 | 可选 | 排名依据。0 或 False 代表降序;1 或 True 代表升序,默认使用降序 |
平局规则 | 可选 | 处理相同排名时的依据,skip 代表稀疏排名,下一名的排序等于之前所有排序的数量+1;dense 代表稠密排名,只累加排序,不考虑数量。默认使用 skip |
返回值
标量
一个整数值
备注
- RANKX 默认使用降序,在遇到相同记录时,默认使用稀疏排名,下一名的排序等于之前所有排序的数量+1
- 如果表达式或值的计算结果为空,那么对于数字结果式,它会被视为 0;对于文本型结果,则会被视为空文本
- 在第三参数省略的情况下,第二参数在调用 RANKX 的环境中再次计值,得到的计算结果作为第三参数。
- 可以通过在参数列表中放置空逗号 (,) 来跳过可选参数,例如 RANKX(Inventory, [InventoryCost],,,”Dense”)
示例
Products 表中的以下计算列将为 Internet 渠道中的每种产品计算销售排名:
=RANKX(ALL(Products), SUMX(RELATEDTABLE(InternetSales), [SalesAmount]))
RANKX 是 DAX 中计算排名的常用方法,它的计值流较为复杂,请参考扩展阅读以进一步了解这个函数:
说点什么