Kurs
On yıllar boyunca, VLOOKUP() Excel'in veri arama için başvurduğu işlev oldu. Güvenilir bir araçtır ancak sınırlamaları vardır. Bu nedenle 2019'da gelişmiş yeteneklere sahip yeni bir işlev olan XLOOKUP() tanıtıldı. Bu makalede, özelliklerini ve farklı kullanım alanlarını daha iyi anlamak için VLOOKUP() ile XLOOKUP()'u karşılaştıracağız.
Unutmayın, VLOOKUP()'tan XLOOKUP()'a geçiş Excel güncellemelerinden sadece biridir. Excel'in gelişen işlevleriyle güncel kalmak, üretkenliği en üst düzeye çıkarmak için önemlidir. En son özellikleri kullandığınızdan emin olmak için Excel Fundamentals beceri yolumuza göz atın.
XLOOKUP() ve VLOOKUP() Sözdizimi
Artık her iki işlevi de temel düzeyde anladığınıza göre, sözdizimlerini ve gerçek hayattaki uygulamalarda nasıl kullanılacaklarını inceleyelim.
VLOOKUP() sözdizimi
VLOOKUP() sözdizimine göz atalım.
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
Yukarıdaki formülde:
-
lookup_value, aramak istediğiniz değerdir. Bu bir sayı, metin veya arama değerini içeren bir hücreye başvuru olabilir. -
table_array, verileri içeren hücre aralığıdır. Bu aralıktaki ilk sütunsearch_keyiçermelidir. -
col_index_num, değeri almak istediğiniz aralıktaki sütun numarasıdır. -
range_lookup, mantıksal bir değeri (TRUEveyaFALSE) girdiğiniz yerdir.
XLOOKUP() sözdizimi
Şimdi de xlookup() sözdizimine bakalım. Görüldüğü gibi, XLOOKUP()'ın VLOOKUP()'tan daha fazla bağımsız değişkeni vardır.
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
Yukarıdaki formülde:
-
lookup_value, aramak istediğiniz değerdir. -
lookup_array, arama değerinin arandığı hücre aralığıdır. -
return_array, döndürmek istediğiniz değeri içeren hücre aralığıdır. -
if_not_found(isteğe bağlı), eşleşme bulunamazsa bir değer döndürür. Değer belirtilmezse#N/Adöndürür. -
match_mode(isteğe bağlı), yapılacak eşleşme türünü belirler.0tam eşleşme içindir (varsayılan).-1tam eşleşme veya bir sonraki küçük öğe içindir.1tam eşleşme veya bir sonraki büyük öğe içindir.2joker karakter eşleşmesi içindir. -
search_mode(isteğe bağlı), kullanılacak arama modunu belirler.1ilkten son olana doğru arama için kullanılır (varsayılan).-1sondan başa doğru arama için kullanılır.2artan düzende ikili arama yapmak için kullanılır.-2azalan düzende ikili arama yapmak için kullanılır.
Temel Farklar: XLOOKUP() ve VLOOKUP()
Şimdi XLOOKUP() ve VLOOKUP() işlevleri arasındaki bazı temel farkları inceleyelim.
Tam eşleşme modu
XLOOKUP() varsayılan olarak tam eşleşme modunda çalışır, ancak VLOOKUP() için tam eşleşme adına FALSE belirtilmesi gerekir.

XLOOKUP() ve VLOOKUP() arasında tam eşleşme farkı. Kaynak: Yazarın görseli.
VLOOKUP()'ta range_lookup değerini (4. bağımsız değişken) belirtmedim, bu yüzden en yakın eşleşmeyi verdi; bu da istediğimiz sonuç değil. Buna karşılık XLOOKUP() varsayılan olarak tam eşleşmeyi döndürür.
Arama yönü
VLOOKUP(), seçilen tablo dizisindeki ilk sütunun yalnızca sağ tarafında arama yapmakla sınırlıdır. Ancak XLOOKUP() değerleri her yönde arayabilir.

VLOOKUP() ve XLOOKUP() arasında arama yönü farkı. Kaynak: Yazarın görseli.
Burada VLOOKUP() notları bulamadı çünkü yalnızca lookup_value'ın (öğrenci adı) sağındaki verileri arayabilir. Buna karşılık, XLOOKUP() her iki yönde (sol veya sağ) arama yapabildiği için Robin'in notlarını bulur.
Dizi başvuruları
VLOOKUP()'ta, tüm veri aralığını (tablo dizisi) tanımlamanız ve istenen çıktıyı (döndürülecek sütun) içeren sütun numarasını (sütun indeksi) tek bir formül içinde belirtmeniz gerekir. XLOOKUP() bundan daha esnektir. Arama değeri ve döndürmek istediğiniz veri için ayrı diziler tanımlamanıza olanak tanır.

