15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > 除了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函数写度量值来实现。

更多推荐:

喜欢别忘了点赞哦~

掌握一个技能专研一个领域成为更好的自己

关键词:利用

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