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)