需要使用VBA在具有相同密钥的多个记录中返回最大值

时间:2013-03-01 05:36:33

标签: excel vba excel-vba

我正在编写一个VBA函数,它将在表中的列(例如C列)中搜索值。此列可以有重复项。因此,我的搜索需要获取与值(包括重复项)匹配的所有记录,并且从这些记录中我只需要在同一工作表中的另一列中具有最大值的记录中返回一个值(比如列G)。

例如:

sno    dept    name     marks
1      cs      sush     55
2      ece     ram      68
3      cs      harish   77

所以如果我给“cs”值进行搜索,它必须给我77作为输出。我试着编写自己的Lookup函数但是没有工作并获得#value。

1 个答案:

答案 0 :(得分:0)

Function search(criteria As String)
    Dim rng As Range
    Set rng = Range("A1").CurrentRegion

    Range("Z1").CurrentRegion.Clear
    If Not rng Is Nothing Then
        rng.AdvancedFilter xlFilterCopy, "", Range("Z1"), True
        Range("AC1").Sort Key1:=Range("AA1"), Key2:=Range("AC1"), Header:=xlYes, Order2:=xlDescending
    End If



    search = Application.VLookup(criteria, Range("AA:AC"), 3, 0)

End Function