首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PowerBI中对文本的进行排名的方法及应用

PowerBI中对文本的进行排名的方法及应用

作者头像
逍遥之
发布2020-05-13 13:45:53
1.3K0
发布2020-05-13 13:45:53
举报
文章被收录于专栏:数据技巧数据技巧数据技巧

对于数值型数据的排名是经常使用到的,例如成绩,销售额,销售量等进行排名,那对文本排名是否有必要,文本型字段排名又有什么作用呢?

对于排名,通常使用到的函数为rankx。

RankX ( <Table>, <Expression> [, <Value>] [, <Order>] [, <Ties>] )

位置

参数

描述

第1参数

Table

需要比对的表

第2参数

Expression

针对每一行运算的表达式

可选第3参数

Value

返回查找标量值的表达式,缺省则默认和第2参数一样。

可选第4参数

Order

降序0或升序1排名。默认0

可选第5参数

Ties

碰到同排名,之后的排名是顺延排序Dense,还是跳过排序Skip。默认Skip

如图1所示,是一个成绩表,如果要简单的对成绩进行排名,则直接可以使用

成绩排名1=Rankx(all(`成绩表`),calculate(sum(`成绩表`[成绩]))

注意:在直接使用度量值时,需要注意2点。第1点就是对于表的其他维度进行忽略操作;第2点是因为是直接度量值写法,所以在使用第2参数时需要使用calculate进行上下文的转换。

如果是针对姓名排序,依旧是按照以上的操作方法,但是这里我们在第5参数这里选择连续,而非跳过skip,效果如图2所示。

姓名排名1=Rankx(all(`成绩表`),calculate(sum(`成绩表`[姓名]),,,dense)

这里使用了sum还是其他相对的聚合函数,如果说相对比较规范的,则可以使用selectedvalue函数。

计算姓名排名有什么用呢?很多时候可以通过这个技巧来对表格的背景色及字体颜色进行处理,如图3所示,这样的显示会不会分组的更好看点呢?

此时只需要对排名进行奇数或者偶数的区分即可,通过mod函数也可以,通过iseven函数也可以,根据判断的结果对字段数据进行条件颜色的设置,如图4所示。

到这里基本目的达成了,还有个小缺憾,就是如果选择多个姓名的话,这个分组就会出错,如图5所示。

为什么会产生这种情况呢?如何进行处理呢?

这个是因为我们在忽略表的时候使用的是all函数,是忽略的整个表的维度,但是如果是多选的话则我们只需要忽略多选时表格的维度,所以在all这里,使用allSelect就可以解决这个问题,效果如图6所示。

如果觉得有帮助,那麻烦您进行转发,让更多的人能够提高自身的工作效率。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据技巧 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档