Vba: dizin eşleştirme nasıl kullanılır?
VBA’da INDEX MATCH gerçekleştirmek için aşağıdaki temel sözdizimini kullanabilirsiniz:
SubIndexMatch ()
Dim i As Integer
' Perform index match
For i = 2 To 11
Cells(i, 5).Value = WorksheetFunction.Index(Range(" A2:A11 "), _
WorksheetFunction.Match(Cells(i, 4).Value, Range(" B2:B11 "), 0))
Next i
End Sub
Bu özel örnek, çalışma sayfasının dördüncü sütununun 2’den 11’e kadar olan hücrelerinde B2:B11 aralığındaki değerleri arar ve ardından çalışma sayfasının beşinci sütununda A2:A11 aralığında karşılık gelen değerleri döndürür.
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: VBA kullanarak INDEX MATCH gerçekleştirme
Basketbolcularla ilgili bilgileri içeren Excel’de aşağıdaki veri kümesine sahip olduğumuzu varsayalım:
D sütunundaki her oyuncunun takım adını A sütununda bulmak istediğimizi ve ardından E sütununa takım adını yazmak istediğimizi varsayalım.
Bunun için aşağıdaki makroyu oluşturabiliriz:
SubIndexMatch ()
Dim i As Integer
' Perform index match
For i = 2 To 11
Cells(i, 5).Value = WorksheetFunction.Index(Range(" A2:A11 "), _
WorksheetFunction.Match(Cells(i, 4).Value, Range(" B2:B11 "), 0))
Next i
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
Bu makronun her oyuncunun adını arayabildiğini ve ardından karşılık gelen takımın adını E sütununda döndürebildiğini unutmayın.
For döngüsünde, Cells(i,5).value sözdiziminin, takım adlarının elektronik tablonun beşinci sütununda, yani E sütununda döndürülmesini istediğimizi belirttiğini unutmayın.
Bu sözdizimini Hücreler(i,6).değer olarak değiştirirsek takım adları e-tablonun altıncı sütununda döndürülür:
SubIndexMatch ()
Dim i As Integer
' Perform index match
For i = 2 To 11
Cells(i, 6).Value = WorksheetFunction.Index(Range(" A2:A11 "), _
WorksheetFunction.Match(Cells(i, 4).Value, Range(" B2:B11 "), 0))
Next i
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
Takım adlarının artık e-tablonun altıncı sütununda (F sütunu) döndürüldüğünü unutmayın.
Ek kaynaklar
Aşağıdaki eğitimlerde VBA’da diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
VBA: bir dizenin başka bir dize içerip içermediği nasıl kontrol edilir
VBA: Aralıktaki satır sayısı nasıl sayılır?
VBA: COUNTIF ve COUNTIFS işlevleri nasıl yazılır?