Vba: index match'i birden çok kriterle kullanma
VBA’da birden çok ölçütle INDEX MATCH gerçekleştirmek için aşağıdaki temel sözdizimini kullanabilirsiniz:
SubIndexMatchMultiple ()
Range(" F3 ").Value = WorksheetFunction.Index(Range(" C2:C10 "), _
WorksheetFunction.Match(Range(" F1 "), Range(" A2:A10 "), 0) + _
WorksheetFunction.Match(Range(" F2 "), Range(" B2:B10 "), 0) - 1)
End Sub
Bu özel örnek, A2:A10 aralığındaki F1 hücresindeki değeri ve B2:B10 aralığındaki F2 hücresindeki değeri arar ve F3 hücresindeki C2:C10 aralığındaki karşılık gelen değeri döndürür.
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: VBA kullanarak birden çok ölçütle INDEX MATCH gerçekleştirme
Basketbolcularla ilgili bilgileri içeren Excel’de aşağıdaki veri kümesine sahip olduğumuzu varsayalım:
F1 hücresindeki takım adıyla ve F2 hücresindeki konumuyla eşleşen oyuncuyu bulmak ve F3 hücresindeki adı döndürmek istediğimizi varsayalım.
Bunun için aşağıdaki makroyu oluşturabiliriz:
SubIndexMatchMultiple ()
Range(" F3 ").Value = WorksheetFunction.Index(Range(" C2:C10 "), _
WorksheetFunction.Match(Range(" F1 "), Range(" A2:A10 "), 0) + _
WorksheetFunction.Match(Range(" F2 "), Range(" B2:B10 "), 0) - 1)
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
Makro, Takım sütununda “Spurs”u ve Pozisyon sütununda “Forvet”i arar ve F3 hücresinde “Eric” adını doğru şekilde döndürür.
F1 ve F2 hücrelerindeki değerleri değiştirip makroyu tekrar çalıştırırsak yeni değerlere göre oyuncu adını bulabilecek.
Örneğin takım adını “Mavs”, pozisyonunu da “Center” olarak değiştirdiğimizi ve makroyu tekrar çalıştırdığımızı varsayalım:
Makro, Takım sütununda “Mavs”i ve Konum sütununda “Merkez”i arar ve F3 hücresinde “Çad” adını doğru şekilde döndürür.
Ek kaynaklar
Aşağıdaki eğitimlerde VBA’da diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
VBA: Dizin eşleştirme nasıl kullanılı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?