TOP

Geliştirilmiş işlev VLOOKUP (VLOOKUP2)

Tanım

Yerleşik VLOOKUP işlevi, Excel'deki en güçlü işlevlerden biridir. Ancak önemli bir dezavantajı vardır; tabloda istenen değerin yalnızca ilk örneğini ve yalnızca en sağdaki sütunda bulur. Peki sonuncuya değil de 2., 3.'ye ihtiyacınız varsa?


Bir sorun örneği

Diyelim ki şöyle bir işlenmiş krediler tablomuz var:

Örneğin Mike'a verilen üçüncü kredinin miktarını veya John'un ikinci sözleşmesini ne zaman imzaladığını bilmemiz gerekiyor. Yerleşik işlev VLOOKUP Tabloda bir ismin yalnızca ilk geçtiği yerde nasıl arama yapılacağını bilir ve bize yardımcı olmaz.

Sadece ilk girdiyi değil sonraki (N'inci) girdiyi de arayacak fonksiyonumuzu yazalım. Buna örneğin VLOOKUP2 diyelim.

VBA işlevi için kod VLOOKUP2

Menüyü aç Servis - Makro - Düzenleyici Visual Basic , yeni modülü takın (menü Insert - Module) ve bu işlevin metnini buraya kopyalayın:

Function VLOOKUP2(Table           As Range, _
                  SearchColumnNum As Integer, _
                  SearchValue     As Variant, _
                  N               As Integer, _
                  ResultColumnNum As Integer)        
  Dim i      As Integer
  Dim iCount As Integer
       
  For i = 1 To Table.Rows.Count
    If Table.Cells(i, SearchColumnNum) = SearchValue Then
      iCount = iCount + 1
    End If
    If iCount = N Then
      VLOOKUP2 = Table.Cells(i, ResultColumnNum)
      Exit For
    End If
  Next i
End Function 

Visual Basic düzenleyicisini kapatın ve Excel'ye dönün.

Artık İşlev Sihirbazı'nın Kullanıcı Tanımlı kategorisinde VLOOKUP2 işlevimizi bulabilir ve kullanabilirsiniz. Fonksiyonun sözdizimi aşağıdaki gibidir:

=VLOOKUP2(masa ; sütun_number_where_we_search ; aranan_değer; giriş numarası ; sütun_number_from_hangi_we_take_the_value )

Yani Mike'a verilen üçüncü kredinin tutarını bulmak için şunu girmeniz gerekir:

=VLOOKUP2(A2:A19 ; 1 ; "Mike"; 3 ; 4 )

Konuyla ilgili makaleler: