Son Eşleşen Değeri Bulma
Ters arama tekniklerini kullanarak en güncel eşleşmeyi döndürün.
Son Eşleşen Değeri Bulma, CoddyKit'te ücretsiz bir Excel Formulas Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Excel Formulas Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Excel Formulas Academy kursu toplamda 4 dersten oluşur.
Son Eşleşme Sorunu
Çoğu arama, bulduğu ilk eşleşmeyi döndürür. Ancak bazen son eşleşmeyi; örneğin bir ürünün en güncel fiyatını, son durum güncellemesini veya bir müşteri için girilen son kaydı isteyebilirsiniz.
Bir liste zaman içinde büyüdüğünde ve aynı anahtar birçok kez göründüğünde, en alttaki satır genellikle en güncel kayıttır. Tam eşleşmeli standart bir VLOOKUP veya MATCH ise inatla en üstteki satırı alır.
Bu derste son eşleşen değeri almanın birkaç güvenilir yolunu göstereceğiz.
Tam MATCH Neden İlk Eşleşmeyi Bulur?
MATCH(value, range, 0), yukarıdan aşağıya tarama yapar ve bulduğu ilk tam eşleşmede durur. "Apple" 2, 5 ve 9. satırlarda görünüyorsa MATCH, 2 değerini döndürür.
Bu, anahtarlar benzersiz olduğunda idealdir; ancak daha yeni satırları göz ardı eder. Son görülme noktasına ulaşmak için aşağıdan yukarıya arama yapan veya son eşleşmenin konumunu döndüren bir tekniğe ihtiyacımız vardır.
=MATCH("Apple", A2:A10, 0)Ters Aramayla XLOOKUP
Excel'in veya Google Sheets'in güncel bir sürümüne sahipseniz XLOOKUP bunu kolaylaştırır. Beşinci ve altıncı bağımsız değişkenleri eşleşme kipini ve arama yönünü denetler.
Arama kipi bağımsız değişkeni olarak -1 verirseniz sondan başa arama yapılır. Böylece XLOOKUP, eşleşen anahtarın en alttaki satırına bağlı değeri döndürür.
Burada G1'deki ürünü A2:A10 aralığında arar ve aramaya en alttan başlayarak eşleşen fiyatı B2:B10 aralığından döndürür.
=XLOOKUP(G1, A2:A10, B2:B10, "Not found", 0, -1)Klasik LOOKUP Hilesi
Daha eski hesap tablolarında yaygın olarak kullanılan bir hile, LOOKUP işlevini 2 sayısı ve koşula bölme işlemiyle birlikte kullanır.
1/(A2:A10=G1) ifadesi eşleşen satırlar için 1, eşleşmeyen satırlar içinse bölme hatası üretir. LOOKUP, mevcut değerlerden daha büyük olan 2'yi ararken hataların üzerinden geçer ve son geçerli 1 değerine ulaşarak B2:B10 aralığından eşleşen değeri döndürür.
=LOOKUP(2, 1/(A2:A10=G1), B2:B10)LOOKUP Hilesi Nasıl Çalışır?
1/(A2:A10=G1) ifadesini adım adım inceleyelim:
- Anahtarın eşleştiği satırlar
1/TRUE= 1 sonucunu verir. - Eşleşmeyen satırlar
1/FALSE= #DIV/0! hatası sonucunu verir.
LOOKUP hataları yok sayar ve aradığı hedefi (2) bulamadığında son hatasız girdiye hizalanan sonucu döndürür. Tüm eşleşmeler 1 olduğundan son 1 kazanır ve son eşleşen satırın değerini elde edersiniz.
=LOOKUP(2, 1/(A2:A10=G1), B2:B10)INDEX ve MATCH ile Son Eşleşme
INDEX-MATCH ailesini kullanmaya da devam edebilirsiniz. Buradaki fikir, son eşleşmenin konumunu bulup ardından bunu INDEX'e vermektir.
Aynı bölme hilesini MATCH içinde kullanarak 1/(A2:A10=G1) dizisinde 2'yi arayın ve son eşleşmenin satır konumunu elde edin. Bu konumu, sonuç sütunundaki INDEX işlevine verin.
=INDEX(B2:B10, MATCH(2, 1/(A2:A10=G1)))MATCH(2, ...) Neden Son Eşleşmeyi Bulur?
MATCH'in üçüncü bağımsız değişkeni belirtilmediğinde varsayılan olarak 1 olur; bu, artan verilerde yaklaşık eşleşme anlamına gelir. MATCH bu durumda 2'den küçük veya 2'ye eşit olan en büyük değeri arar.
1/(A2:A10=G1) dizisi yalnızca 1 değerlerini ve hataları içerir. 2'ye eşit veya 2'den küçük en büyük değer 1'dir ve MATCH bu tür son 1 değerinin konumunu döndürür. Bu konum tam olarak son eşleşen satırdır.
=MATCH(2, 1/(A2:A10=G1))Somut Bir Örnek
A2:A10 aralığının zaman içinde kaydedilen "Order-7" sipariş durumlarını listelediğini, B2:B10 aralığının da durum metnini içerdiğini varsayalım. "Order-7" 3, 6 ve 9. satırlarda görünür.
- Eşleşme dizisi, 3, 6 ve 9. satırları 1 olarak; diğer satırları ise hata olarak işaretler.
- MATCH(2, ...), aralığın başından itibaren sayılan konum olarak son eşleşmeyi, yani 9 değerini döndürür.
- INDEX, son satırdaki ve dolayısıyla en güncel durum olan değeri döndürür.
=INDEX(B2:B10, MATCH(2, 1/(A2:A10=G1)))Doğru Yöntemi Seçme
Hangi yaklaşımı kullanmalısınız?
- -1 ile XLOOKUP: Uygulamanız destekliyorsa en sade ve okunaklı seçenektir.
- LOOKUP(2, 1/...): Özel bir sürüm gerektirmeden neredeyse her yerde çalışır.
- INDEX-MATCH(2, 1/...): Konuma da ihtiyaç duyduğunuzda veya farklı bir sütundan değer döndürmek istediğinizde kullanışlıdır.
Üçü de aynı yanıtı verir; seçiminizi kullandığınız araçlara ve formülün ne kadar okunaklı olmasını istediğinize göre yapın.
Yaygın Hatalar
Şu sorunlara dikkat edin:
- Uyuşmayan aralık boyutları: Koşul aralığı ile sonuç aralığı aynı yüksekliğe sahip olmalıdır; aksi durumda satırlar hizalanmaz.
- Gizli yinelenenler: Sondaki boşluklar "Apple " ile "Apple" ifadelerinin farklı olmasına neden olabilir; önce metni TRIM ile temizleyin.
- Hiç eşleşme olmaması: Hiçbir şey eşleşmezse hile bir hata döndürür. Kullanıcıya daha anlaşılır bir geri dönüş sağlamak için bunu
IFERRORiçine alın.
=IFERROR(LOOKUP(2, 1/(A2:A10=G1), B2:B10), "Not found")Birden Çok Ölçütle Son Eşleşme
Son eşleşme hilesini iki koşulla birleştirebilirsiniz. Yalnızca her iki anahtarı da karşılayan satırların 1 üretmesi için koşul testlerini bölme işlemi içinde çarpın.
Örneğin, ürünün G1'e ve bölgenin G2'ye eşit olduğu en güncel fiyatı bulun. LOOKUP(2, ...) hilesi yine uygun koşulları karşılayan son satıra ulaşır.
Bu yöntem, aynı ürünün birden çok bölgede göründüğü zaman damgalı günlük kayıtlarında kullanışlıdır.
=LOOKUP(2, 1/((A2:A10=G1)*(B2:B10=G2)), C2:C10)Hızlı Kontrol
Son eşleşme aramalarını ne kadar iyi kavradığınızı kontrol edin.
Ders Özeti
İlk eşleşme yerine son eşleşen değeri döndürmek için:
- Bulunduğu yerde alttan üste arama yapmak için
XLOOKUP(..., -1)kullanın. - Her sürümde kullanabileceğiniz klasik
LOOKUP(2, 1/(range=key), result)hilesinden yararlanın. - Konuma da ihtiyaç duyduğunuzda
INDEX(result, MATCH(2, 1/(range=key)))kullanın.
Aralıkları aynı boyutta tutmayı, gereksiz boşlukları temizlemeyi ve güvenlik amacıyla formülü IFERROR içine almayı unutmayın.
=XLOOKUP(G1, A2:A10, B2:B10, "Not found", 0, -1)Sıkça Sorulan Sorular
“Son Eşleşen Değeri Bulma” dersi ücretsiz mi?
Evet — “Son Eşleşen Değeri Bulma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Excel Formulas Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Excel Formulas Academy kursu toplamda 4 dersten oluşur.
“Son Eşleşen Değeri Bulma” dersinde ne öğreneceğim?
Ters arama tekniklerini kullanarak en güncel eşleşmeyi döndürün. Excel Formulas Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Excel Formulas Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Excel Formulas Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Son Eşleşen Değeri Bulma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Excel Formulas Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Excel Formulas Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- INDEX-MATCH-MATCH ile İki Yönlü Arama
- Son Eşleşen Değeri Bulma
- INDEX-MATCH ile Birden Çok Ölçütlü Arama
- Kademe Tabloları için Yaklaşık Eşleştirme