RANKX 函数

第一参数,排序对象,一般情况用all(表[列])取全部值,当然也不尽然,
第二参数,排序依据
第三参数,排序值
第四参数,对第二参数升降序
第五参数,对第二参数要不要去重复
第二参数迭代第一参数,生成了一个表,一个参考系
第三参数迭代第二参数,取出第三参数在第二参数中的位置
file
接下来我会案例演示:
数据源:
file
关系视图:
file
让我在排序表写下第一个度量值:

Sum of 数量:=SUM([数量])

然后写下第二个度量值:

排序:=RANKX(ALL('排序表'[产品]),[Sum of 数量],[Sum of 数量])

看看透视表的效果:
file
在这里我们先不处理总计行,因为这不是我们的话题
让我写下第三个度量值:

排序 的副本:=RANKX(ALL('排序表'[产品]),[Sum of 数量],5)

把这个度量值放入到透视表看看效果:
file
我是想告诉你,第三参数和第一参数毛关系也没有,很多人以为第三参数和第一参数关系是必然的,其实不是的
让我写下第四个度量值:

排序 的副本 2:=RANKX('参数表','参数表'[数量],[Sum of 数量])

放入透视表:
file
我想告诉你,其实第一参数和第二参数是必须的,排序不一定是第一参数的排序,不要以为第一参数就是排序的对象
其实没有多少毛关系
让我们写下第五个度量值:(上一次复制错了,重新改正了)

排序 的副本 3:=RANKX(ALL('排序表'[产品]),[Sum of 数量],SUM('排序表'[数量]))

放入透视表看看:
file
这个我是想告诉你:
其实第三参数和第一参数,第二参数没有直接关系,第三参数是外部筛选取值,没有calculate照样工作,
我的这篇文章主要是颠覆你的认识,因为很多人会形成固化思维,如有阐述不对请读者指点!!!