Excel自动排序问题

例如,有10个学生一列,每人6门学科考试分数横向成行,最后一列是每个学生的分数汇总,当某个学生的总得分在我输入结束后,一按回车,通过他的汇总分与其他学生对比,然后他就自动... 例如,有10个学生一列,每人6门学科考试分数横向成行,最后一列是每个学生的分数汇总,当某个学生的总得分在我输入结束后,一按回车,通过他的汇总分与其他学生对比,然后他就自动排序到相应的名次行上,并且在最后显示排名序号。例如某学生的分数是我第6个输入的,但他分数是目前的第二名,在我输入结束后,他要能整行自动移动到第二列,且在汇总分后面显示2,请问大神们,这如何做到? 展开
 我来答
Zhangweijun189
科技发烧友

2019-08-29 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:3021
采纳率:59%
帮助的人:967万
展开全部

录制一个宏,稍微改改,用Worksheet_Change事件触发就行

Private Sub Worksheet_Change(ByVal Target As Range)

 If Target.Column = 8 And Target.Row > 1 Then

 Call px

 End If

 Target.Offset(1, 0).Select

End Sub

Private Sub px()

aa = Range("a65536").End(xlUp).Row

    Rows("1:1").Select

    Range(Selection, Selection.End(xlDown)).Select

    Me.Sort.SortFields.Clear

    Me.Sort.SortFields.Add Key:=Range("H2:H11"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal

    With Me.Sort

        .SetRange Range("A1:H" & Range("a65536").End(xlUp).Row)

        .Header = xlYes

        .MatchCase = False

        .Orientation = xlTopToBottom

        .SortMethod = xlPinYin

        .Apply

    End With

    Range("i2:i10000").ClearContents

    r = Range("h65536").End(xlUp).Row

  For i = 2 To r

     Cells(i, 9) = Application.Rank(Cells(i, 8), Range("h2:h" & r))

  Next

End Sub

追问
这么复杂啊大哥,不过貌似挺可行的,待我有空了试试,先采纳了,有什么疑问再问你,谢谢啦!
aflyingant
2019-08-29 · 超过30用户采纳过TA的回答
知道答主
回答量:1750
采纳率:11%
帮助的人:164万
展开全部
这个操作的逻辑是这样的,你可以先把所有的学生的成绩全部录入。然后选中全部表格。在菜单栏点数据,选项卡,然后选择排序,进行升序排列就可以了。
排完序之后,在最后一列输入一个名次列,下拉填充123就可以了。
追问
对不起,这个功能大家都知道,但我想要我提问里描述的,谢谢啦
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
E维007
2019-08-29 · TA获得超过788个赞
知道小有建树答主
回答量:1796
采纳率:92%
帮助的人:880万
展开全部
这个功能效果的实现得需要VBA的程序编辑吧,也就是VB程序编辑可能打到,我感觉只使用简单的排序筛选功能无法实现。再或者你确实需要这个自动排序效果,而不限定有excel,那用Access或许要方便些。仅供参考。
更多追问追答
追问
这些回答的大神里,只有你的还算靠谱,其他的人都是答非所问。

不用编程,不用access,仅用公式无法做到么?
追答
以我现在掌握的情况做不到,因为要同步的单元格较多。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友310636f0
2019-08-29
知道答主
回答量:28
采纳率:33%
帮助的人:2.1万
展开全部
在数据全部录入完成后,选中最后一列,然后点击 排序和筛选选项卡——降序——扩展到选定区域(这一步会弹出对话框)。
追问
这个不是我想要的,我想要的事我提问里描述的,谢谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
573_King

2019-08-29 · TA获得超过625个赞
知道小有建树答主
回答量:2772
采纳率:69%
帮助的人:93.3万
展开全部
你说的我不大会,但可以用低级版本,就算你把分都打上去后全选,排序,选择按照总分从高到低,最后在第一行末打上1往下一拉就行了,也费不了多长时间。
追问
你说的这种排序就是常规的人工介入排序,实不相瞒,这些数据都是从其它表格用vlookup自动导入的,都带有公式,如果按普通的模式排序,会复杂很多,所以我想实现我提问里描述的功能,谢谢了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式