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?
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.
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)