EXCEL VBA APPLİCATİON.MATCH FONKSİYONU

 



Excel VBA Application.Match nedir?

VBA Application.Match, lookup dizisinde belirtilen öğenin satırlarda, sütunlarda veya tablolardaki konumunu bulan bir lookup fonksiyonudur.

Diyelim ki bir Excel sayfası sütununda Olive, Henry, Edward, Isabelle ve Sophia adlarıyla bazı verilerimiz var. Adlar A2-A6 hücrelerinde ve notları sırasıyla B2-B6 hücrelerinde. Diyelim ki Isabelle'in notlarının B2-B6 aralığındaki konumunu bulmak istiyoruz, VBA Application.Match için kod aşağıda gösterilmiştir:

Sub VBA_Match_Ex()
Range(“D1”).Value = WorksheetFunction.Match(Range(“B5”).Value, Range(“B2:B6”), 0)
End Sub

VBA Application.Match Intro - Code

VBA kodunu çalıştırdığınızda, D1 hücresinde Isabelle'in işaretlerinin tam konumunu gösteren 4 konumunu göreceksiniz. Burada, hücre aralığımız B2'den başladığı için 5 değil 4 alırız.

VBA Application.Match Intro - Result
MATCH Fonksiyonunun Hızlı Özeti
Excel'de MATCH işlevi zaten mevcuttur ve kullanıcıların bir arama dizisinde istenen öğenin (Arama) konumunu bulmasına olanak tanır. Ardından, aranan öğenin konumunu kullanıcıya döndürür.

VBA'da Match fonksiyonunun sözdizimi:

MATCH(Arg1,Arg2,[Arg3])

Arg1= Arama değeri. Dizide bulmanız gereken değer.
Arg2 = Arama dizisi. İstenen arama değerini bulmanız gereken dizi aralığı.
Arg3 = Eşleşme türü. Eşleşme türü -1, 0 veya 1 değerlerini içerir.
Burada,

-1 tam veya bir sonraki en küçük eşleşmeyi ifade eder.
0 tam eşleşmeyi temsil eder
1 size tam veya sonraki en büyük değer eşleşmesini verir.
Excel'de Match işlevinin sözdizimi:

MATCH, Excel'de de VBA Match ile aynı tür argümanlarla benzer bir sözdizimine sahiptir.

=MATCH (Arama Değeri, Arama Dizisi, [Eşleşme Türü])


VBA'da Application.Match Fonksiyonu Nasıl Kullanılır?

Application.Match fonksiyonunun VBA'da kullanımını birkaç örnekle öğrenelim.

Örnek #1

VBA Uygulaması. For döngüsünü kullanarak Eşleştirme işlevi

Girişte kullanılan örneği ele alalım. Buna birkaç öğrencinin daha notlarını ekledik. B Sütununda I. Dönemdeki toplam notları var ve Isabelle, Jenner ve William adlı üç öğrencinin notlarının yerini bulmalıyız. Burada Application.Match fonksiyonu amacımıza hizmet edecektir. Sadece aşağıdaki adımları izleyin:

Adım 1: Veriler Excel dosyasında şu şekilde mevcuttur. Sütun C, pozisyonlarını aradığımız üç öğrencinin arama değerlerini (toplam notlarını) gösterir.

Örnek 1 - Adım 1

Adım 2: Aşağıdaki kodu VBA Editörüne yazın.

Kod:

Sub VBA_Match_Ex1()
Dim x As Integer
x = 1 ila 3
Cells(x, 4).Value = Application.Match(Cells(x, 3).Value, Range(“B2:B10”), 0)
Next x
End Sub

Açıklama:

  1. VBA_Match_Ex1() alt prosedüründe, x değişkeni ilk satırda bir tamsayı olarak tanımlanır.
  2. Daha sonra, birden fazla arama değeri için For VBA döngüsünü kullanırız .
  3. Cells(x, 4).Value, üçüncü sütundaki karşılık gelen değerler için sonucun dördüncü sütunda yazdırılmasını sağlar. Match fonksiyonunu kullanarak, üçüncü sütundaki arama değerlerini kontrol eder.
  4. Son olarak, B2:B10 hücre aralığında bunları aradıktan sonra, bu arama değerleriyle eşleşir ve bunların karşılık gelen konumlarını yazdırır.
VBA Uygulaması. Eşleşme Örneği 1 - Adım 1 - code.jpg

Adım 3: VBA şeridindeki Çalıştır düğmesine tıklayarak veya F5 ile kodu çalıştırın. Aradığınız değerlerin tam konumlarını görebilirsiniz.

VBA Uygulaması. Eşleşme Örneği 1 - Adım 3

Örnek 2

Bu örnekte, Match fonksiyonunun VLOOKUP fonksiyonuyla kullanımını göreceğiz . Burada, bu fonksiyonu anlamak amacıyla farklı alışveriş sitelerinin gönderilerine ait bazı hayali verileri aldık.

Adım 1: Gerekli verileri bir Excel çalışma sayfasına yazın. Burada, alışveriş sitesi Target'ın gönderilerini bulmalıyız. Bu nedenle, Match işlevine çok benzeyen VLOOKUP işlevini kullanacağız.

Örnek 2 - Adım 1

Buradaki değer E2 hücresindedir.

VBA Uygulaması. Eşleşme Örneği 2 - Adım 1 - E2

Adım 2: Aşağıdaki kodu VBA Editörüne yazın.

Kod:

Sub Match_Ex2()
Range(“F2”).Value = Application.WorksheetFunction.VLookup(Range(“E2”).Value, Range(“A2:C7”), Application.WorksheetFunction.Match(Range(“F1”).Value, Range(“A1:C1”), 0), 0)

End Sub

Açıklama:

  1. Range(“F2”).Value – Sonucu görmek istediğimiz hücre.
  2. Application.WorksheetFunction.VLookup(Range(“E2”).Value – Burada, VLOOKUP fonksiyonu, A2 ila C7 hücreleri içinde E2 hücresine karşılık gelen değeri bulmak için atanmıştır.
  3. Application.WorksheetFunction.Match(Range(“F1”).Value, Range(“A1:C1”), 0), 0) – Match fonksiyonu burada A1 ile C7 hücreleri arasında F1(Day2 Shipments) hücresinde belirtilen başlığın karşılık gelen değerini bulmak için atanmıştır.

Adım 3 : Kodu çalıştırın, F2 hücresinde Hedef'in 2. Gün sevkiyatlarının değerini göreceksiniz.

VBA Uygulaması. Eşleşme Örneği 2 - Adım 3

 Boş bir Excel sayfamız olduğunu varsayalım. Application.Match'te hata işlemeyi anlamak için aşağıda verilen koda bakın:

Sub MismatchErrorHandling()
MatchRow = Application.Match(“test”, Columns(1), 0)
If IsError(MatchRow) Then
MsgBox “No Match”
Else
MsgBox “Match row is” & MatchRow
End If
End Sub

Burada Sütun 1'de ve ona karşılık gelen konumda bir "test" değerinin olup olmadığını bulmaya çalışıyoruz. Değer yoksa, hatayı işlemek için IF döngüsünü kullanırız.

Hata - kod
  • Kodu çalıştırın, Excel sayfası boş olduğundan mesaj kutusunda "Eşleşme yok" mesajını alacaksınız.
VBA Uygulaması.Match Hatası - Çıktı

Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...