
Excel VBA ile YATAYARA İşlevi
Excel VBA ile YATAYARA (HLOOKUP) fonksiyonu, yatay olarak dizilmiş verilere dayalı arama yapmanıza olanak tanır. VBA'da YATAYARA, yerleşik YATAYARA formülü ile aynı mantıkla çalışır. Ancak VBA kullanmak bu işlemi daha hızlı ve otomatik hale getirecektir. Bu yazıda, VBA ile YATAYARA fonksiyonunun nasıl kullanıldığını öğrenebilirsiniz.
1. YATAYARA (HLOOKUP) Fonksiyonu Nedir?
YATAYARA (HLOOKUP) fonksiyonu, belirli bir değeri aramak için kullanılabilir ve bu değerin bulunduğu satırda yer alan başka bir veriyi döndüren bir fonksiyondur. Excel'deki standart kullanımda bu fonksiyon, yatay dizilmiş verilerde arama yapar.
2. VBA ile YATAYARA (HLOOKUP) Makrosu Nasıl Yazılır?
Kodu yazmak için öncelikli olarak üst menüden geliştirici sekmesinin aktif olduğundan emin olunuz. Eğer değilse, İlk olarak, Excel’de Geliştirici sekmesini etkinleştirmek için "Dosya" > "Seçenekler" > "Şeridi Özelleştir" menüsünden "Geliştirici"yi işaretleyin. Detaylı bilgi için linke tıklayabilirsiniz. Ardından, "Geliştirici" sekmesinden "Visual Basic" butonuna tıklayarak VBA Düzenleyicisini açabilir ve "Ekle" > "Modül" ile yeni bir modül ekleyebilirsiniz. Daha fazla bilgi için linke tıklayabilirsiniz.
Bu adımlar tamamlandıktan sonra, aşağıdaki VBA kodu örneği ile YATAYARA fonksiyonu kullanarak veri araması yapabilirsiniz:
Sub HLOOKUP_VBA_Ornegi()
Dim aramaDegeri As String
Dim tabloAraligi As Range
Dim sonuc As Variant
' Arama değerini al
aramaDegeri = "Ürün A"
' Veri tablosu aralığını belirt
Set tabloAraligi = Range("A1:F2")
' YATAYARA fonksiyonunu kullanarak arama yap
sonuc = Application.WorksheetFunction.HLookup(aramaDegeri, tabloAraligi, 2, False)
' Sonucu ekrana yazdır
If Not IsError(sonuc) Then
MsgBox "Aradığınız ürünün fiyatı: " & sonuc
Else
MsgBox "Ürün bulunamadı!"
End If
End Sub
3. YATAYARA Fonksiyonunun Parametreleri
- aramaDegeri: Aradığınız değeri belirtir.
- tabloAraligi: Veri araması yapacağınız hücre aralığını belirtir.
- satirNumarasi: Döndürülecek verinin bulunduğu satır numarasını belirtir.
- yaklaşıkEşleşme: Tam eşleşme mi yoksa yaklaşık eşleşme mi yapılacağını belirtir.
Kodun Açıklanması
Yukarıdaki VBA kodunu adım adım açıklayalım:- Makronun Başlangıcı:
Sub HLOOKUP_VBA_Ornegi()
komutu, VBA makrosunun başlangıcını belirtir. Bu komut, makronun çalışacağı başlangıç noktasını işaret eder. - Değişken Tanımlamaları:
Dim aramaDegeri As String
ile, arama yapılacak değeri tutacak bir değişken tanımlanır. Bu örnekte "Ürün A" olarak belirlenmiştir.Dim tabloAraligi As Range
ile, aramanın yapılacağı hücre aralığını tutacak bir değişken tanımlanır. Bu değişken, veri tablosunun bulunduğu alanı belirler.Dim sonuc As Variant
ile, YATAYARA fonksiyonundan dönecek sonucu tutacak bir değişken tanımlanır. Bu değişken, bulunan değeri saklar.
- Arama Değerini Belirleme:
aramaDegeri = "Ürün A"
komutu, arama yapılacak değeri belirtir. Bu örnekte, "Ürün A" değeri aranacaktır. - Tablo Aralığının Belirlenmesi:
Set tabloAraligi = Range("A1:F2")
komutu, arama yapılacak veri tablosunun aralığını belirtir. Burada, A1:F2 hücre aralığı veri tablosu olarak seçilmiştir. Bu aralıkta arama yapılacaktır. - YATAYARA Fonksiyonunun Kullanımı:
sonuc = Application.WorksheetFunction.HLookup(aramaDegeri, tabloAraligi, 2, False)
komutu, YATAYARA fonksiyonunu kullanarak arama yapar. Bu fonksiyon şu şekilde çalışır:- aramaDegeri: Aranacak değer (bu örnekte "Ürün A").
- tabloAraligi: Aramanın yapılacağı veri aralığı (A1:F2).
- 2: Döndürülecek sonucun hangi satırdan alınacağı (2. satırdan). Bu durumda "Ürün A"nın bulunduğu satırdaki 2. satırdaki veri (fiyat gibi) alınacaktır.
- False: Tam eşleşme yapılması gerektiğini belirtir. Yani, yalnızca "Ürün A" ile tam olarak eşleşen bir değer aranacaktır.
- Sonucun Kontrolü ve Mesaj Kutusu:
If Not IsError(sonuc) Then
komutu, YATAYARA fonksiyonunun başarılı bir sonuç döndürüp döndürmediğini kontrol eder. Eğer sonuç geçerliyse, devam eden komut çalışır.MsgBox "Aradığınız ürünün fiyatı: " & sonuc
komutu, bulunan sonucu kullanıcıya bir mesaj kutusunda gösterir. "Aradığınız ürünün fiyatı" ifadesiyle beraber, bulunan değer ekrana yazdırılır.Else
komutu, eğer sonuç hata dönerse (yani ürün bulunamazsa), alternatif mesaj kutusunu gösterir:MsgBox "Ürün bulunamadı!"
.
- Makro Sonu:
End Sub
komutu, VBA makrosunun sonlandığını belirtir. Bu komut, makro işlemine son verir.
4. Dikkat Edilmesi Gerekenler
5. Ekstra İpucu
Sonuç
Excel VBA ile YATAYARA fonksiyonunu kullanmak, veri aramalarını hızlı ve etkili bir şekilde yapmanızı sağlar. Bu yöntemi kullanarak veri analizi ve raporlama işlemlerinizi daha verimli hale getirebilirsiniz.
Yorumlar