EXCEL 分类 排名

来源:百度知道 编辑:UC知道 时间:2024/07/04 11:03:06
A列 B列 C列
地区 姓名 总额
A区 张秀金 704
B区 赵玉云 678
C区 李金龙 669
D区 赵梅芬 660
A区 黄美欣 657
B区 林姚摇 656
C区 潘迳清 635
D区 李翠敏 618
A区 王玉仪 607
B区 刘丽桃 606
C区 钟日全 595
D区 钟启玲 586
A区 朱淑静 585
B区 范玉婷 582
C区 钟运新 581
D区 陈旭 573

不用筛选,不用排序,如何在D列用公式实现总额按地区排名?
比如说B区 赵玉云总额在C列中排名第2,在B区所有的人当中排第1,怎么实现每个人所在地区的名次,而非整列C中的名次。

用SUMPRODUCT函数可以做到,但数据多的话,计算速度很慢。

用=COUNTIFS(A:A,A2,C:C,">704")+1,可以算出,但用=COUNTIFS(A:A,A2,C:C,>C2)+1或=COUNTIFS(A:A,A2,C:C,">C2")+1都无法算出。

还有没有其它的办法?

想到了解决办法,
=COUNTIFS(A:A,A2,C:C,">"&C2)+1
太兴奋了。

这是满足单个条件的排名
在D2单元格输入:
=SUMPRODUCT(($A:$A=A2)*($C:$C>C2))+1
向下拖动复制该公式

在此公式基础上添加条件函数还可以对满足多条件的数据排名

请问楼主,我也尝试了,为什么>要加上“”符号呢?还有为什么要加"&"?

恭喜你,会答俩答案了!

=================
再其他,就建一个后台隐藏表,去排序啦
最后D列Vlookup回来吧

更麻烦

=================
一楼的答案差不多对了,稍微修改一下就OK:

D2 =SUMPRODUCT((A$1:A$99=A2)*(C$1:C$99>C2))+1

然后复制到全部D列。
“99”根据实际行数调整。

execl有rank函数,直接使用就可以了,如果不会用可以查一下office帮助。
=RANK(C1,C:C,0)
这只是一个例子,你按照帮助自己修改一下就可以了

我没看清楚你的要求,你这种要求最好还是用数据透视表配合rank函数最快,用SUMPRODUCT函数效率确实不怎么样。
如果可能最简单的方式其实是配合access,使用sql语句来查询,但是绝大多数精简版的excel是不安装这个组件的。

gzmczb 的公式中不能直接用整列吧?

没太明白楼主的要求。