VLOOKUP() ve XLOOKUP() arasında dizi başvuruları. Kaynak: Yazarın görseli.
Yatay arama
VLOOKUP() yatay arama yapmanıza izin vermez. Yatay arama istiyorsanız bunun yerine HLOOKUP() kullanmanız gerekir. XLOOKUP() bu iki işlevi birleştirir çünkü hem dikey hem de yatay arama yapar; böylece farklı arama yönleri için ayrı işlevler kullanmanıza gerek kalmaz.

VLOOKUP() ve XLOOKUP() arasında yatay arama farkı. Kaynak: Yazarın görseli.
Sütun ekleme/silme işlemlerini ele alma
Sabit kodlanmış column_index_num nedeniyle sütun değişiklikleri VLOOKUP()'u etkiler. Ancak XLOOKUP() sütun değişikliklerinden etkilenmez. Formülde ayarlama yapmadan çalışmaya devam eder.

XLOOKUP() etkilenmezken, VLOOKUP() başarısız olur. Kaynak: Yazarın görseli.
Sıralama ve arama
VLOOKUP()'u artan düzende sıralayabilirsiniz ancak bu, sıralanmamış verilerle çalışırken zorluk yaratır. Buna karşılık XLOOKUP(), hem artan hem de azalan düzende arama yapmak için search_mode bağımsız değişkenini kullanabilir.

XLOOKUP() ve VLOOKUP()’ta ekleme/silme işlemlerini ele alma. Kaynak: Yazarın görseli.
Özel hata mesajları
VLOOKUP() eşleşme bulunamadığında #N/A hatası gösterir. XLOOKUP() ise, bir değer bulunamadığında çıktı metnini özelleştirmenizi sağlayan isteğe bağlı if_not_found parametresine sahiptir.

XLOOKUP() ve VLOOKUP()’ta hata mesajlarını özelleştirme. Kaynak: Yazarın görseli.
Gördüğünüz gibi VLOOKUP() öğrenciyi listesinde bulamadı ve #N/A hatası gösterdi. Benzer şekilde XLOOKUP() da öğrencinin adını bulamadı. Ancak VLOOKUP()'ın aksine, XLOOKUP() eşleşme olmadığında belirli bir mesaj döndürür.
Birden fazla değer döndürme
VLOOKUP() bir seferde yalnızca tek bir değer döndürebilir. Ancak XLOOKUP() aynı anda birden çok sütundan değerler getirebilir. Bu nedenle, birden fazla VLOOKUP() formülü yerine tek bir XLOOKUP() formülü kullanabilirsiniz.

XLOOKUP() ve VLOOKUP() ile birden fazla değer döndürme. Kaynak: Yazarın görseli.
Arama modu
VLOOKUP() bir listeyi baştan tarar ve yalnızca istediğinizle eşleşen ilk değeri döndürür. Ancak XLOOKUP() bir listeyi her iki yönde de (yukarıdan aşağıya veya aşağıdan yukarıya) tarayabilir ve kapsamlı listelerde hızlıca sonuç bulabilir.

VLOOKUP() ve XLOOKUP() arasındaki fark. Kaynak: Yazarın görseli.
Burada VLOOKUP() ilk gerçekleşen değeri, yani birinci dönemden olanı getiriyor. Ancak XLOOKUP() ile arama modu kodu -1'i kullanarak aşağıdan yukarıya arama yapıyorum.
Pratik Örnekler ve Kullanım Alanları
Şimdi bazı pratik örnekler ve kullanım alanlarına bakalım.
Bir tabloyu yeniden düzenlemek zorunda kalmadan arama kullanma
Öğrencilerin adları ve puanlarının olduğu bir listem var ve her öğrencinin adını temel alarak puanını bulmak istiyorum. Bu amaçla, aralarındaki farkları göstermek için hem XLOOKUP() hem de VLOOKUP() işlevlerini kullanacağım.
XLOOKUP() kullanırken şu formülü giriyorum:
=XLOOKUP(D8,B2:B5,A2:A5)
Bu formülde:
-
D8, arama değerini içerir; bu değer Charlie'dir. -
B2:B5aralığı öğrenci adlarını içerir.XLOOKUP()işlevi D8'deki değeri bu aralıkta arayacaktır. -
A2:A5, öğrenci adlarına karşılık gelen puanları içeren aralıktır.
VLOOKUP() kullanırken ise şu formülü giriyorum:
=VLOOKUP(D4,A1:B5,1,0)
Bu formülde:
-
D4, arama değerini içerir; bu değer Charlie'dir. -
A1:B5aralığı tüm sütunlarda (Scores, Student Name) arama yapar. -
1, aralığın 1. sütunundan (Scores) değeri döndürür. -
0tam eşleşmeyi getirir.

