VBA Application.Match - Örneklerle Adım Adım Kılavuz

Excel VBA Uygulaması Maç

VBA ile ilgili en iyi şeylerden biri kendi işlevine sahip olması ve ayrıca "Çalışma Sayfası İşlevi" sınıfı altındaki tüm çalışma sayfası işlevlerine erişmemize izin vermesidir. MATCH işlevini bir çalışma sayfası işlevi olarak zaten kullanmış olmalısınız, ancak bu bir VBA işlevi değildir, bu nedenle çalışma sayfası işlev sınıfına erişmemiz gerekir. Bu yazıda, MATCH işlevini VBA'da Uygulama yöntemini kullanarak nasıl kullanacağınızı göstereceğiz.

MATCH İşlevinin Hızlı Özeti

KAÇINCI, belirtilen arama dizisindeki arama değerinin konumunu arayan bir arama işlevidir. Örneğin, verilerin aşağıdaki resmine bakın.

Yukarıdaki verilerde, A2'den A6'ya kadar aylarımız var ve "Mart" ayının hangi yerde gerçekleştiğini bilmek istiyorsak, MATCH işlevini kullanabiliriz.

MATCH işlevinin söz dizimi aşağıdadır.

MATCH (Arama Değeri, Arama Dizisi, (Eşleme Türü))
  • Arama Değeri: Arama dizisindeki konumu hangi değer için arıyoruz .
  • Arama Dizisi: Arama değerinin konumunu hangi dizide arıyoruz .
  • (Match Type): Bunun için üç argüman sağlayabiliriz.
  1. 1 = Daha Az
  2. 0 = Tam Eşleşme
  3. -1 = Büyüktür

Çoğu zaman sadece “0 Tam Eşleşme” kullanırız.

VBA'da Application.Match İşlevi Nasıl Kullanılır?

Örnek 1

Excel'de aşağıdaki verilere bakın.

Yukarıdaki verilerden, A2'den A6'ya kadar olan hücreler aralığında "Mart" ayının konumunu bulmamız gerekiyor. D2 hücrelerinde sonuçlara ihtiyacımız olduğundan, kodu hemen Aralık ("D2") olarak başlatın Değer =.

D2 hücresinde değer elde etmek için MATCH çalışma sayfası işlevini kullanmamız gerekir, bu nedenle buna erişmek için önce APPLICATION nesnesine ve ardından WORKSHEET FUNCTION nesnesine erişmemiz gerekir.

Çalışma sayfası işlevlerinin listesini görmek için nokta girin.

Listeden "Eşleştir" i seçin.

Çalışma sayfası işlevlerini kullanırken VBA'daki sorunlardan biri, çalışma sayfası işlevinde gördüğümüz gibi tam sözdizimi görmememizdir. Sözdizimini yalnızca başlangıçta açıklamamızın nedenlerinden biri budur.

Dolayısıyla, ilk argüman arama değeridir, yani hangi değer için yeri bulmaya çalışıyoruz. Bu durumda, C2 hücresindeki "Mar" ın yerini bulmaya çalışıyoruz, bu nedenle hücre referansını sağlayın.

Sonraki argüman arama dizisidir, yani A2'den A6'ya kadar olan bu tedarik hücreleri için bir arama değerinin konumunu hangi aralıkta arıyoruz .

Son argüman tam bir eşleşme olacaktır, bu nedenle 0 sağlayın.

Kod:

Alt Match_Example1 () Aralık ("D2"). Değer = Application.WorksheetFunction.Match (Aralık ("C2"). Değer, Aralık ("A2: A6"), 0) Son Alt

Tamam, formülle işimiz bitti.

Kodu F5 tuşuyla çalıştırın ve ne aldığımızı görün.

Biz 3 olarak sonuç elde ettim değeri nedeniyle “Mar” 3 yerinde olduğundan rd A6 aralığında A2 pozisyonunda.

Bu KAÇINCI işlevi, arama değerinin konumunu sağlayabilir. Bununla birlikte, KAÇINCI işlevi, sütun başlığına dayalı olarak sütun dizin numarasını sağlamak için VLOOKUP işleviyle büyük ölçüde kullanılır.

Örnek 2

Şimdi DÜŞEYARA işlevi için MATCH'ı destekleyici bir işlev olarak nasıl kullanacağımızı göreceğiz.

Aşağıdaki verilere bakın.

Yukarıdaki tabloda, 2018 yılı "Şubat" ayı satışlarına bakıyoruz, bu nedenle DÜŞEYARA işlevini kullanmamız gerekiyor. DÜŞEYARA aynı zamanda bir çalışma sayfası işlevidir, bu nedenle buna MATCH işlevine nasıl eriştiğimiz gibi erişin.

Arama Değeri G2 hücresi olacaktır, bu nedenle hücre adresini sağlayın.

Kod:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, End Sub

Table Array will be from A2 to D6.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value,Range("A2:D6"), End Sub

Now we need to provide from which column of the table array we are looking for the result, so this will be from the 3rd column. Instead of supplying the column number as 3, let’s use the MATCH function.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, Range("A2:D6"), Application.WorksheetFunction.Match(Range("H1").Value, Range("A1:D1"), 0), 0) End Sub

Öyleyse KAÇINCI işlevi, "Şubat" ayı için A1'den D1'e kadar olan sütun numarasını sağlar. Kodu çalıştıralım ve sütun numaralarını otomatik olarak nasıl aldığını görelim.

İşte MATCH fonksiyonundan otomatik sütun numarası sağlama sayesinde 2. sütundan bir sonuç elde ediyoruz.

Hatırlanacak şeyler

  • MATCH işlevi, seçilen dizi tablosundaki arama değerinin konumunu arar.
  • KAÇINCI işlevi, sütun başlığını kullanarak sütun dizin numarasını otomatik olarak sağlamak için DÜŞEYARA işleviyle birlikte kullanılır.
  • MATCH işlevi, VBA'da bir çalışma sayfası işlevi olarak mevcuttur.

Ilginç makaleler...