VLOOKUP Sözdizimini Eşleşme Modları ve Sınırlarıyla Kullanma

DÜŞEYARA (VLOOKUP), bir tablonun ilk sütununda aradığınız değeri bulup aynı satırdaki başka bir sütundan karşılığını getiren işlevdir. VLOOKUP sözdiziminde dört bağımsız değişken bulunur: aranan değer, tablo dizisi, sütun indis sayısı ve aralık_bak. Son bağımsız değişken YANLIŞ ise tam eşleşme, DOĞRU ise yaklaşık eşleşme yapılır; bu seçim sonucu doğrudan belirler.

DÜŞEYARA sözdizimi ve bağımsız değişkenler​

İşlevin genel yapısı şöyledir:
Excel formülü
=DÜŞEYARA(aranan_değer; tablo_dizisi; sütun_indis_sayısı; [aralık_bak])
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
Bağımsız değişkenler şunlardır:
  • Aranan değer: Aramak istediğiniz değer ya da bu değeri içeren hücre başvurusudur (ör. E2).
  • Tablo dizisi: Aramanın yapılacağı aralıktır (ör. A2:D500). Aranan değer her zaman bu aralığın ilk sütununda aranır.
  • Sütun indis sayısı: Sonucun hangi sütundan döneceğini belirtir. Sayım tablo dizisinin ilk sütunuyla başlar; ilk sütun 1, yanındaki sütun 2 olur.
  • Aralık bak: İsteğe bağlıdır. YANLIŞ (ya da 0) tam eşleşme, DOĞRU (ya da 1) yaklaşık eşleşme anlamına gelir.
Tablo dizisini kopyaladığınız formüllerde kaymaması için mutlak başvuruyla ($A$2:$C$7 gibi) yazın. Aranan değer ise formülün kopyalandığı satıra göre değişeceğinden göreli kalmalıdır.
İşlevin adındaki düşey ifadesi, verinin satırlar halinde alt alta dizildiği tablolar için tasarlandığını gösterir. Sütunlar halinde yatay dizilmiş veriler için YATAYARA (HLOOKUP) kullanılır.

Tam eşleşme ve yaklaşık eşleşme farkı​

Aralık bak bağımsız değişkeni, işlevin davranışını tamamen değiştirir.
  • Tam eşleşme (YANLIŞ): Aranan değerle birebir aynı olan ilk kaydı bulur. Bulamazsa #YOK (#N/A) hatası verir. Kimlik, kod, ad gibi aramaların neredeyse tamamında bu mod gerekir.
  • Yaklaşık eşleşme (DOĞRU): Aranan değerden küçük ya da ona eşit olan en büyük değeri bulur. Bunun doğru çalışması için ilk sütunun küçükten büyüğe sıralı olması gerekir. Aranan değer ilk sütundaki en küçük değerden de küçükse sonuç #YOK hatasıdır.
  • Bağımsız değişkeni boş bırakmak: Aralık bak yazılmazsa işlev DOĞRU kabul eder ve yaklaşık eşleşme yapar. Sıralı olmayan bir listede bu durum yanlış sonuçlar üretir ve çoğu zaman hata mesajı da vermez.
Yaklaşık eşleşme; iskonto dilimleri, vergi ya da prim kademeleri, not aralıkları gibi sayısal aralıklara bağlı değer bulmak için uygundur.
Tam eşleşmede metin aramalarında joker karakterler kullanılabilir: soru işareti tek karakteri, yıldız işareti ise herhangi sayıda karakteri temsil eder. DÜŞEYARA büyük ve küçük harf ayrımı yapmaz; ilk sütunda birden fazla eşleşme varsa yalnızca ilk bulunan kaydı döndürür.

DÜŞEYARA sınırları, hata mesajları ve alternatifleri​

DÜŞEYARA'nın bilinmesi gereken başlıca sınırları şunlardır:
  • Yalnızca sağa bakar: Aranan değer tablo dizisinin ilk sütununda olmalıdır; sonuç yalnızca onun sağındaki sütunlardan alınabilir.
  • Sütun numarası sabittir: Tabloya araya sütun eklerseniz ya da sütun silerseniz sütun indis sayısı kayabilir ve sonuç sessizce yanlış çıkabilir.
  • 255 karakter sınırı: Aranan değer 255 karakterden uzunsa işlev #DEĞER! (#VALUE!) hatası verir.
  • Veri türü uyumu: Sayı olarak saklanan bir kodla metin olarak saklanan aynı kod birbiriyle eşleşmez. Sözcük sonlarındaki gizli boşluklar da eşleşmeyi bozar.
