Excel formülü: Ters DÜŞEYARA örneği -

İçindekiler

Genel formül

=VLOOKUP(A1,CHOOSE((3,2,1),col1,col2,col3),3,0)

Özet

Bir DÜŞEYARA'yı tersine çevirmek için - yani bir DÜŞEYARA formül sonucunu kullanarak orijinal arama değerini bulmak için - SEÇ işlevine dayalı karmaşık bir formül veya aşağıda açıklandığı gibi DİZİN ve KAÇINCI ya da ÇAPRAZARA dayalı daha basit formüller kullanabilirsiniz. Gösterilen örnekte, H10'daki formül şöyledir:

=VLOOKUP(G10,CHOOSE((3,2,1),B5:B8,C5:C8,D5:D8),3,0)

Bu kurulumla, DÜŞEYARA, 3000 maliyetle ilişkili seçeneği bulur ve "C" döndürür.

Not: Bu daha gelişmiş bir konudur. DÜŞEYARA ile yeni başlıyorsanız, buradan başlayın.

Giriş

DÜŞEYARA işlevinin önemli bir sınırlaması, yalnızca sağdaki değerleri arayabilmesidir. Diğer bir deyişle, arama değerlerine sahip sütun, DÜŞEYARA ile almak istediğiniz değerlerin solunda olmalıdır. Sonuç olarak, standart yapılandırmayla, "sola bakmak" ve orijinal aramayı tersine çevirmek için DÜŞEYARA'yı kullanmanın bir yolu yoktur.

DÜŞEYARA açısından, sorunu şu şekilde görselleştirebiliriz:

Aşağıda açıklanan geçici çözüm, DÜŞEYARA içindeki tabloyu yeniden düzenlemek için SEÇ işlevini kullanır.

Açıklama

Baştan başlayarak, H5'teki formül normal bir DÜŞEYARA formülüdür:

=VLOOKUP(G5,B5:D8,3,0) // returns 3000

Arama değeri ("C") olarak G5'i ve tablo dizisi olarak B5: D8'deki verileri kullanarak, DÜŞEYARA B sütunundaki değerler üzerinde bir arama yapar ve ilgili değeri sütun 3'ten (sütun D), 3000 döndürür. Notice Sıfır (0), tam eşleşmeyi zorlamak için son bağımsız değişken olarak sağlanır.

G10'daki formül basitçe sonucu H5'ten alır:

=H5 // 3000

Geriye doğru arama yapmak için H10'daki formül şu şekildedir:

=VLOOKUP(G10,CHOOSE((3,2,1),B5:B8,C5:C8,D5:D8),3,0)

Zor bit, tablo dizisini Maliyet ilk sütun ve Seçenek son sütun olacak şekilde yeniden düzenlemek için kullanılan CHOOSE işlevidir:

CHOOSE((3,2,1),B5:B8,C5:C8,D5:D8) // reorder table 3, 2, 1

CHOOSE işlevi, sayısal bir dizine dayalı bir değer seçmek için tasarlanmıştır. Bu durumda, bir dizi sabitinde üç indeks değeri sağlıyoruz:

(3,2,1) // array constant

Başka bir deyişle, 3. sütunu, ardından 2. sütunu ve ardından 1. sütunu istiyoruz. Bunu, çalışma sayfasında göründükleri sırayla tablonun her sütununu temsil eden üç aralık izliyor.

Bu yapılandırmayla, CHOOSE, üç sütunun tümünü tek bir 2D dizide şu şekilde döndürür:

(1000,"Silver","A";2000,"Gold","B";3000,"Platinum","C";5000,"Diamond","D")

Bu diziyi çalışma sayfasında bir tablo olarak görselleştirirsek, elimizde:

Not: başlıklar dizinin parçası değildir ve burada yalnızca açıklık amacıyla gösterilmiştir.

Etkili bir şekilde, 1. ve 3. sütunları değiştirdik. Yeniden düzenlenen tablo, doğrudan 3000 ile eşleşen DÜŞEYARA'ya döndürülür ve sütun 3, "C" den karşılık gelen değeri döndürür.

INDEX ve MATCH ile

Yukarıdaki çözüm iyi çalışıyor, ancak çoğu kullanıcı formülün nasıl çalıştığını anlamayacağı için tavsiye etmek zor. Daha iyi bir çözüm, aşağıdaki gibi bir formül kullanan INDEX ve MATCH'dir:

=INDEX(B5:B8,MATCH(G10,D5:D8,0))

Burada, KAÇINCI işlevi D5: D8'de 3000 değerini bulur ve 3'ün konumunu döndürür:

MATCH(G10,D5:D8,0) // returns 3

Not: KAÇINCI, son bağımsız değişkeni sıfır (0) olarak ayarlayarak tam eşleşme için yapılandırılır.

KAÇINCI, satır numarası olarak doğrudan INDEX'e bir sonuç verir, böylece formül şöyle olur:

=INDEX(B5:B8,3) // returns "C"

ve INDEX, B5: B8, "C" nin üçüncü satırındaki değeri döndürür.

Bu formül, İNDİS ve KAÇINCI'nın DÜŞEYARA'dan nasıl daha esnek olabileceğini gösterir.

XLOOKUP ile

XLOOKUP ayrıca çok iyi bir çözüm sağlar. Eşdeğer formül:

=XLOOKUP(G10,D5:D8,B5:B8) // returns "C"

G10 (3000) 'den bir arama değeri, ayrıca D5: D8 (maliyetler) dizisi ve B5: B8 (seçenekler) sonuç dizisi ile, XLOOKUP 3000'i arama dizisinde bulur ve sonuç dizisinden karşılık gelen öğeyi döndürür, "C". XLOOKUP varsayılan olarak tam bir eşleşme gerçekleştirdiğinden, eşleşme modunu açıkça ayarlamanıza gerek yoktur.

Ilginç makaleler...