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?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir