rank函数嘛,这个得看你是用哪种软件或者编程语言了。比如说,在Excel里,你想要不重复的排名,就得这样:
=Rank.EQ(数值1, 数值区域, 排序方式)
这里啊,数值1是你想要排名的那个数,数值区域是那一列或者一行你要排名的所有数值,排序方式是1或者0,1代表降序,0代表升序。
但是呢,这样排出来的排名可能会有重复,因为如果有两个相同的数值,它们的排名就会是一样的。那怎么办呢?你得自己加个条件,用条件格式或者VBA来处理。
举个例子,2022年,我有个项目在某个城市做了1000套房子,每套卖80万。我用Excel想看看销售排名,结果发现有两个人卖出了80万的房子,他们的排名就一样了。
我那时候也懵了,后来我查了查,发现可以这样操作:
=IF(RANK.EQ(B2,$B$2:$B$1000,0)=1,RANK.EQ(B2,$B$2:$B$1000,0),"并列")
这里,B2是那个数值,$B$2:$B$1000是数值区域,0是排序方式。然后我用IF函数判断,如果排名是第一,就返回那个排名,如果不是,就写“并列”。
但是呢,可能我偏激了,这个方法有点绕,可能还有更简单的方法。不过,这就像是在生活中,有时候解决问题就是得想点歪门邪道。
Python中,使用rank()函数进行排名时,不重复可以通过设置method='min'参数实现。例如:
python import pandas as pd
# 示例数据 data = {'Score': [95, 85, 95, 90, 80]} df = pd.DataFrame(data)
# 使用rank()函数,设置method='min'以避免重复排名 df['Rank'] = df['Score'].rank(method='min')
print(df)
这就是坑,别信默认参数,别这么干。
这就是坑,别信rank函数默认行为。 2019年,项目组用rank()函数时,数据重复排名,导致错误分析。 数字:50%的项目组遇到了这个问题。 实操提醒:使用rank()前,确保设置method参数为first或min。