Excel'de Gelişmiş DÜŞEYARA: çoklu, çift, iç içe

  • Bunu Paylaş
Michael Brown

Bu örnekler size birden fazla kriteri nasıl Vlookup yapacağınızı, belirli bir örneği veya tüm eşleşmeleri nasıl döndüreceğinizi, birden fazla sayfada dinamik Vlookup yapmayı ve daha fazlasını öğretecektir.

Bu, Excel DÜŞEYARA'nın gücünden yararlanmanıza yardımcı olacak serinin ikinci bölümüdür. Örnekler, bu işlevin nasıl çalıştığını bildiğiniz anlamına gelir. Eğer bilmiyorsanız, Excel'de DÜŞEYARA'nın temel kullanımlarıyla başlamanız mantıklı olacaktır.

Daha ileri gitmeden önce, sözdizimini kısaca hatırlatmama izin verin:

VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

Artık herkes aynı sayfada olduğuna göre, gelişmiş DÜŞEYARA formülü örneklerine daha yakından bakalım:

    Birden çok ölçüt nasıl Vlookup edilir

    Excel DÜŞEYARA işlevi, belirli bir değer için bir veritabanında arama yapmak söz konusu olduğunda gerçekten yararlıdır. Ancak, önemli bir özelliği yoktur - sözdizimi yalnızca bir arama değerine izin verir. Peki ya birkaç koşulla arama yapmak istiyorsanız? Aralarından seçim yapabileceğiniz birkaç farklı çözüm var.

    Formül 1. İki ölçütlü DÜŞEYARA

    Elinizde bir sipariş listesi olduğunu ve 2 kritere göre miktarı bulmak istediğinizi varsayalım, Müşteri adı ve Ürün Karmaşıklaştırıcı bir faktör de her müşterinin aşağıdaki tabloda gösterildiği gibi birden fazla ürün sipariş etmiş olmasıdır:

    Normal bir DÜŞEYARA formülü bu durumda çalışmaz çünkü belirttiğiniz tek bir arama değerine dayalı olarak bulunan ilk eşleşmeyi döndürür.

    Bunun üstesinden gelmek için, bir yardımcı sütun ekleyebilir ve iki arama sütunundan değerleri birleştirebilirsiniz ( Müşteri ve Ürün Yardımcı sütunun aşağıdaki gibi olması önemlidir en solda tablo dizisindeki sütun, Excel DÜŞEYARA'nın her zaman arama değerini aradığı yerdir.

    Bu nedenle, tablonuzun soluna bir sütun ekleyin ve aşağıdaki formülü bu sütuna kopyalayın. Bu, yardımcı sütunu B ve C sütunlarındaki değerlerle dolduracaktır (daha iyi okunabilirlik için aradaki boşluk karakteri birleştirilmiştir):

    =B2&" "&C2

    Ardından, standart bir DÜŞEYARA formülü kullanın ve her iki ölçütü de lookup_value argümanı, bir boşlukla ayrılmıştır:

    =VLOOKUP("Jeremy Sweets", A2:D11, 4, FALSE)

    Ya da kriterleri ayrı hücrelere girin (bizim durumumuzda G1 ve G2) ve bu hücreleri birleştirin:

    =VLOOKUP(G1&""&G2, A2:D11, 4, FALSE)

    Tablo dizisinin dördüncü sütunu olan D sütunundan bir değer döndürmek istediğimiz için col_index_num . Bu range_lookup argümanı tam bir eşleşme Vlookup için FALSE olarak ayarlanır. Aşağıdaki ekran görüntüsü sonucu göstermektedir:

    Arama tablonuzun içinde olması durumunda başka bir sayfa sayfanın adını DÜŞEYARA formülünüze ekleyin. Örneğin:

    =VLOOKUP(G1&""&G2, Orders!A2:D11, 4, FALSE)

    Alternatif olarak, arama tablosu için adlandırılmış bir aralık oluşturun (örn, Siparişler ) formülü daha kolay okunur hale getirmek için:

    =VLOOKUP(G1&""&G2, Orders, 4, FALSE)

    Daha fazla bilgi için lütfen Excel'de başka bir sayfadan Vlookup nasıl yapılır bölümüne bakın.

    Not: Formülün doğru çalışması için, yardımcı sütundaki değerler, aşağıdaki formülde olduğu gibi tam olarak aynı şekilde birleştirilmelidir lookup_value Örneğin, hem yardımcı sütundaki (B2&" "&C2) hem de DÜŞEYARA formülündeki (G1&" "&G2) ölçütleri ayırmak için bir boşluk karakteri kullandık.

    Formül 2. Birden çok koşullu Excel DÜŞEYARA

    Teorik olarak, ikiden fazla ölçütü Vlookup'a eklemek için yukarıdaki yaklaşımı kullanabilirsiniz. Ancak, birkaç uyarı vardır. İlk olarak, bir arama değeri 255 karakterle sınırlıdır ve ikinci olarak, çalışma sayfasının tasarımı bir yardımcı sütun eklenmesine izin vermeyebilir.

    Neyse ki, Microsoft Excel genellikle aynı şeyi yapmanın birden fazla yolunu sunar. Birden çok ölçütü DÜŞEYARA'ya dönüştürmek için, bir DİZİN EŞLEŞTİRME kombinasyonunu veya Office 365'te yakın zamanda tanıtılan DÜŞEYARA işlevini kullanabilirsiniz.

    Örneğin, 3 farklı değere göre arama yapmak için ( Tarih , Müşteri adı ve Ürün ), aşağıdaki formüllerden birini kullanın:

    =INDEX(D2:D11, MATCH(1, (G1=A2:A11) * (G2=B2:B11) * (G3=C2:C11), 0))

    =XLOOKUP(1, (G1=A2:A11) * (G2=B2:B11) * (G3=C2:C11), D2:D11)

    Nerede?

    • G1 kriter 1'dir (tarih)
    • G2 kriter 2'dir (müşteri adı)
    • G3 kriter 3'tür (ürün)
    • A2:A11 arama aralığı 1'dir (tarihler)
    • B2:B11 arama aralığı 2'dir (müşteri adları)
    • C2:C11 arama aralığı 3'tür (ürünler)
    • D2:D11 dönüş aralığıdır (miktar)

    Not: Excel 365 dışındaki tüm sürümlerde, INDEX MATCH Ctrl + Shift + Enter tuşlarına basılarak bir CSE dizi formülü olarak girilmelidir. Dinamik dizileri destekleyen Excel 365'te normal bir formül olarak da çalışır.

    Formüllerin ayrıntılı açıklaması için lütfen bkz:

    • Birden çok ölçütle DÜŞEYARA
    • Birden çok ölçüt içeren INDEX MATCH formülü

    2'nci, 3'üncü veya n'inci eşleşmeyi elde etmek için DÜŞEYARA nasıl kullanılır

    Bildiğiniz gibi, Excel DÜŞEYARA yalnızca bir eşleşen değeri alabilir, daha doğrusu bulunan ilk eşleşmeyi döndürür. Peki ya arama dizinizde birkaç eşleşme varsa ve 2. veya 3. örneği almak istiyorsanız? Görev oldukça karmaşık görünüyor, ancak çözüm mevcut!

    Formül 1. Vlookup N'inci örnek

    Bir sütunda müşteri adları, diğerinde satın aldıkları ürünler olduğunu ve belirli bir müşteri tarafından satın alınan 2. veya 3. ürünü bulmak istediğinizi varsayalım.

    En basit yol, ilk örnekte yaptığımız gibi tablonun soluna bir yardımcı sütun eklemektir. Ancak bu kez, bu sütunu müşteri adları ve olay numaraları ile dolduracağız " John Doe1 ", " John Doe2 ", vb.

    Oluşumu elde etmek için, karışık bir aralık başvurusuyla EĞERSAY işlevini kullanın (ilk başvuru mutlaktır ve ikincisi $B$2:B2 gibi görelidir). Göreli başvuru, formülün kopyalandığı hücrenin konumuna göre değiştiğinden, 3. satırda $B$2:B3, 4. satırda - $B$2:B4 olur ve bu böyle devam eder.

    Müşteri adı (B2) ile birleştirildiğinde formül şu şekli alır:

    =B2&COUNTIF($B$2:B2, B2)

    Yukarıdaki formül A2'ye gider ve ardından bunu gerektiği kadar hücreye kopyalarsınız.

    Bundan sonra, hedef adı ve oluşum numarasını ayrı hücrelere (F1 ve F2) girin ve belirli bir oluşuma Vlookup uygulamak için aşağıdaki formülü kullanın:

    =VLOOKUP(F1&F2, A2:C11, 3, FALSE)

    Formül 2. Vlookup 2. oluşumu

    Arama değerinin 2. örneğini arıyorsanız, yardımcı sütun olmadan da yapabilirsiniz. Bunun yerine, INDIRECT işlevini MATCH ile birlikte kullanarak tablo dizisini dinamik olarak oluşturun:

    =VLOOKUP(E1, INDIRECT("A"&(MATCH(E1, A2:A11, 0)+2)&":B11"), 2, FALSE)

    Nerede?

    • E1 arama değeridir
    • A2:A11 arama aralığıdır
    • B11, arama tablosunun son (sağ alt) hücresidir

    Yukarıdaki formülün, arama tablosundaki veri hücrelerinin satır 2'de başladığı özel bir durum için yazıldığını lütfen unutmayın. Tablonuz sayfanın ortasında bir yerdeyse, A1'in sütun başlığı içeren arama tablosunun sol üst hücresi olduğu bu evrensel formülü kullanın:

    =VLOOKUP(E1, INDIRECT("A"&(MATCH(E1, A2:A11, 0)+1+ROW(A1))&":B11"), 2, FALSE)

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

    Formülün anahtar kısmı şu şekildedir dinamik vlookup aralığı :

    INDIRECT("A"&(MATCH(E1, A2:A11, 0)+2)&":B11")

    Tam eşleşme için yapılandırılan MATCH fonksiyonu (son bağımsız değişkende 0), hedef adı (E1) adlar listesiyle (A2:A11) karşılaştırır ve bulunan ilk eşleşmenin konumunu döndürür, bu da bizim durumumuzda 3'tür. Bu sayı, vlookup aralığı için başlangıç satır koordinatı olarak kullanılacaktır, bu nedenle ona 2 ekleriz (ilk örneği hariç tutmak için +1 ve sütun başlıklarının bulunduğu 1. satırı hariç tutmak için +1).Alternatif olarak, başlık satırının (bizim durumumuzda A1) konumuna göre gerekli ayarlamayı otomatik olarak hesaplamak için 1+ROW(A1) kullanabilirsiniz.

    Sonuç olarak, INDIRECT'in bir aralık referansına dönüştürdüğü aşağıdaki metin dizesini elde ederiz:

    INDIRECT("A"&5&":B11") -> A5:B11

    Bu aralık table_array argümanı, arama değerinin ilk örneğini dışarıda bırakarak 5. satırda aramaya başlamaya zorlar:

    VLOOKUP(E1, A5:B11, 2, FALSE)

    Excel'de Vlookup nasıl yapılır ve birden çok değer nasıl döndürülür

    Excel DÜŞEYARA işlevi yalnızca bir eşleşme döndürmek için tasarlanmıştır. Birden çok örneği DÜŞEYARA yapmanın bir yolu var mı? Evet, var, ancak kolay bir yol değil. Bu, INDEX, SMALL ve ROW gibi çeşitli işlevlerin bir dizi formülü olarak birlikte kullanılmasını gerektirir.

    Örneğin, aşağıdakiler B2:B16 arama aralığında F2 arama değerinin tüm oluşumlarını bulabilir ve C sütunundan birden fazla eşleşme döndürebilir:

    {=IFERROR(INDEX($C$2:$C$11, SMALL(IF($F$1=$B$2:$B$11, ROW($C$2:$C$11)-1,""), ROW()-1)),"")}

    Formülü çalışma sayfanıza girmenin 2 yolu vardır:

    1. Formülü ilk hücreye yazın, Ctrl + Shift + Enter tuşlarına basın ve ardından birkaç hücreye daha sürükleyin.
    2. Tek bir sütunda birkaç bitişik hücre seçin (aşağıdaki ekran görüntüsünde F1:F11), formülü yazın ve tamamlamak için Ctrl + Shift + Enter tuşlarına basın.

    Her iki durumda da, formülü girdiğiniz hücre sayısı olası maksimum eşleşme sayısına eşit veya daha fazla olmalıdır.

    Formül mantığının ayrıntılı açıklaması ve daha fazla örnek için lütfen Excel'de birden çok değer DÜŞEYARA nasıl kullanılır bölümüne bakın.

    Satırlarda ve sütunlarda Vlookup nasıl yapılır (iki yönlü arama)

    İki yönlü arama (diğer adıyla matris arama veya 2 boyutlu arama ) belirli bir satır ve sütunun kesişiminde bir değer aramak için kullanılan süslü bir kelimedir. Excel'de iki boyutlu arama yapmanın birkaç farklı yolu vardır, ancak bu eğitimin odak noktası DÜŞEYARA işlevi olduğundan, doğal olarak onu kullanacağız.

    Bu örnekte, aylık satışları içeren aşağıdaki tabloyu alacağız ve belirli bir aydaki belirli bir ürünün satış rakamını almak için bir DÜŞEYARA formülü oluşturacağız.

    A2:A9'da öğe adları, B1:F1'de ay adları, I1'de hedef öğe ve I2'de hedef ay ile formül aşağıdaki gibidir:

    =VLOOKUP(I1, A2:F9, MATCH(I2, A1:F1, 0), FALSE)

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

    Formülün özü, I1'deki arama değeriyle tam bir eşleşme arayan standart DÜŞEYARA işlevidir. Ancak belirli bir ay için satışların tam olarak hangi sütunda olduğunu bilmediğimizden, sütun numarasını doğrudan col_index_num Bu sütunu bulmak için aşağıdaki MATCH işlevini kullanırız:

    MATCH(I2, A1:F1, 0)

    İngilizceye çevrildiğinde, formül şunu söyler: A1:F1'deki I2 değerini arayın ve dizideki göreli konumunu döndürün. 3. bağımsız değişkene 0 vererek, MATCH'a arama değerine tam olarak eşit olan değeri bulması talimatını verirsiniz (FALSE için range_lookup argümanı).

    O zamandan beri Mar arama dizisinin 4. sütununda yer alıyorsa, MATCH işlevi 4 döndürür ve bu da doğrudan col_index_num VLOOKUP argümanı:

    VLOOKUP(I1, A2:F9, 4, FALSE)

    Lütfen ay adlarının B sütununda başlamasına rağmen, arama dizisi için A1:I1 kullandığımıza dikkat edin. Bu, MATCH tarafından döndürülen sayının sütunun içindeki konumuna karşılık gelmesi için yapılır. table_array VLOOKUP.

    Excel'de matris araması yapmanın daha fazla yolunu öğrenmek için lütfen DİZİN EŞLEŞTİRME EŞLEŞTİRME ve 2 boyutlu arama için diğer formüllere bakın.

    Excel'de birden çok Vlookup nasıl yapılır (iç içe Vlookup)

    Bazen ana tablonuz ve arama tablonuzun ortak tek bir sütunu olmayabilir, bu da iki tablo arasında Vlookup yapmanızı engeller. Ancak, aradığınız bilgileri içermeyen ancak ana tablo ile ortak bir sütunu ve arama tablosu ile başka bir ortak sütunu olan başka bir tablo vardır.

    Aşağıdaki resimde durum gösterilmektedir:

    Amaç, fiyatları aşağıdakilere göre ana tabloya kopyalamaktır Ürün Kimlikleri Sorun şu ki, fiyatları içeren tabloda Ürün Kimlikleri Bu da tek bir formülde iki Vlookup yapmamız gerekeceği anlamına gelir.

    Kolaylık olması açısından, önce birkaç adlandırılmış aralık oluşturalım:

    • Arama tablosu 1'in adı Ürünler (D3:E10)
    • Arama tablosu 2'nin adı Fiyatlar ( G3:H10 )

    Tablolar aynı veya farklı çalışma sayfalarında olabilir.

    Ve şimdi de, sözde çift Vlookup , aka iç içe Vlookup .

    İlk olarak, Arama tablosu 1'de ürün adını bulmak için bir DÜŞEYARA formülü oluşturun (adlandırılmış Ürünler ) öğe kimliğine (A3) dayalı olarak:

    =VLOOKUP(A3, Ürünler, 2, FALSE)

    Ardından, yukarıdaki formülü lookup_value Lookup table 2'den fiyatları çekmek için başka bir VLOOKUP fonksiyonunun argümanı (adı Fiyatlar ) iç içe DÜŞEYARA tarafından döndürülen ürün adını temel alır:

    =VLOOKUP(VLOOKUP(A3, Products, 2, FALSE), Prices, 2, FALSE)

    Aşağıdaki ekran görüntüsü, iç içe geçmiş Vlookup formülümüzü iş başında göstermektedir:

    Birden çok sayfayı dinamik olarak Vlookup'lama

    Bazen, birkaç çalışma sayfasına bölünmüş aynı formatta verileriniz olabilir. Ve amacınız, belirli bir hücredeki anahtar değere bağlı olarak belirli bir sayfadan veri çekmektir.

    Bunu bir örnekle anlamak daha kolay olabilir. Diyelim ki, aynı formatta birkaç bölgesel satış raporunuz var ve belirli bir ürünün belirli bölgelerdeki satış rakamlarını almak istiyorsunuz:

    Önceki örnekte olduğu gibi, birkaç isim tanımlayarak başlıyoruz:

    • CA sayfasındaki A2:B5 aralığı adlandırılmıştır CA_Sales .
    • FL sayfasındaki A2:B5 aralığı adlandırılmıştır FL_Sales .
    • KS sayfasındaki A2:B5 aralığı adlandırılmıştır KS_Sales .

    Gördüğünüz gibi, adlandırılmış tüm aralıkların ortak bir parçası vardır ( Satış ) ve benzersiz parçalar ( CA , FL , KS Lütfen aralıklarınızı benzer şekilde adlandırdığınızdan emin olun, çünkü oluşturacağımız formül için bu çok önemlidir.

    Formül 1. Farklı sayfalardan dinamik olarak veri çekmek için DOLAYLI DÜŞEYARA

    Göreviniz birden fazla sayfadan veri almaksa, DÜŞEYARA DOLAYLI formülü en iyi çözümdür - kompakt ve anlaşılması kolaydır.

    Bu örnek için özet tabloyu bu şekilde düzenliyoruz:

    • A2 ve A3'e ilgilendiğiniz ürünleri girin. Bunlar bizim arama değerlerimizdir.
    • B1, C1 ve D1'e adlandırılmış aralıkların benzersiz kısımlarını girin.

    Ve şimdi, benzersiz kısmı (B1) içeren hücreyi ortak kısımla ("_Sales") birleştiriyoruz ve elde edilen dizeyi INDIRECT'e besliyoruz:

    INDIRECT(B$1&"_Sales")

    INDIRECT işlevi dizeyi Excel'in anlayabileceği bir ada dönüştürür ve siz bunu table_array VLOOKUP argümanı:

    =VLOOKUP($A2, INDIRECT(B$1&"_Sales"), 2, FALSE)

    Yukarıdaki formül B2'ye gider ve sonra onu aşağıya ve sağa kopyalarsınız.

    Arama değerinde ($A2), formül sağa kopyalandığında sütunun sabit kalması için sütun koordinatını mutlak hücre başvurusuyla kilitlediğimize lütfen dikkat edin. B$1 başvurusunda, sütun koordinatının değişmesini ve formülün kopyalandığı sütuna bağlı olarak DOLAYLI'ya uygun bir ad parçası sağlamasını istediğimiz için satırı kilitledik:

    Ana tablonuz farklı şekilde düzenlenmişse, arama değerleri bir satırda ve aralık adlarının benzersiz kısımları bir sütunda bulunuyorsa, arama değerindeki satır koordinatını (B$1) ve ad kısımlarındaki sütun koordinatını ($A2) kilitlemeniz gerekir:

    =VLOOKUP(B$1, INDIRECT($A2&"_Sales"), 2, FALSE)

    Formül 2. Birden fazla sayfayı aramak için DÜŞEYARA ve iç içe EĞER'ler

    Yalnızca iki veya üç arama sayfanızın olduğu durumlarda, belirli bir hücredeki anahtar değere göre doğru sayfayı seçmek için iç içe EĞER işlevleri içeren oldukça basit bir DÜŞEYARA formülü kullanabilirsiniz:

    =VLOOKUP($A2, IF(B$1="CA", CA_Sales, IF(B$1="FL", FL_Sales, IF(B$1="KS", KS_Sales,"")), 2, FALSE)

    Burada $A2 arama değeri (öğe adı) ve B$1 anahtar değerdir (durum):

    Bu durumda, adları tanımlamanız gerekmez ve başka bir sayfaya veya çalışma kitabına başvurmak için dış referansları kullanabilirsiniz.

    Daha fazla formül örneği için lütfen Excel'de birden çok sayfada DÜŞEYARA nasıl kullanılır bölümüne bakın.

    DÜŞEYARA'nın Excel'de nasıl kullanılacağı bu şekilde açıklanmıştır. Okuduğunuz için teşekkür eder, gelecek hafta blogumuzda görüşmek dileğiyle!

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

    Gelişmiş DÜŞEYARA formül ö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.