Sık görülen hatalar ve nedenleri:
  • #YOK (#N/A): Aranan değer bulunamadı.
  • #BAŞV! (#REF!): Sütun indis sayısı, tablo dizisindeki sütun sayısından büyük.
  • #DEĞER! (#VALUE!): Sütun indis sayısı 1'den küçük ya da aranan değer çok uzun.
  • #AD? (#NAME?): İşlev adı ya da kullandığınız ad hatalı yazılmış.
Soldaki sütunlardan sonuç almanız gerekiyorsa İNDİS (INDEX) ve KAÇINCI (MATCH) işlevlerini birlikte kullanabilirsiniz. Bu ikili, sütun numarası yerine sütun aralığına başvurduğu için sütun ekleme ve silmeden etkilenmez. Excel 365 ve Excel 2021'de ise ÇAPRAZARA (XLOOKUP) bu sınırların çoğunu ortadan kaldırır.

1. Tam eşleşmeyle ürün kodundan fiyat bulma​

A1:C7 aralığında ürün kodu, ürün adı ve birim fiyat listesi var. E sütununa yazılan koda göre F sütununda fiyat getirilecek. F2 hücresindeki formül şöyledir; F3 ve F4 hücrelerinde de aynı yapı kullanılmıştır ve F4'te hata durumu EĞERHATA (IFERROR) ile karşılanmıştır:
Excel formülü
=DÜŞEYARA(E2;$A$2:$C$7;3;YANLIŞ)
=VLOOKUP(E2,$A$2:$C$7,3,FALSE)
VLOOKUP Sözdizimini Eşleşme Modları ve Sınırlarıyla Kullanma
Formülünü incelemek için bir hücre seçin.
ABCDEF
1Ürün KoduÜrün AdıBirim FiyatAranan KodBirim Fiyat
2K-101Kulaklık450,00K-103275,50
3K-102Klavye820,00K-105960,00
4K-103Fare275,50K-110Kayıt yok
5K-104Monitör4.200,00
6K-105Webcam960,00
7K-106USB Bellek185,00
Ürün FiyatExcelDepo v1.0.0
F2 hücresi K-103 koduna ait birim fiyatı getirir: 275,50. F3 hücresi K-105 için 960,00 sonucunu verir. E4'teki K-110 kodu listede bulunmadığından DÜŞEYARA tek başına #YOK hatası üretirdi; EĞERHATA bu hatayı yakaladığı için F4 hücresinde Kayıt yok metni görünür. Dördüncü bağımsız değişkenin YANLIŞ olması, yalnızca birebir aynı kodun kabul edilmesini sağlar.

2. Yaklaşık eşleşmeyle sipariş adedine göre iskonto bulma​

A1:B6 aralığında sipariş adedi alt sınırları küçükten büyüğe sıralanmış ve her dilime bir iskonto oranı tanımlanmıştır. Her müşterinin sipariş adedi, kendi dilimine karşılık gelen oranı bulmak için yaklaşık eşleşmeyle aranır. F2 hücresindeki formül şöyledir:
Excel formülü
=DÜŞEYARA(E2;$A$2:$B$6;2;DOĞRU)
=VLOOKUP(E2,$A$2:$B$6,2,TRUE)
VLOOKUP Sözdizimini Eşleşme Modları ve Sınırlarıyla Kullanma
Formülünü incelemek için bir hücre seçin.
ABCDEF
1Alt Sınır (Adet)İskonto OranıMüşteriSipariş AdediUygulanan İskonto
210%Yıldız Market80%
3103%Akdeniz Gıda645%
4505%Boğaziçi Kırtasiye1208%
51008%Anadolu Toptan73012%
650012%Ege Ticaret493%
İskonto DilimiExcelDepo v1.0.0
Yaklaşık eşleşmede Excel, sipariş adedinden küçük ya da ona eşit en büyük alt sınırı bulur ve o satırın oranını getirir. Yıldız Market için sonuç %0, Akdeniz Gıda için %5, Boğaziçi Kırtasiye için %8, Anadolu Toptan için %12 olur. Ege Ticaret 49 adet sipariş verdiğinden 50 adetlik dilime ulaşamaz ve %3 oranını alır. Bu yöntemin doğru çalışması için A sütunundaki alt sınırların küçükten büyüğe sıralı kalması şarttır.

3. Soldaki sütunu İNDİS ve KAÇINCI ile getirme​

