Excel精英培训网

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

[已解决]请给予帮忙,由数据表得到排名表,谢谢!

[复制链接]
发表于 2009-11-15 21:33 | 显示全部楼层 |阅读模式

 

请教老师:
  如何做一个宏,直接由原始数据表得到本排名表,谢谢!
我用录制宏做过,但每次人数不同A列就必须手工完成,故请高手帮忙
做一个完全自动的,
且有相同分时名次相同,如第4\5名分数相同,名次应该是4\4,附件中的名次应该是1.2.3.4.4.6.7.7.9…….谢谢!
m87wqBh4.rar (32.2 KB, 下载次数: 10)
发表于 2009-11-15 23:27 | 显示全部楼层

试一个,不知道行不行


 

JpLgexKJ.rar (43.87 KB, 下载次数: 1)

D95VD3is.rar

38.97 KB, 下载次数: 1

请给予帮忙,由数据表得到排名表,谢谢!

回复

使用道具 举报

 楼主| 发表于 2009-11-15 23:40 | 显示全部楼层

谢谢你,但不符合我的要求啊,
我的前10名依次是1.2.3.4.4.6.7.7.9…….
你的前10名依次是1.2.3.4.4.5.6.6.7.....
回复

使用道具 举报

发表于 2009-11-16 00:02 | 显示全部楼层    本楼为最佳答案   

Sub test()
    Dim i As Long
    Dim j As Long
    Dim n As Integer
    Dim Lrow As Long
    Dim Arr1, Arr2(), temp
    With Sheets("原始数据")
        Lrow = .[A65536].End(xlUp).Row
        Arr1 = .Range("A1:D" & Lrow)
    End With
    For i = 2 To Lrow
        For j = 2 To Lrow
            If Arr1(i, 4) > Arr1(j, 4) Then
                temp = Application.Index(Arr1, i)
                For n = 1 To 4
                    Arr1(i, n) = Arr1(j, n)
                    Arr1(j, n) = temp(n)
                Next
            End If
        Next
    Next
    ReDim Arr2(1 To Lrow)
    Arr2(1) = "名次"
    For i = 2 To Lrow
        If Arr1(i, 4) = Arr1(i - 1, 4) Then
            Arr2(i) = Arr2(i - 1)
        Else
            Arr2(i) = i - 1
        End If
    Next
    With Sheets("排名表")
        .Cells.Delete
        .[A1].Resize(Lrow, 1) = Application.Transpose(Arr2)
        .[B1].Resize(Lrow, 4) = Arr1
        .[A1].Resize(Lrow, 5).Borders.LineStyle = xlContinuous
    End With
End Sub
回复

使用道具 举报

 楼主| 发表于 2009-11-16 11:50 | 显示全部楼层

人事部长出手,谢谢!
回复

使用道具 举报

发表于 2009-11-16 16:03 | 显示全部楼层

谢谢学习了!
回复

使用道具 举报

发表于 2009-11-16 16:19 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2009-11-17 02:42 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 16:29 , Processed in 0.568927 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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