Bu Excel formülü neden iki farklı değer döndürüyor?


3

1 (1) değerinin belirli bir sette dönüp dönmediğine bakmak için Excel (2013) kullanmaya çalışıyorum ( CHOOSE()işlevi kullanarak , sonra öyleyse, hücrede bulunan değeri doğrudan VLOOKUP()işlevini kullanarak hücredeki değeri basarak . Bu formül, formülün kendisi aynı olduğunda farklı hücrelerde iki farklı sonuç verir.

=IF(CHOOSE(1, $A$4:$A$17) = 1, VLOOKUP(1, $A$4:$C$17, 2, FALSE), "?")

Sayfamdaki V4 - V7 hücrelerinin hepsi aynı formüle sahip (yukarıda basılmış olan), ancak farklı değerler döndürüyorlar. V4'ün döndürülen değeri istediğim türdür (yani, bir sayı olan B4 hücresinin değeri), ancak diğerleri geri dönüyor "?". Neden bu ve nasıl düzeltebilirim? Herhangi bir yardım için şimdiden teşekkür ederiz.

Yanıtlar:


6

Diyelim ki aralıkta bu değerler var A4:A6:

1
2
3

Eğer varsa CHOOSE(1, $A$4:$A$17).

Excel içindeki diziler, normal olarak değerlendirildiğinde formülün içinde bulunduğu satır veya sütunu (duruma göre hangisi olursa olsun) değerlendirir. Formül 4. satırda ise, o CHOOSE(1, $A$4:$A$17)zaman alırsınız CHOOSE(1, $A$4). 5. satırda, alacak CHOOSE(1, $A$5). Bunun nedeni CHOOSEnormalde dizi değerleri almamasıdır.

Aralığın dışında bir liste elde etmek istiyorsanız , bir dizi formülü olarak $A$4:$A$17girmeniz gerekir CHOOSEve bu daha büyük bir formülde olduğu için de geçerlidir. Formülü ekledikten sonra Ctrl+ Shift+ kullanıyorsanız Enterve Entertek başına basmak yerine, beklediğiniz gibi çalıştığını göreceksiniz .


Tamam, bu doğru, ama nedenini hala anlamadım . Başka bir açıklamanız var mı? choose(1,A$1,A$4)içerisinde b1= a1; b4= içindeki aynı formül a4. Sanırım söylediklerim, iyi soru, iyi cevap, neden pozisyona dayalı olarak değerlendirildiğine dair herhangi bir kaynak?
Raystafarian

1
Bu "örtük kesişme" - bu bağlantıya bakın myonlinetraininghub.com/excel-implicit-intersection ...... veya başkaları için google
barry houdini

@ Rayayfarian Açıklama için barry'nin bu yorumun üzerindeki bağlantısına bakınız. Ve farkettim ki 'uygun şekilde nasıl düzeltebilirim' kısmına hitap etmedim, özellikle CHOOSEde uygun fonksiyon olmadığı için, ama o zaman, Barry zaten bunu çözdü .
Jerry,

Aklımı uçuran @ barryhoudini, MS'in neden iyi bir şey olduğunu düşündüğünü bulmak zorunda kalacağım . Teşekkürler!
Raystafarian,

5

Neden CHOOSEburada işlevi kullandığınız belli değil , daha çok kontrol etmenizi öneririm COUNTIF, yani

=IF(COUNTIF($A$4:$A$17,1)>0,VLOOKUP(1,$A$4:$C$17,2,FALSE),"?")

.... ancak Excel 2007'de (veya daha yeni sürümlerde) IFERROR işlevini şu şekilde kullanmak muhtemelen daha kolaydır:

=IFERROR(VLOOKUP(1,$A$4:$C$17,2,FALSE),"?")

A4:A17Aksi taktirde bu formüllerin ikisi de VLOOKUP sonucunu döndürecektir.?

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.