Excel formülü: 2 DÜŞEYARA ile daha hızlı DÜŞEYARA -

İçindekiler

Genel formül

=IF(VLOOKUP(id,data,1,TRUE)=id, VLOOKUP(id,data,col,TRUE), NA())

Özet

Büyük veri kümeleriyle, tam eşlemeli DÜŞEYARA acı verici bir şekilde yavaş olabilir, ancak aşağıda açıklandığı gibi iki DÜŞEYARA kullanarak DÜŞEYARA'nın daha hızlı aydınlanmasını sağlayabilirsiniz.

Notlar:

  1. Daha küçük bir veri kümeniz varsa, bu yaklaşım abartılıdır. Bunu yalnızca hız gerçekten önemli olduğunda büyük veri kümeleriyle kullanın.
  2. Bu numaranın çalışması için verileri arama değerine göre sıralamanız gerekir.
  3. Bu örnek, adlandırılmış aralıkları kullanır. Adlandırılmış aralıkları kullanmak istemiyorsanız, bunun yerine mutlak başvurular kullanın.

Tam eşleme DÜŞEYARA yavaş

DÜŞEYARA, büyük bir veri kümesinde "tam eşleme modunda" kullandığınızda, bir çalışma sayfasındaki hesaplama süresini gerçekten yavaşlatabilir. Örneğin 50.000 kayıt veya 100.000 kayıt ile hesaplama dakikalar alabilir.

Tam eşleme, dördüncü bağımsız değişken olarak FALSE veya sıfır sağlanarak ayarlanır:

=VLOOKUP(val,data,col,FALSE)

Bu modda DÜŞEYARA'nın yavaş olmasının nedeni, bir eşleşme bulunana kadar veri kümesindeki her bir kaydı kontrol etmesi gerektiğidir. Bu bazen doğrusal arama olarak adlandırılır.

Yaklaşık eşleşme DÜŞEYARA çok hızlıdır

Yaklaşık eşleşme modunda, DÜŞEYARA son derece hızlıdır. Yaklaşık eşleşme DÜŞEYARA kullanmak için, verilerinizi ilk sütuna (arama sütunu) göre sıralamanız ve ardından 4. bağımsız değişken için DOĞRU belirtmeniz gerekir:

=VLOOKUP(val,data,col,TRUE)

(DÜŞEYARA varsayılan olarak doğrudur, bu korkutucu bir varsayılandır, ancak bu başka bir hikaye).

Çok büyük veri kümelerinde, yaklaşık eşleşme DÜŞEYARA'ya geçiş, önemli bir hız artışı anlamına gelebilir.

Yani, beyinsiz, değil mi? Verileri sıralayın, yaklaşık eşleşmeyi kullanın ve bitirdiniz.

O kadar hızlı değil (heh).

"Yaklaşık eşleşme" modunda DÜŞEYARA ile ilgili sorun şudur: DÜŞEYARA, arama değeri yoksa bir hata görüntülemez. Daha da kötüsü, sonuç tamamen yanlış olsa bile tamamen normal görünebilir (örneklere bakın). Patronunuza açıklamak isteyeceğiniz bir şey değil.

Çözüm, DÜŞEYARA'yı her iki kez yaklaşık eşleme modunda olmak üzere iki kez kullanmaktır:

=IF(VLOOKUP(id,data,1,TRUE)=id, VLOOKUP(id,data,col,TRUE), NA())

Açıklama

DÜŞEYARA işlevinin ilk örneği, yalnızca arama değerini arar ( bu örnekteki kimlik ):

=IF(VLOOKUP(id,data,1,TRUE)=id

ve yalnızca arama değeri bulunduğunda DOĞRU döndürür. Bu durumda
formül, bu tablodan bir değer almak için yaklaşık eşleme modunda DÜŞEYARA'yı tekrar çalıştırır:

VLOOKUP(id,data,col,TRUE)

Formülün ilk bölümü orada olduğundan emin olmak için zaten kontrol edildiğinden, eksik arama değeri tehlikesi yoktur.

Arama değeri bulunmazsa, EĞER işlevinin "YANLIŞ ise değer" bölümü çalışır ve istediğiniz herhangi bir değeri döndürebilirsiniz. Bu örnekte, NA () kullanıyoruz ve #YOK hatası döndürüyoruz, ancak "Eksik" veya "Bulunamadı" gibi bir mesaj da döndürebilirsiniz.

Unutmayın: Bu numaranın çalışması için verileri arama değerine göre sıralamanız gerekir.

İyi bağlantılar

Neden 2 DÜŞEYARA 1 DÜŞEYARA'dan daha iyi (Charles Williams)

Ilginç makaleler...