主题 : 用Excel排名次(名次号连续;分组排名)(中国式排名)
级别: 五分秋意
UID: 110727
精华: 0
发帖: 189
威望: 7570 点
无痕币: 781 WHB
贡献值: 0 点
在线时间: 69(时)
注册时间: 2011-01-09
最后登录: 2018-05-16

0 用Excel排名次(名次号连续;分组排名)(中国式排名)

     一、用rank()函数排名次,相同数据有相同位次,但位次号不连续,解决这一问题的方法:
分数
名次
公     式
88
1
=SUMPRODUCT((A$2:A$8>=A2)/COUNTIF(A$2:A$8,A$2:A$8))
77
3
=SUMPRODUCT((A$2:A$8>=A3)/COUNTIF(A$2:A$8,A$2:A$8))
59
5
=SUMPRODUCT((A$2:A$8>=A4)/COUNTIF(A$2:A$8,A$2:A$8))
85
2
=SUMPRODUCT((A$2:A$8>=A5)/COUNTIF(A$2:A$8,A$2:A$8))
59
5
=SUMPRODUCT((A$2:A$8>=A6)/COUNTIF(A$2:A$8,A$2:A$8))
67
4
=SUMPRODUCT((A$2:A$8>=A7)/COUNTIF(A$2:A$8,A$2:A$8))
88
1
=SUMPRODUCT((A$2:A$8>=A8)/COUNTIF(A$2:A$8,A$2:A$8))
            或使用函数:rankchina(数据,范围,参数)。参数为1时顺序排名,0为逆序排名。
            Public Function rankchina(data, data_area, ref)
               Dim d As Object, e As Object, rng, i As Integer
               If ref = 1 Then
                       Set d = CreateObject("scripting.dictionary")
                       For Each rng In data_area
                           If rng = data Then i = i + 1 Else If rng < data Then d(rng * 1) = 1
                       Next
                       If i > 0 Then rankchina = d.Count + 1 Else rankchina = "
超出范围"
               Else
                       Set d = CreateObject("scripting.dictionary")
                       For Each rng In data_area
                           If rng = data Then i = i + 1 Else If rng > data Then d(rng * 1) = 1
                       Next
                       If i > 0 Then rankchina = d.Count + 1 Else rankchina = "
超出范围"
    
    
               End If
            End Function
           二、 分组排序方法:
数据
组名
组内名次
公         式
1
a
5
=SUMPRODUCT((B$2:B$20=B2)*(A2<A$2:A$20))+1
2
a
4
=SUMPRODUCT((B$2:B$20=B3)*(A3<A$2:A$20))+1
3
a
3
=SUMPRODUCT((B$2:B$20=B4)*(A4<A$2:A$20))+1
4
a
2
=SUMPRODUCT((B$2:B$20=B5)*(A5<A$2:A$20))+1
5
b
4
=SUMPRODUCT((B$2:B$20=B6)*(A6<A$2:A$20))+1
6
b
3
=SUMPRODUCT((B$2:B$20=B7)*(A7<A$2:A$20))+1
7
a
1
=SUMPRODUCT((B$2:B$20=B8)*(A8<A$2:A$20))+1
8
b
2
=SUMPRODUCT((B$2:B$20=B9)*(A9<A$2:A$20))+1
9
b
1
=SUMPRODUCT((B$2:B$20=B10)*(A10<A$2:A$20))+1
10
c
4
=SUMPRODUCT((B$2:B$20=B11)*(A11<A$2:A$20))+1
11
c
3
=SUMPRODUCT((B$2:B$20=B12)*(A12<A$2:A$20))+1
12
c
2
=SUMPRODUCT((B$2:B$20=B13)*(A13<A$2:A$20))+1
13
c
1
=SUMPRODUCT((B$2:B$20=B14)*(A14<A$2:A$20))+1
14
d
6
=SUMPRODUCT((B$2:B$20=B15)*(A15<A$2:A$20))+1
15
d
5
=SUMPRODUCT((B$2:B$20=B16)*(A16<A$2:A$20))+1
16
d
4
=SUMPRODUCT((B$2:B$20=B17)*(A17<A$2:A$20))+1
17
d
3
=SUMPRODUCT((B$2:B$20=B18)*(A18<A$2:A$20))+1
18
d
2
=SUMPRODUCT((B$2:B$20=B19)*(A19<A$2:A$20))+1
19
d
1
=SUMPRODUCT((B$2:B$20=B20)*(A20<A$2:A$20))+1
          注:用工具/公式审核/公式求值:步入、步出、求值……”可窥探公式的奥秘。
 


级别: 十方秋水

UID: 1397
精华: 0
发帖: 110789
威望: 155524 点
无痕币: 1434 WHB
贡献值: 0 点
在线时间: 66108(时)
注册时间: 2007-11-27
最后登录: 2024-05-13

这东西没好好研究过,很方便。
级别: 六行秋雁
UID: 10121
精华: 0
发帖: 973
威望: 10183 点
无痕币: 3627 WHB
贡献值: 0 点
在线时间: 360(时)
注册时间: 2008-01-21
最后登录: 2023-11-01

这个要出个祥细的题目。才能看出来
级别: 七朵秋菊

UID: 98750
精华: 0
发帖: 1654
威望: 33689 点
无痕币: 19272 WHB
贡献值: 78 点
在线时间: 1651(时)
注册时间: 2010-04-20
最后登录: 2024-05-06

能否做个程序来供大家使用呢??
向大家学习!!
知足常乐
级别: 十方秋水

UID: 23
精华: 1
发帖: 261149
威望: 117162 点
无痕币: 2494 WHB
贡献值: 0 点
在线时间: 9392(时)
注册时间: 2007-11-24
最后登录: 2024-05-13

这个复制下来备用。
事能知足心常乐 人到无求品自高
千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 605046
威望: 529588 点
无痕币: 36 WHB
贡献值: 0 点
在线时间: 62540(时)
注册时间: 2008-12-25
最后登录: 2024-05-16

这个挺方便的啊
级别: 二分秋色
UID: 127396
精华: 0
发帖: 33
威望: 340 点
无痕币: 627 WHB
贡献值: 0 点
在线时间: 23(时)
注册时间: 2011-09-19
最后登录: 2018-05-16

Excel是很强大的,包括函数、Excel宏命令、VBA编程。可惜我知道,但不会啊,学习一下,谢谢。
Total 0.073606(s) query 5, Time now is:05-16 03:15, Gzip enabled 粤ICP备07514325号-1
Powered by PHPWind v7.3.2 Certificate Code © 2003-13 秋无痕论坛