0

テーブルの列(たとえば列C)の値を検索するVBA関数を作成しています。この列は重複している可能性があります。したがって、私の検索では、値に一致するすべてのレコード(重複を含む)を取得する必要があり、これらのレコードから、同じシートの別の列(たとえば列G)で最大値を持つフェッチされたレコードの1つの値のみを返す必要があります。

例:

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

したがって、検索に「cs」値を指定すると、出力として77が返される必要があります。独自のルックアップ関数を作成しようとしましたが、機能せず、#valueを取得していません。

4

1 に答える 1

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
于 2013-03-01T06:41:40.617 に答える