VLOOKUP'ın 'TRUE' olarak ayarlanan range_lookup ayarıyla gerçek davranışını açıklayan Microsoft başvurusu bulamadım ("yaklaşık eşleşme" bulma anlamına gelir). Başvuruları, yalnızca "doğru sonuçlar" elde etmek için arama tablosunu artan sırada sıralamanızı söyler, ancak algoritmanın nasıl çalıştığını açıklamaz;
Birçok makale, range_lookup 'TRUE' olarak ayarlandığında aşağıdaki davranışı önererek, sıralanmış bir arama tablosunun neden önemli olduğunu açıklamaya çalışır:
- VLOOKUP, en soldaki sütunda yer alan listeye girerek aranan değerden daha büyük bir arama değeri bulana kadar aramayı durdurur.
- VLOOKUP, YUKARI satırında bulunan ve aramayı durdurduğu satırda bulunan arama değeri ile ilişkili çıktı değerini döndürür.
Bu, sıralanmamış bir listenin neden sorunlu çıktılara neden olacağını kesinlikle açıklayacaktır. Ama yine de, bunun gerçekten de işleyişinin böyle olup olmadığını görmek için test etmeye karar verdim. A1'deki sol üst hücresiyle aşağıdaki arama sonucunu göz önünde bulundurun:
1 a
99 b
3 c
4 d
Şimdi bazı değer aramaları yapalım:
1 için arama yap: Önerilen algoritma bağlamında VLOOKUP'ı (1, A1: B4,2, TRUE) düşün. VLOOKUP, sol sütundan aşağı gider, 1'i görür, devam eder, 99'u görür. Bu 1'den büyüktür. Üstündeki satırın ikinci sütununda değeri döndürür. İnce. Algoritma, 'a' dönüşü beklemektedir. Excel 'a' döndürür.
2 için Arama: VLOOKUP ile (2, A1, B4,2, TRUE), VLOOKUP sol sütuna gider, 1'i görür, devam eder, 99'u görür. Bu 2'den büyüktür. üstündeki satır. Algoritmaya göre çalışır. Algoritma, 'a' dönüşü beklemektedir. Excel 'a' döndürür.
3'ü arayın: VLOOKUP ile (3, A1, B4,2, TRUE), VLOOKUP sol sütundan aşağı iner, 1'i görür, devam eder, 99'u görür. Bu, 3'ten büyüktür. üstündeki satır. Algoritmaya göre çalışır. Algoritma, 'a' dönüşü beklemektedir. Excel 'a' döndürür.
4'ü Arayın: VLOOKUP (3, A1, B4,2, TRUE) ile VLOOKUP sol sütuna gider, 1'i görür, devam eder, 99'u görür. Bu 4'ten büyük. İkinci sütundaki değeri döndürmelidir üstündeki satırın. Ama öyle değil. Algoritma 'a' dönüşünü bekliyor ancak Excel 'd' döndürüyor!
Asıl algoritmayı bilen var mı?
düzenleme: Bir hata yaptım ama sorularım hala duruyor. Aşağıdaki yorumuma bakın.
=VLOOKUP(4,$A$1:$B$4,2,TRUE)