Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3027|回复: 5

求助此表如何实现自动分数排名,谢谢大家

[复制链接]
发表于 2012-2-17 09:57 | 显示全部楼层 |阅读模式

前两列是数据库,想在后三列自动实现数据的从
2012-2-17 09:57 上传
下载次数: 0


1到50名的降序从多到少的排名,谢谢大家


自动排名求助.zip (4.12 KB, 下载次数: 18)
发表于 2012-2-17 10:27 | 显示全部楼层
回复

使用道具 举报

发表于 2012-2-17 10:36 | 显示全部楼层
姓名
分数
排名
=INDEX($A$2:$B$51,$E2,1)
=INDEX($A$2:$B$51,$E2,2)
=52-ROW()
回复

使用道具 举报

发表于 2012-2-17 11:00 | 显示全部楼层
给个vba的
  1. Sub 排序()
  2.     Dim arr, brr(), temp1, temp2
  3.     Dim i, j As Long
  4.     arr = Range("a2:b" & Range("a65536").End(xlUp).Row)
  5.     For i = 1 To UBound(arr) - 1
  6.         For j = i + 1 To UBound(arr)
  7.             If arr(i, 2) < arr(j, 2) Then
  8.                 temp1 = arr(i, 1)
  9.                 temp2 = arr(i, 2)
  10.                 arr(i, 1) = arr(j, 1)
  11.                 arr(i, 2) = arr(j, 2)
  12.                 arr(j, 1) = temp1
  13.                 arr(j, 2) = temp2
  14.             End If
  15.         Next j
  16.     Next i
  17.     ReDim brr(1 To UBound(arr))
  18.     brr(1) = 1
  19.     For i = 2 To UBound(arr)
  20.         If arr(i, 2) <> arr(i - 1, 2) Then
  21.             brr(i) = brr(i - 1) + 1
  22.         Else
  23.             brr(i) = brr(i - 1)
  24.         End If
  25.     Next i
  26.     Range("c2:e65536").ClearContents
  27.     Range("C2").Resize(UBound(arr), 2) = arr
  28.     Range("e2").Resize(UBound(brr), 1) = Application.Transpose(brr)
  29. End Sub
复制代码
自动排名求助.rar (9.88 KB, 下载次数: 12)
回复

使用道具 举报

 楼主| 发表于 2012-2-17 12:04 | 显示全部楼层
顶自己!!!!!
回复

使用道具 举报

发表于 2012-2-17 12:22 | 显示全部楼层
C2数组公式右下拉:
  1. =IF(COLUMN()>4,ROW(A1),INDEX(A:A,1+MATCH(LARGE($B$2:$B$51,ROW(A1)),$B$2:$B$51,)))
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-7 03:48 , Processed in 0.379843 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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