Excel INDEX MATCH vs. VLOOKUP - formül örnekleri

  • Bunu Paylaş
Michael Brown

Bu eğitim, Excel'de INDEX ve MATCH'in nasıl kullanılacağını ve DÜŞEYARA'dan nasıl daha iyi olduğunu gösterir.

Son birkaç makalede, yeni başlayanlara DÜŞEYARA işlevinin temellerini açıklamak ve uzman kullanıcılara daha karmaşık DÜŞEYARA formülü örnekleri sunmak için iyi bir çaba gösterdik. Ve şimdi, sizi DÜŞEYARA kullanmaktan vazgeçirmeye çalışmasam bile, en azından Excel'de dikey arama yapmanın alternatif bir yolunu göstermeye çalışacağım.

"Buna neden ihtiyacım var?" diye merak edebilirsiniz. Çünkü DÜŞEYARA, birçok durumda istediğiniz sonucu almanızı engelleyebilecek çok sayıda sınırlamaya sahiptir. Öte yandan, INDEX MATCH kombinasyonu daha esnektir ve onu birçok açıdan DÜŞEYARA'dan üstün kılan birçok harika özelliğe sahiptir.

    Excel INDEX ve MATCH işlevleri - temel bilgiler

    Bu eğitimin amacı, INDEX ve MATCH işlevlerinin bir kombinasyonunu kullanarak Excel'de bir vlookup yapmanın alternatif bir yolunu göstermek olduğundan, sözdizimleri ve kullanımları üzerinde fazla durmayacağız. Yalnızca genel fikri anlamak için gerekli olan minimum konuyu ele alacağız ve ardından VLOOKUP yerine INDEX MATCH kullanmanın tüm avantajlarını ortaya çıkaran formül örneklerine derinlemesine bakacağız.

    INDEX işlevi - sözdizimi ve kullanım

    Excel INDEX işlevi, belirttiğiniz satır ve sütun numaralarına göre bir dizide bir değer döndürür. INDEX işlevinin sözdizimi basittir:

    INDEX(array, row_num, [column_num])

    Burada her bir parametrenin çok basit bir açıklaması bulunmaktadır:

    • dizi - değer döndürmek istediğiniz bir hücre aralığı.
    • row_num - bir değer döndürmek istediğiniz dizideki satır numarası. Atlanırsa, sütun_sayısı gereklidir.
    • column_num - bir değer döndürmek istediğiniz dizideki sütun numarası. atlanırsa, row_num gereklidir.

    Daha fazla bilgi için lütfen Excel INDEX işlevine bakın.

    Ve işte en basit haliyle INDEX formülünün bir örneği:

    =INDEX(A1:C10,2,3)

    Formül, A1 ile C10 arasındaki hücrelerde arama yapar ve 2. satır ve 3. sütundaki hücrenin, yani C2 hücresinin değerini döndürür.

    Çok kolay, değil mi? Ancak, gerçek verilerle çalışırken hangi satırı ve sütunu istediğinizi neredeyse hiç bilemezsiniz, işte bu noktada MATCH işlevi kullanışlı hale gelir.

    MATCH işlevi - sözdizimi ve kullanım

    Excel MATCH işlevi, bir hücre aralığında bir arama değeri arar ve göreli konum aralıktaki o değerin.

    MATCH fonksiyonunun sözdizimi aşağıdaki gibidir:

    MATCH(lookup_value, lookup_array, [match_type])
    • lookup_value - Aradığınız sayı veya metin değeri.
    • lookup_array - aranan bir hücre aralığı.
    • match_type - tam eşleşmenin mi yoksa en yakın eşleşmenin mi döndürüleceğini belirtir:
      • 1 veya atlandı - arama değerinden küçük veya ona eşit olan en büyük değeri bulur. Arama dizisinin artan sırada sıralanmasını gerektirir.
      • 0 - arama değerine tam olarak eşit olan ilk değeri bulur. INDEX / MATCH kombinasyonunda, neredeyse her zaman tam bir eşleşmeye ihtiyacınız vardır, bu nedenle MATCH işlevinizin üçüncü bağımsız değişkenini 0 olarak ayarlarsınız.
      • -1 - lookup_value değerinden büyük veya ona eşit olan en küçük değeri bulur. Lookup dizisinin azalan sırada sıralanmasını gerektirir.

    Örneğin, B1:B3 aralığı "New-York", "Paris", "Londra" değerlerini içeriyorsa, aşağıdaki formül 3 sayısını döndürür, çünkü "Londra" aralıktaki üçüncü girdidir:

    =MATCH("Londra",B1:B3,0)

    Daha fazla bilgi için lütfen Excel MATCH işlevine bakın.

    İlk bakışta, MATCH fonksiyonunun kullanışlılığı şüpheli görünebilir. Bir değerin bir aralıktaki konumu kimin umurunda? Bilmek istediğimiz şey değerin kendisidir.

    Lookup değerinin göreli konumunun (yani satır ve sütun numaraları) tam olarak şu komuta sağlamanız gereken şey olduğunu hatırlatmama izin verin row_num ve column_num Hatırlayacağınız gibi, Excel INDEX belirli bir satır ve sütunun birleştiği noktadaki değeri bulabilir, ancak tam olarak hangi satır ve sütunu istediğinizi belirleyemez.

    Excel'de INDEX MATCH işlevi nasıl kullanılır

    Artık temel bilgileri bildiğinize göre, MATCH ve INDEX'in birlikte nasıl çalıştığını anlamaya başladığınıza inanıyorum. Özetle, INDEX sütun ve satır numaralarına göre arama değerini bulur ve MATCH bu numaraları sağlar. İşte bu kadar!

    Dikey arama için, MATCH işlevini yalnızca satır numarasını belirlemek ve sütun aralığını doğrudan INDEX'e sağlamak için kullanırsınız:

    İNDEKS ( sütunundan bir değer döndürmek için , MATCH ( arama değeri , karşı bakılacak sütun , 0))

    Bunu anlamakta hala zorlanıyor musunuz? Bir örnekle anlamak daha kolay olabilir. Elinizde ulusal başkentlerin ve nüfuslarının bir listesi olduğunu varsayalım:

    Belirli bir başkentin, örneğin Japonya'nın başkentinin nüfusunu bulmak için aşağıdaki INDEX MATCH formülünü kullanın:

    =INDEX(C2:C10, MATCH("Japonya", A2:A10, 0))

    Şimdi, bu formülün her bir bileşeninin gerçekte ne yaptığını analiz edelim:

    • MATCH fonksiyonu A2:A10 aralığında "Japan" arama değerini arar ve 3 sayısını döndürür, çünkü "Japan" arama dizisinde üçüncü sıradadır.
    • Satır numarası doğrudan row_num INDEX argümanına o satırdan bir değer döndürmesi talimatını verir.

    Böylece yukarıdaki formül, C2 ile C10 arasındaki hücrelerde arama yapmayı ve bu aralıktaki 3. hücreden, yani C4'ten değeri çekmeyi söyleyen basit bir INDEX(C2:C,3)'e dönüşür, çünkü ikinci satırdan saymaya başlarız.

    Şehri formülde sabit kodlamak istemiyor musunuz? F1 gibi bir hücreye girin, hücre referansını MATCH'e verin ve dinamik bir arama formülü elde edin:

    =INDEX(C2:C10, MATCH(F1,A2:A10,0))

    Önemli not! İçindeki satır sayısı dizi argümanı, INDEX'teki satır sayısıyla eşleşmelidir. lookup_array bağımsız değişkenini kullanmayın, aksi takdirde formül yanlış bir sonuç üretecektir.

    Bekle, bekle... neden sadece aşağıdaki Vlookup formülünü kullanmıyoruz? Excel MATCH INDEX'in gizemli kıvrımlarını anlamaya çalışarak zaman kaybetmenin ne anlamı var?

    =VLOOKUP(F1, A2:C10, 3, FALSE)

    Bu durumda, hiçbir anlamı yoktur :) Bu basit örnek, INDEX ve MATCH fonksiyonlarının birlikte nasıl çalıştığını anlamanız için sadece gösterim amaçlıdır. Aşağıda yer alan diğer örnekler, DÜŞEYARA'nın tökezlediği birçok karmaşık senaryoyla kolayca başa çıkabilen bu kombinasyonun gerçek gücünü size gösterecektir.

    İpuçları:

    • Excel 365 ve Excel 2021'de, daha modern bir INDEX XMATCH formülü kullanabilirsiniz.
    • Google E-Tablolar için bu makaledeki INDEX MATCH ile formül örneklerine bakın.

    DÜŞEYARA'ya karşı DİZİN EŞLEŞTİRME

    Dikey aramalar için hangi işlevin kullanılacağına karar verirken, çoğu Excel uzmanı DİZİN EŞLEŞTİRME'nin DÜŞEYARA'dan çok daha iyi olduğu konusunda hemfikirdir. Bununla birlikte, birçok kişi, ilk olarak daha basit olduğu için ve ikinci olarak Excel'de DİZİN EŞLEŞTİRME formülünü kullanmanın tüm faydalarını tam olarak anlamadıkları için hala DÜŞEYARA ile kalmaktadır. Böyle bir anlayış olmadan hiç kimse daha karmaşık bir formülü öğrenmek için zaman ayırmaya istekli değildirSözdizimi.

    Aşağıda, MATCH INDEX'in VLOOKUP'a göre temel avantajlarına işaret edeceğim ve Excel cephaneliğinize değerli bir katkı olup olmadığına siz karar vereceksiniz.

    VLOOKUP yerine INDEX MATCH kullanmak için 4 ana neden

    1. Sağdan sola arama. Her eğitimli kullanıcının bildiği gibi, DÜŞEYARA soluna bakamaz, yani arama değeriniz her zaman tablonun en sol sütununda bulunmalıdır. INDEX MATCH sola aramayı kolaylıkla yapabilir! Aşağıdaki örnek bunu iş başında göstermektedir: Excel'de bir değeri sola doğru nasıl DÜŞEYARA yapabilirsiniz?
    2. Sütunları güvenle ekleyin veya silin. DÜŞEYARA formülleri, bir arama tablosundan yeni bir sütun silindiğinde veya bu tabloya yeni bir sütun eklendiğinde bozulur veya yanlış sonuçlar verir çünkü DÜŞEYARA'nın sözdizimi, verileri çekmek istediğiniz sütunun dizin numarasını belirtmeyi gerektirir. Doğal olarak, sütun eklediğinizde veya sildiğinizde, dizin numarası değişir.

      INDEX MATCH ile bir dizin numarası değil, dönüş sütunu aralığı belirtirsiniz. Sonuç olarak, ilişkili her formülü güncelleştirme konusunda endişelenmeden istediğiniz kadar sütun eklemekte ve kaldırmakta özgürsünüz.

    3. Arama değerinin boyutu için bir sınır yoktur. DÜŞEYARA işlevini kullanırken, arama ölçütlerinizin toplam uzunluğu 255 karakteri geçemez, aksi takdirde #VALUE! hatası alırsınız. Bu nedenle, veri kümeniz uzun dizeler içeriyorsa, INDEX MATCH çalışan tek çözümdür.
    4. Daha yüksek işlem hızı. Tablolarınız nispeten küçükse, Excel performansında önemli bir fark olmayacaktır. Ancak çalışma sayfalarınız yüzlerce veya binlerce satır ve dolayısıyla yüzlerce veya binlerce formül içeriyorsa, MATCH INDEX, VLOOKUP'tan çok daha hızlı çalışacaktır çünkü Excel'in tüm tablo dizisi yerine yalnızca arama ve döndürme sütunlarını işlemesi gerekecektir.

      DÜŞEYARA'nın Excel'in performansı üzerindeki etkisi, özellikle çalışma kitabınız DÜŞEYARA ve TOPLA gibi karmaşık dizi formülleri içeriyorsa fark edilebilir. Buradaki nokta, dizideki her bir değerin kontrol edilmesinin DÜŞEYARA işlevinin ayrı bir çağrısını gerektirmesidir. Dolayısıyla, diziniz ne kadar çok değer içerirse ve bir çalışma kitabında ne kadar çok dizi formülünüz varsa, Excel o kadar yavaş performans gösterir.

    Excel INDEX MATCH - formül örnekleri

    MATCH INDEX fonksiyonunu öğrenmek için nedenleri bildikten sonra, en ilginç kısma geçelim ve teorik bilgiyi pratikte nasıl uygulayabileceğinizi görelim.

    Sağdan sola doğru bakmak için INDEX MATCH formülü

    Daha önce de belirtildiği gibi, DÜŞEYARA soluna bakamaz. Bu nedenle, arama değerleriniz en soldaki sütun değilse, bir Vlookup formülünün size istediğiniz sonucu getirme şansı yoktur. Excel'deki INDEX MATCH işlevi daha çok yönlüdür ve arama ve dönüş sütunlarının nerede olduğunu gerçekten önemsemez.

    Bu örnek için, örnek tablomuzun soluna Rank sütununu ekleyeceğiz ve Rusya'nın başkenti Moskova'nın nüfus açısından kaçıncı sırada olduğunu bulmaya çalışacağız.

    G1'deki arama değeriyle, C2:C10'da arama yapmak ve A2:A10'dan karşılık gelen bir değer döndürmek için aşağıdaki formülü kullanın:

    =INDEX(A2:A10,MATCH(G1,C2:C10,0))

    İpucu: INDEX MATCH formülünüzü birden fazla hücre için kullanmayı planlıyorsanız, her iki aralığı da mutlak hücre başvurularıyla ($A$2:$A$10 ve $C$2:4C$10 gibi) kilitlediğinizden emin olun, böylece formül kopyalanırken bozulmayacaklardır.

    INDEX MATCH MATCH satırlarda ve sütunlarda arama yapmak için

    Yukarıdaki örneklerde, önceden tanımlanmış tek sütunlu bir aralıktan bir değer döndürmek için klasik DÜŞEYARA'nın yerine INDEX MATCH kullandık. Peki ya birden fazla satır ve sütunda arama yapmanız gerekirse? Başka bir deyişle, aşağıdaki gibi bir işlem gerçekleştirmek isterseniz matris veya iki yönlü arama?

    Bu kulağa zor gelebilir, ancak formül temel Excel INDEX MATCH işlevine çok benzer, sadece bir farkla. Tahmin edin ne oldu?

    Basitçe, iki MATCH fonksiyonu kullanın - biri satır numarası almak için diğeri sütun numarası almak için. Ve doğru tahmin edenleri tebrik ediyorum :)

    INDEX (dizi, MATCH ( vlookup değeri , karşı bakılacak sütun , 0), MATCH ( hlookup değeri , karşı bakmak için sıra , 0))

    Ve şimdi, lütfen aşağıdaki tabloya bir göz atın ve belirli bir yıl için belirli bir ülkedeki nüfusu (milyon olarak) bulmak için bir INDEX MATCH MATCH formülü oluşturalım.

    G1'deki hedef ülke (vlookup değeri) ve G2'deki hedef yıl (hlookup değeri) ile formül bu şekli alır:

    =INDEX(B2:D11, MATCH(G1,A2:A11,0), MATCH(G2,B1:D1,0))

    Bu formül nasıl çalışır?

    Karmaşık bir Excel formülünü anlamanız gerektiğinde, onu daha küçük parçalara ayırın ve her bir işlevin ne yaptığını görün:

    MATCH(G1,A2:A11,0) - A2:A11 arasında G1 hücresindeki ("Çin") değeri arar ve 2 olan konumunu döndürür.

    MATCH(G2,B1:D1,0)) - 3 olan G2 hücresindeki ("2015") değerin konumunu almak için B1:D1 arasında arama yapar.

    Yukarıdaki satır ve sütun numaraları INDEX fonksiyonunun karşılık gelen argümanlarına gider:

    INDEX(B2:D11, 2, 3)

    Sonuç olarak, B2:D11 aralığındaki 2. satır ve 3. sütunun kesişiminde bir değer elde edersiniz, bu da D3 hücresindeki değerdir. Kolay mı? Evet!

    Birden çok ölçütü aramak için Excel INDEX MATCH

    Excel DÜŞEYARA eğitimimizi okuma şansınız olduysa, muhtemelen birden fazla ölçütle Vlookup formülünü zaten test etmişsinizdir. Ancak, bu yaklaşımın önemli bir sınırlaması, bir yardımcı sütun ekleme zorunluluğudur. İyi haber şu ki, Excel'in INDEX MATCH işlevi, kaynak verilerinizi değiştirmeden veya yeniden yapılandırmadan iki veya daha fazla ölçütle de arama yapabilir!

    İşte birden çok ölçüt içeren genel INDEX MATCH formülü:

    {=INDEX( return_range , MATCH(1, ( KRİTERLER1 = aralık1 ) * ( kriterler2 = aralık2 ), 0))}

    Not: Bu, Ctrl + Shift + Enter kısayoluyla tamamlanması gereken bir dizi formülüdür.

    Aşağıdaki örnek tabloda, 2 kritere dayalı olarak tutarı bulmak istediğinizi varsayalım, Müşteri ve Ürün .

    Aşağıdaki INDEX MATCH formülü işe yarar:

    =INDEX(C2:C10, MATCH(1, (F1=A2:A10) * (F2=B2:B10), 0))

    Burada C2:C10 değer döndürülecek aralık, F1 kriter1, A2:A10 kriter1 ile karşılaştırılacak aralık, F2 kriter 2 ve B2:B10 kriter2 ile karşılaştırılacak aralıktır.

    Ctrl + Shift + Enter tuşlarına basarak formülü doğru şekilde girmeyi unutmayın; Excel ekran görüntüsünde gösterildiği gibi formülü otomatik olarak küme parantezleri içine alacaktır:

    Çalışma sayfalarınızda dizi formülleri kullanmak istemiyorsanız, formüle bir INDEX işlevi daha ekleyin ve normal bir Enter vuruşuyla tamamlayın:

    Bu formüller nasıl çalışır?

    Formüller, tek bir sütuna bakan temel INDEX MATCH işleviyle aynı yaklaşımı kullanır. Birden fazla ölçütü değerlendirmek için, her bir ölçüt için eşleşmeleri ve eşleşmemeleri temsil eden iki veya daha fazla TRUE ve FALSE değeri dizisi oluşturur ve ardından bu dizilerin karşılık gelen öğelerini çarparsınız. Çarpma işlemi TRUE ve FALSE değerlerini 1 ve 0 değerlerine dönüştürür,ve 1'lerin tüm ölçütlerle eşleşen satırlara karşılık geldiği bir dizi üretir. 1 arama değerine sahip MATCH işlevi dizideki ilk "1 "i bulur ve konumunu INDEX'e aktarır, bu da belirtilen sütundan bu satırdaki bir değeri döndürür.

    Dizi olmayan formül, INDEX işlevinin dizileri yerel olarak işleme yeteneğine dayanır. İkinci INDEX 0 ile yapılandırılır row_num böylece tüm sütun dizisini MATCH'a aktaracaktır.

    Bu, formülün mantığının üst düzey bir açıklamasıdır. Tüm ayrıntılar için lütfen birden çok ölçütle Excel INDEX MATCH bölümüne bakın.

    ORTALAMA, MAKS, MİN ile Excel INDEX MATCH

    Microsoft Excel, bir aralıktaki minimum, maksimum ve ortalama değeri bulmak için özel işlevlere sahiptir. Peki ya bu değerlerle ilişkili başka bir hücreden bir değer almanız gerekiyorsa? Bu durumda, INDEX MATCH ile birlikte MAX, MIN veya AVERAGE işlevini kullanın.

    MAX ile INDEX MATCH

    D sütunundaki en büyük değeri bulmak ve aynı satırdaki C sütunundan bir değer döndürmek için bu formülü kullanın:

    =INDEX(C2:C10, MATCH(MAX(D2:D10), D2:D10, 0))

    MIN ile INDEX MATCH

    D sütunundaki en küçük değeri bulmak ve C sütunundan ilişkili bir değer çekmek için bunu kullanın:

    =INDEX(C2:C10, MATCH(MIN(D2:D10), D2:D10, 0))

    ORTALAMA ile İNDEKS EŞLEŞTİRME

    D2:D10'daki ortalamaya en yakın değeri hesaplamak ve C sütunundan karşılık gelen bir değer elde etmek için kullanılacak formül budur:

    =INDEX(C2:C10, MATCH(AVERAGE(D2:D10), D2:D10, -1 ))

    Verilerinizin nasıl düzenlendiğine bağlı olarak, MATCH fonksiyonunun üçüncü bağımsız değişkenine (match_type) 1 veya -1 girin:

    • Arama sütununuz (bizim durumumuzda D sütunu) sıralandıysa artan Formül, en büyük değeri hesaplayacaktır. daha az veya ortalama değere eşittir.
    • Arama sütununuz sıralanmışsa azalan Formül, en küçük değeri hesaplayacaktır. daha büyük veya ortalama değere eşittir.
    • Arama diziniz bir değer içeriyorsa tam olarak eşit tam eşleşme için 0 girebilirsiniz. Sıralama gerekmez.

    Örneğimizde, D sütunundaki nüfuslar azalan sırada sıralanmıştır, bu nedenle eşleşme türü için -1 kullanırız. Sonuç olarak, nüfusu (13.189.000) ortalamadan (12.269.006) büyük olan en yakın eşleşme olduğu için "Tokyo" elde ederiz.

    DÜŞEYARA'nın da bu tür hesaplamaları yapabileceğini bilmek isteyebilirsiniz, ancak bir dizi formülü olarak: ORTALAMA, MAKS, MİN ile DÜŞEYARA.

    IFNA / IFERROR ile INDEX MATCH kullanımı

    Muhtemelen fark ettiğiniz gibi, Excel'deki bir INDEX MATCH formülü bir arama değeri bulamazsa, #N/A hatası üretir. Standart hata gösterimini daha anlamlı bir şeyle değiştirmek isterseniz, INDEX MATCH formülünüzü IFNA işlevine sarın. Örneğin:

    =IFNA(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Eşleşme bulunamadı")

    Ve şimdi, birisi arama aralığında bulunmayan bir arama tablosu girerse, formül kullanıcıya eşleşme bulunamadığını açıkça bildirecektir:

    Yalnızca #N/A değil, tüm hataları yakalamak istiyorsanız, IFNA yerine IFERROR işlevini kullanın:

    =IFERROR(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Oops, bir şeyler yanlış gitti!")

    Lütfen birçok durumda tüm hataları gizlemenin akıllıca olmayabileceğini unutmayın, çünkü bunlar sizi formülünüzdeki olası hatalar konusunda uyarır.

    Excel'de INDEX ve MATCH bu şekilde kullanılır. Umarım formül örneklerimiz size yardımcı olur ve gelecek hafta blogumuzda görüşmek üzere!

    İndirmek için pratik çalışma kitabı

    Excel INDEX MATCH örnekleri (.xlsx dosyası)

    Michael Brown, yazılım araçlarını kullanarak karmaşık süreçleri basitleştirme tutkusuna sahip, kendini adamış bir teknoloji meraklısıdır. Teknoloji endüstrisinde on yılı aşkın deneyimiyle Microsoft Excel ve Outlook'un yanı sıra Google E-Tablolar ve Dokümanlar'daki becerilerini geliştirdi. Michael'ın blogu, bilgisini ve uzmanlığını başkalarıyla paylaşmaya, üretkenliği ve verimliliği artırmaya yönelik takip etmesi kolay ipuçları ve eğitimler sağlamaya adamıştır. İster deneyimli bir profesyonel, ister yeni başlayan olun, Michael'ın blogu, bu temel yazılım araçlarından en iyi şekilde yararlanmak için değerli bilgiler ve pratik tavsiyeler sunar.