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 olayı değil sonraki (N'inci) oluşumu da araştıracak 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)        
  'moonexcel.com.ua
  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 

Düzenleyiciyi kapat Visual Basic ve Excel'ye dönün.

Şimdi İşlev Sihirbazları kategoride Kullanıcı tanımlı VLOOKUP2 fonksiyonumuzu bulup 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: