RANKX函数我们之前也讲过,今天我们来做个回顾

怎么利用rank函数计算排名(DAX函数使用RANKX进行排名的一些经验与技巧)(1)

RANKX函数一共有5个参数,前两个参数是必选参数,后三个是可选参数:

第一参数:表

可以是直接一个表,也可以是函数生成的表,ALL、ALLSELECTED等函数生成的表。

第二参数:表达式

聚合表达式,用聚合函数编写的表达式,或者是编写好的度量值。

第三参数:值

与第二参数相同,是个聚合表达式,可选参数,通常都是空。

第四参数:排序

有两个选项:

第五参数:排序方式

两个选项:

我们来看例子:

最直接的排名度量值:

产品排名1 = rankx(ALLSELECTED('销售记录'[产品名称]),[销售金额],,DESC,Skip)

布局上做调整的度量值:

产品排名 = IF(HASONEVALUE('销售记录'[产品名称]),

rankx(ALLSELECTED('销售记录'[产品名称]),

[销售金额],,DESC,Skip),

BLANK())

两个度量值的效果比较:

当我们按天进行切片时,没有进行布局调整的度量值会显示出控制以及总计的排名,而经过布局调整的度量值,则看起来很整齐:

怎么利用rank函数计算排名(DAX函数使用RANKX进行排名的一些经验与技巧)(2)

所以,RANKX函数常用的组合:IF HASONVALUE RANKX BLANK

HANSVALUE与ALLSELECTED函数使用相同的列作为参数,就是我们所说的分组排名,我们再看一个根据客户进行的排名:

客户排名 = IF(HASONEVALUE('销售记录'[客户]), rankx(ALLSELECTED('销售记录'[客户]),[销售金额],,DESC,Skip),BLANK())

同样我们也使用IF组合:

怎么利用rank函数计算排名(DAX函数使用RANKX进行排名的一些经验与技巧)(3)

这就是RANKX函数的基本用法

,