RANKX函数我们之前也讲过,今天我们来做个回顾
RANKX函数一共有5个参数,前两个参数是必选参数,后三个是可选参数:
第一参数:表可以是直接一个表,也可以是函数生成的表,ALL、ALLSELECTED等函数生成的表。
第二参数:表达式聚合表达式,用聚合函数编写的表达式,或者是编写好的度量值。
第三参数:值与第二参数相同,是个聚合表达式,可选参数,通常都是空。
第四参数:排序有两个选项:
- 0:降序,默认值
- 1:升序
两个选项:
- Skip:相同排名按照个数增加,下一排名=上一排名加上相同排名的个数
- Dense:相同排名不计个数,下一排名=上一排名加一
我们来看例子:
最直接的排名度量值:
产品排名1 = rankx(ALLSELECTED('销售记录'[产品名称]),[销售金额],,DESC,Skip)
布局上做调整的度量值:
产品排名 = IF(HASONEVALUE('销售记录'[产品名称]),
rankx(ALLSELECTED('销售记录'[产品名称]),
[销售金额],,DESC,Skip),
BLANK())
两个度量值的效果比较:
当我们按天进行切片时,没有进行布局调整的度量值会显示出控制以及总计的排名,而经过布局调整的度量值,则看起来很整齐:
所以,RANKX函数常用的组合:IF HASONVALUE RANKX BLANK
HANSVALUE与ALLSELECTED函数使用相同的列作为参数,就是我们所说的分组排名,我们再看一个根据客户进行的排名:
客户排名 = IF(HASONEVALUE('销售记录'[客户]), rankx(ALLSELECTED('销售记录'[客户]),[销售金额],,DESC,Skip),BLANK())
同样我们也使用IF组合:
这就是RANKX函数的基本用法
,