Personel tablosunda sicil numarası ilk sütunda, ad soyad ise ikinci sütunda yer alıyor. Ad soyada göre sicil numarası bulmak istediğimizde sonuç aranan sütunun solunda kaldığı için DÜŞEYARA kullanılamaz. Bunun yerine F2 hücresinde şu formül kullanılır:
Excel formülü
=İNDİS(A2:A7;KAÇINCI(E2;B2:B7;0))
=INDEX(A2:A7,MATCH(E2,B2:B7,0))
VLOOKUP Sözdizimini Eşleşme Modları ve Sınırlarıyla Kullanma
Formülünü incelemek için bir hücre seçin.
ABCDEF
1Sicil NoAd SoyadDepartmanAranan Ad SoyadSicil No
21001Ayşe DemirMuhasebeElif Arslan1005
31002Mehmet KayaSatışCan Öztürk1004
41003Zeynep Yıldızİnsan KaynaklarıBurak Şahin1006
51004Can ÖztürkSatış
61005Elif ArslanLojistik
71006Burak ŞahinMuhasebe
Personel ListesiExcelDepo v1.0.0
KAÇINCI, aranan adın B2:B7 aralığındaki sırasını bulur; İNDİS ise bu sıraya karşılık gelen sicil numarasını A2:A7 aralığından getirir. Sonuçlar sırasıyla 1005, 1004 ve 1006 olur. KAÇINCI içindeki son bağımsız değişken 0 olduğundan tam eşleşme yapılır. Sütun numarası kullanılmadığı için tabloya sütun eklemek formülü bozmaz.

Sık sorulan sorular​

  • DÜŞEYARA neden #YOK hatası verir? Aranan değer ilk sütunda bulunamıyordur. Yazım farkına, fazladan boşluğa ya da sayı ile metin uyuşmazlığına bakın; yaklaşık eşleşmede ise listenin sıralı olup olmadığını kontrol edin.
  • Aralık bak bağımsız değişkenini yazmazsam ne olur? Excel yaklaşık eşleşmeyi varsayar. Tam eşleşme istiyorsanız dördüncü bağımsız değişkene YANLIŞ yazın.
  • Birden fazla eşleşme varsa hangisi gelir? Tam eşleşmede ilk bulunan kayıt döner. Sonraki eşleşmeleri almak için farklı bir yöntem gerekir.
  • DÜŞEYARA tablonun solundaki sütunu getirebilir mi? Hayır. Bunun için İNDİS ve KAÇINCI işlevlerini ya da Excel 365'te ÇAPRAZARA'yı kullanın.

Kullanırken dikkat edin​

  • Sıralamayı unutmayın: Aralık bak bağımsız değişkenini boş bırakırsanız ya da DOĞRU yazarsanız ilk sütunun küçükten büyüğe sıralı olması gerekir. Sıralı olmayan listelerde Excel hata vermeden yanlış değer döndürebilir.
  • Tam eşleşme için YANLIŞ yazın: Kod, ad ve kimlik aramalarında dördüncü bağımsız değişkeni mutlaka YANLIŞ (ya da 0) olarak yazın. Bu bağımsız değişkeni atlamak, en sık yapılan DÜŞEYARA hatalarından biridir.
  • Sütun indis sayısını doğru sayın: Sütun sayımı sayfadaki sütun harfine göre değil, tablo dizisinin ilk sütunundan başlayarak yapılır. Tablo dizisinin sütun sayısından büyük bir sayı #BAŞV! hatası verir.
  • Veri türünü ve boşlukları kontrol edin: Sayı gibi görünen ama metin olarak saklanan kodlar eşleşmez. Metinlerin başındaki ya da sonundaki fazladan boşluklar da #YOK hatasına yol açar; gerekirse KIRP işleviyle temizleyin.
  • Büyük tablolarda aralığı sınırlayın: Tüm sütunu seçmek (A:D gibi) kolaylık sağlar, ancak çok büyük dosyalarda hesaplamayı yavaşlatabilir. Veri aralığını Excel tablosu ya da Formüller > Tanımlı Adlar > Ad Yöneticisi (Formulas > Defined Names > Name Manager) ile tanımlanmış bir adla belirlemek, aralığın veriyle birlikte büyümesini sağlar.
  • İlgili konular: YATAYARA, İNDİS, KAÇINCI, ÇAPRAZARA, EĞERHATA, KIRP; #YOK, #BAŞV!, #DEĞER! ve #AD? hatalarının nedenleri ile joker karakterlerle arama.
Örneklerdeki tabloları indirilebilir Excel dosyasında kendiniz de deneyebilirsiniz.
 

Ekli dosyalar

Son düzenleme:

Okuma Rehberi - Makale

Seviye
Başlangıç
Okuma süresi
2 dk okuma
Geri
Üst