所在位置:
首页 >
营销资讯 >
网站运营 > 除了DAX,原来还可以利用PowerQuery中的M进行排名?
除了DAX,原来还可以利用PowerQuery中的M进行排名?
时间:2023-06-26 08:30:01 | 来源:网站运营
时间:2023-06-26 08:30:01 来源:网站运营
除了DAX,原来还可以利用PowerQuery中的M进行排名?:
我的书《Power BI商业数据分析》已出版,帮你从0到1,轻松入门:以前介绍过利用RANKX函数来进行排名,在某些情况下,需要对PowerQuery中的数据直接进行排名,那么如何用PowerQuery来计算排名呢?
DAX函数中有RANKX来计算排名(参考:这几个示例,帮你深入理解RANKX排名),其实PowerQuery中的也有一个M函数可以排名:Table.AddRankColumn。
这个M函数可以为表添加一个排名列,下面通过几个简单的例子,来熟悉这个函数的用法。
模拟数据如下:
假如要对这个表添加个排名列,对类别按照金额进行排名,先添加个步骤,来输入M公式。
关于PowerQuery中添加步骤,有两种方式:
1、点击编辑栏旁边的fx
2、点击上一个步骤,右键>插入步骤后
知道了如何插入步骤以后,就在插入的步骤中,在编辑栏中输入:
Table.AddRankColumn( 更改的类型, "排名",{"金额"})
函数中第一个参数更改的类型,是上一个步骤的名称,第二个参数是新列的列名,第三个参数,是排名依据。
然后就自动添加了一列排名列。
通过这个M函数,我们就得到了一列排名,不过这个排名是按照金额升序排列的,也就是金额最小的排名第一。
如果想让金额最大的排名第一,可以这样改:
Table.AddRankColumn(
更改的类型,
"排名",{"金额",Order.Descending}
)
这样就得到一列常见的排名,数据最大的排第一。
上面的排名数字是跳跃的,这个数据有两个类别并列第三,则下一个排名从5开始。
如果想让下一个排名不跳跃,即使有并列的情况,也是连续的排名,还可以再添加个参数来调整排名。
Table.AddRankColumn(
更改的类型,
"排名",{"金额",Order.Descending},[RankKind=RankKind.Dense]
)
这样就得到了连续的排名。
这个函数不仅是对根据一列进行排名,还可以按照多个字段来排名,假如按照金额列和数量列来排名,如果金额相等,则按数量来排名,就可以这样来写:
Table.AddRankColumn(
更改的类型,
"排名",{{"金额",Order.Descending},{"数量",Order.Descending}}
)
这样就实现了按照两个字段来排名,如果按更多的字段排名,还可以继续添加字段。
通过以上几个示例,你应该了解了如何在PQ中计算排名,不过这里计算的排名都是静态的,如果你想在报告中实现动态的排名,还是应该用RANKX函数写度量值来实现。
更多推荐:
喜欢别忘了点赞哦~
掌握一个技能专研一个领域成为更好的自己