设为首页收藏本站

嘻皮客娱乐学习网

 找回密码
 中文注册
搜索
打印 上一主题 下一主题
开启左侧

[Excel技巧] Excel中的“多关键字”排名公式

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-10 10:03:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
在Excel中对某列进行排名时通常使用RANK函数,但有时排名需要考虑多列的情况,例如在对B列排名时,如果B列有相同的数值,则按C列排名。通常,要获得这样的多列排名结果,可以在“排序”对话框中依次选择或添加“主要关键字”和“次要关键字”,然后进行排序即可。但在不改变表格结构的情况下,要获得“多关键字”的排名,可以用下面的一些公式。
    例如下图为某电视节目在播出日期内的收视率和收视份额,需要用公式返该日期内按收视率的降序排名,在收视率的排名相同时,则按收视份额降序排名。其中D列为直接使用RANK函数对B列排名的结果,可以看到,B列数值相同时,其排名也是相同的,不符合要求。
   
    假如数据在A1:E22区域,在E2中输入公式:
    =RANK(B2,B$2:B$22)+SUMPRODUCT(N((B$2:B$22=B2)*(C$2:C$22>C2)))
    然后向下填充公式即可得到先按B列后按C列降序的排名结果。
    上述公式先用RANK函数获得初步的排名,对于B列数值相同的情况,用SUMPRODUCT函数得到这些相同值对应C列数值的“排名”,最后返回所需结果。也可使用下面的两个公式:
   =SUMPRODUCT(N((B2*1000+C2)<(B$2:B$22*1000+C$2:C$22)))+1
    该公式将B列的数值乘以一个相对同行C列数值较大的数,如本例为“1000”,再加上同行C列的值,最后比较合计值得到排名。类似地也可以用C列除以一个较大数值:
    =SUMPRODUCT(N((B2+C2/1000)<(B$2:B$22+C$2:C$22/1000)))+1
    另外,如果用于排名的数值都为非负整数,可用“&”连接各列数值,再用SUMPRODUCT函数排名。如下图A1:E21区域为某公司年终考核的数据,要求先按总分列降序排名,如果总分相同,则依次按“业务能力”和“工作态度”列降序排名。
   
    在F2中输入公式:
    =SUMPRODUCT(N(E2&B2&C2<(E$2:E$21&B$2:B$21&C$2:C$21)))+1
    然后填充公式到F21即可。
回复

使用道具 举报

小黑屋|手机版|嘻皮客网 ( 京ICP备10218169号|京公网安备11010802013797  

GMT+8, 2024-5-10 08:09 , Processed in 0.176134 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表