VLOOKUP() #N/A hatası döndürür ancak XLOOKUP() durumu yönetir. Kaynak: Yazarın görseli.
Gördüğünüz gibi, VLOOKUP() sola arama yapamadığı için #N/A hatası gösteriyor.
Bir değer bulunamadığında özel bir çıktı oluşturma
Öğrencilerin kimlikleri, adları ve notlarının yer aldığı bir listem var. Arama yaparken yanlışlıkla listede olmayan bir öğrenci kimliği girdim. Böyle bir durumu ele almak için, öğrenci kimliği bulunamadığında özel bir mesaj görünmesini istiyorum. Aralarındaki farkları göstermek için hem XLOOKUP() hem de VLOOKUP() işlevlerini kullanacağım.
XLOOKUP() kullanırken şu formülü giriyorum:
(=XLOOKUP(E9, A2:A5, B2:B5, "Student not Found"))
Bu formülde:
-
E9, aramak istediğimiz değeri içerir. Benim durumumda 14256'dır. -
A2:A5, arama değerini (Student ID) içeren hücre aralığıdır. -
B2:B5, ID 14526 için puanı arar. -
Student not Foundlistede puan yoksa görüntülenir.
VLOOKUP() kullanırken ise şu formülü giriyorum:
(=VLOOKUP(E6, A2:C5,2,0))
Bu formülde:
-
E6Student ID'ye karşılık gelir; aradığım değer budur. -
A2:C5, tablodaki tüm verileri içeren aralığı ifade eder. -
2, verinin alınacağı sütun numarasını belirtir. -
0tam eşleşmeyi getirir.

XLOOKUP() bir mesaj döndürür, VLOOKUP() döndürmez. Kaynak: Yazarın görseli.
Gördüğünüz gibi 14256 A2:A5 aralığında yok, bu nedenle XLOOKUP() özel mesaj olan Student not found döner. Öte yandan VLOOKUP() #N/A hatası verir.
Aşağıdan yukarıya arama yapmak
Sarah'ın en güncel yıldaki maaşını bulmak istiyorum. Bu amaçla, aralarındaki farkları göstermek için hem XLOOKUP() hem de VLOOKUP() işlevlerini kullanacağım.
XLOOKUP() kullanırken şu formülü giriyorum:
=XLOOKUP(F8,B2:B10,C2:C10,,,-1)
Bu formülde:
-
F8arama değerini, yani Sarah'ı içerir. -
B2:B10aralıkta bakar ve Sarah'ı arar. -
C2:C10veriyi getirir. -
-1sütunun en altından yukarıya doğru arama yapar.
VLOOKUP() kullanırken ise şu formülü giriyorum:
=VLOOKUP(F4, B2:C10,2,0)
Bu formülde:
-
F4arama değerini, Sarah'ı içerir. -
B2:C10arama değerini bu aralıkta arar. -
2, verinin alınacağı Salary sütununu belirtir. -
0tam eşleşmeyi getirir.

