怎么把EXCEL表格中某一列中重复的内容选择出来,若有相同的,取其最大值?谢谢,我查了书还是没看懂怎么做

来源:百度知道 编辑:UC知道 时间:2024/07/07 10:00:51
举例:B列(科目) C列(成绩)
微积分 58
微积分 78
我的目的就是在保留成绩高的一科目,同时列的数据很多

可使用VBA的字典功能来实现,程序如下:
Private Sub CommandButton1_Click()
Dim d As New Dictionary
Dim rag As Range
Dim i As Integer
Rem 假定把计算结果存放在D列和E列
Range("D:E").ClearContents '清空D、E两列
Rem 建立字典
For Each rag In Range("B:B")
If rag.Value = "" Then Exit For
If d.Exists(rag.Value) Then
d(rag.Value) = Application.WorksheetFunction.Max(d(rag.Value), rag.Offset(0, 1).Value)
Else
d(rag.Value) = rag.Offset(0, 1).Value
End If
Next
Rem 把字典里的数据写到D、E列
For i = 1 To d.Count
Range("D" & i).Value = d.Keys(i - 1)
Range("E" & i).Value = d.Items(i - 1)
Next i
End Sub
该程序已调试成功

排序,b列为第一关键字,c列第二关键字【降序】。
高级筛选b列,不显示重复记录。

用筛选功能

先对C列升序排序,再对B列升序排序;于是所有相同科目的成绩都会按分数升序排序了。然后你就可以选每一科最大的分数了

如果还要自动实现,则要在D列加公式 D1: =if(b1=b2,"",C1) 然后一直往下拖到末尾,那D列的值就是对应于B列的最大值了。