-
-
小灰灰1 数据达人Lv4
发表于2020-7-20 21:24
悬赏1
已解决
楼主
本帖最后由 小灰灰1 于 2020-7-20 21:27 编辑
在多层浮动维设置下,如何实现班级内部的rank的不重复排名?
也就是排名结果是:1 2 3 4
而不是1 2 2 4这种?

在多层浮动维设置下,如何实现班级内部的rank的不重复排名?
也就是排名结果是:1 2 3 4
而不是1 2 2 4这种?

最佳答案
小灰灰1 发表于 2020-7-21 10:31
rk函数也不支持我这种按照计算后单元格的值进行排名,这种是不是就没有办法搞了呀?
能不能帮问下其他大 ...
rk会改变结果顺序,而rank不能够指定规则排序。所以您这样又要指定规则又不想要改变结果顺序的不能够实现的。
7个回答
用_rk()试试?定义:_rk(zb1,"asc|desc",0|1|2)
返回指标在维中的排名,对于相同排名,根据参数,可以选择不同的处理方式。
参数:
zb1:需要进行排名的指标
asc|desc:表示对指标是进行升序还是降序排名,asc表示升序,desc表示降序
0|1|2:对指标排名时,相同的排名时的处理方式,具体用法请看举例
示例:
返回指标在维中的排名
rk(zb1,"asc",0):将指标在维中根据升序排名,如果有相同的名次,则对名次的处理方法为:1 2 24 ,即相同的名次并列,没有第3名。
_rk(zb1,"asc",1):将指标在维中根据升序排名,如果有相同的名次,则对名次的处理方法为:1 2 2 3 ,即相同的名次并列,但有第3名。
_rk(zb1,"asc",2):将指标在维中根据升序排名,如果有相同的名次,则对名次的处理方法为:1 2 3 4 ,即忽略相同的名次。
如果是降序,则处理方法与升序相似:
_rk(zb1,"desc",0):将指标在维中根据升序排名,如果有相同的名次,则对名次的处理方法为:4 2 2 1 。
_rk(zb1,"asc",1):将指标在维中根据升序排名,如果有相同的名次,则对名次的处理方法为:1 2 2 3 ,即相同的名次并列,但有第3名。
_rk(zb1,"asc",2):将指标在维中根据升序排名,如果有相同的名次,则对名次的处理方法为:1 2 3 4 ,即忽略相同的名次。
如果是降序,则处理方法与升序相似:
_rk(zb1,"desc",0):将指标在维中根据升序排名,如果有相同的名次,则对名次的处理方法为:4 2 2 1 。
xxxl 发表于 2020-7-20 21:28
用_rk()试试?定义:_rk(zb1,"asc|desc",0|1|2)返回指标在维中的排名,对于相同排名,根据参数,可以选择不 ...
_rk是会改变数据结果顺序的,不能用rk,rank不能实现吗
小灰灰1 发表于 2020-7-21 09:03
_rk是会改变数据结果顺序的,不能用rk,rank不能实现吗
rank对象表达式对数值进行降序排名。
比如: rank(zb1),对指标1数值降序排名; rank(zb2,true),对指标2数值升序排名。
rank函数仅能给出排名,没有像_rk()那样的参数
xxxl 发表于 2020-7-21 09:38
rank对象表达式对数值进行降序排名。
比如: rank(zb1),对指标1数值降序排名; rank(zb2,true),对指标2 ...
如果我既想实现不重复排名,又不想改变数据的结果顺序,有没有办法实现?
xxxl 发表于 2020-7-21 09:38
rank对象表达式对数值进行降序排名。
比如: rank(zb1),对指标1数值降序排名; rank(zb2,true),对指标2 ...

能不能帮问下其他大神们?如果确认做不了,我就不做了,我就去问问客户那边能不能去掉这块的内容了
小灰灰1 发表于 2020-7-21 10:31
rk函数也不支持我这种按照计算后单元格的值进行排名,这种是不是就没有办法搞了呀?
能不能帮问下其他大 ...
rk会改变结果顺序,而rank不能够指定规则排序。所以您这样又要指定规则又不想要改变结果顺序的不能够实现的。
xxxl 发表于 2020-7-21 10:35
rk会改变结果顺序,而rank不能够指定规则排序。所以您这样又要指定规则又不想要改变结果顺序的不能够实现 ...
任何变通的实现方法也没有么?二次开发也不行么?