Arama modunda VLOOKUP() ve XLOOKUP() arasındaki fark. Kaynak: Yazarın görseli.
Gördüğünüz gibi XLOOKUP() istenen yıl için istenen maaşı buluyor, oysa VLOOKUP() yalnızca ilk eşleşen değeri gösteriyor. Bunu, XLOOKUP()'ın aşağıdan yukarıya arama yapmama izin vermesi sayesinde yapabildim.
Performans ve Uyumluluk
Şimdi her iki işlevin performans ve uyumluluğunu karşılaştıralım.
Büyük veri kümelerinde performans
VLOOKUP(), özellikle arama sütunu sıralanmamışsa ve aralık araması bağımsız değişkeni tam eşleşme için FALSE olarak ayarlanmışsa, büyük veri kümeleriyle çalışırken daha yavaş olabilir. Bunun nedeni VLOOKUP()'ın eşleşme bulana kadar veri kümesini sırasıyla taraması ve bunun büyük tablolar için zaman alabilmesidir. XLOOKUP(), büyük veri kümelerinde daha iyi performans sunar. Tam eşleşmeleri daha verimli şekilde ele alır ve sıralama yapmadan hem yatay hem dikey arama yapabilir.
Excel'in farklı sürümleriyle uyumluluk
Şimdi, XLOOKUP()'ın avantajlarını gördükten sonra VLOOKUP()'ı bırakmayı düşünüyor olabilirsiniz. Ancak şunu netleştireyim—XLOOKUP() çok daha hızlı ve harika bir özelliktir, fakat bazı durumlarda kullanılamaz. Bunun nedeni, XLOOKUP()'ın yalnızca Excel 2021 ve Microsoft 365'te (2019'dan itibaren) çalışan daha yeni bir özellik olmasıdır. Excel'in daha eski sürümlerini kullanan kişilerle çalışıyorsanız, XLOOKUP() yerine VLOOKUP() ve diğer işlevleri kullanmanız gerekecektir.
Özet tablo
Kolay başvuru için bir özet tablo oluşturalım.
| Özellik | VLOOKUP() | XLOOKUP() |
|---|---|---|
| Varsayılan Eşleşme Modu | Tam eşleşme için FALSE belirtilmesi gerekir. |
Varsayılan olarak tam eşleşme yapar. |
| Arama Yönü | Yalnızca arama sütununun sağında arama yapar. | Her yönde arama yapabilir (sol, sağ, üst, alt). |
| Dizi Başvuruları | Tüm veri aralığı ve sütun indeksinin tek bir formülde tanımlanmasını gerektirir. | Arama değeri ve dönüş değerleri için ayrı dizilere izin verir. |
| Yatay Arama | Yatay aramayı desteklemez (HLOOKUP() gerekir). |
Hem dikey hem yatay aramayı destekler. |
| Sütun Değişikliklerini Ele Alma | Sabit sütun indeksleri nedeniyle sütun ekleme/silmeden etkilenir. | Sütun değişikliklerinden etkilenmez, ayar gerektirmeden çalışmaya devam eder. |
| Sıralama ve Arama | Artan düzenle sıralama ile sınırlıdır. | search_mode bağımsız değişkeniyle hem artan hem azalan düzende arama yapabilir. |
| Özel Hata Mesajları | Eşleşme bulunamadığında #N/A hatasını gösterir. |
Eşleşme bulunamadığında çıktı mesajını özelleştirmeye izin verir. |
| Birden Fazla Değer Döndürme | Bir seferde yalnızca tek bir değer döndürebilir. | Aynı anda birden çok sütundan değer getirebilir. |
| Arama Modu | Yukarıdan aşağıya arar ve ilk eşleşmeyi döndürür. | Kapsamlı listelerde daha hızlı sonuçlar için her iki yönde (yukarıdan aşağıya veya aşağıdan yukarıya) arama yapabilir. |
| Büyük Veri Kümelerinde Performans | Özellikle veriler sıralanmamışsa veya range_lookup FALSE ise daha yavaş olabilir. |
Daha iyi performans, büyük veri kümelerini verimli şekilde ele alır ve sıralama yapmadan arama yapar. |
| Uyumluluk | Excel'in tüm sürümlerinde çalışır. | Yalnızca Excel 2021 ve Microsoft 365'te (2019'dan itibaren) mevcuttur. |
| Son Düşünceler | Eski Excel sürümleri veya daha basit arama görevleri için hâlâ kullanışlıdır. | Daha güçlü ve esnek, karmaşık veya büyük ölçekli aramalar için daha uygundur. |
Son Düşünceler
XLOOKUP(), özellikle büyük veri kümeleri veya karmaşık arama gereksinimlerinde VLOOKUP()'tan daha iyi performans gösterir. Çift yönlü arama, birden fazla sonucu getirme ve veri değişikliklerine uyum sağlama gibi esneklikleri onu kullanışlı bir araç yapar. Bununla birlikte, VLOOKUP() özellikle daha eski Excel sürümlerini kullananlar veya temel aramalarda daha basit bir yaklaşımı tercih edenler için hâlâ yerini korur. En iyi seçim nihayetinde özel ihtiyaçlarınıza ve Excel sürümünüze bağlıdır.
Excel'e yeni başlıyorsanız veya sağlam bir temel oluşturmak istiyorsanız, Introduction to Excel kursumuz ve Excel Fundamentals beceri yolu, temelleri ustalıkla öğrenmek için harika başlangıç noktalarıdır.
Karmaşık konuları basitleştirmeyi seven bir içerik stratejistiyim. Splunk, Hackernoon ve Tiiny Host gibi şirketlerin hedef kitleleri için ilgi çekici ve bilgilendirici içerikler üretmelerine yardımcı oldum.
Sıkça Sorulan Sorular
XLOOKUP() VLOOKUP()'tan daha mı iyi?
Evet, XLOOKUP() daha iyidir çünkü bir tablo içindeki herhangi bir sütunda arama yapabilir, birden fazla sonuç döndürebilir, hataları daha iyi yönetir ve hem dikey hem yatay arama yapabilir.
XLOOKUP() ile karşılaştırıldığında VLOOKUP()'ın sınırlamaları nelerdir?
VLOOKUP(), belirtilen bir aralığın ilk sütununda arama yapmakla sınırlıdır. Ve her aramada yalnızca bir sonuç döndürebilir.
XLOOKUP() SUMIFS() veya COUNTIFS() gibi dizi işlemlerini yapabilir mi?
Evet, XLOOKUP(), daha karmaşık hesaplamalar ve veri analizi görevleri gerçekleştirmek için SUMIFS() ve COUNTIFS() gibi dizi işlevleriyle birlikte kullanılabilir.
