İç İçe Eğer Formülü Sayı Hatasına Rağmen Hesaplamaya Devam Etsin

Katılım
31 Ocak 2019
Mesajlar
83
Excel Vers. ve Dili
2016 Excel. English.
Arkadaşlar Merhaba, iç içe eğer formülü kullandığımda eğer koşullardan birinde hesaplamada "Sayı" hatası ile karşılaşıyorsa diğer kouşllara geçmeyip sonucu direkt "Sayı" hatası olarak veriyor. Halbuki "eğer değilse" şeklinde devam eden ardı sıra gelen diğer koşulları hesaplamyaa devam etse isteğim sonucu vericek.. Bu neden böyle? Formül adım adım hesaplama bölümünde test ettğimde örneğin aşağıdaki gibi bir iç içe formülde ilk formülü hesapladığında "Num" hatası veriyorsa ondan sonra gelen "eğer değilse" şu koşulu hesapla bölümündeki formülü hesaplamaya geçmiyor. Hemen kestirip Sayı hatası diye veriyor.
Örnek:
=IF(INDIRECT("A"&LARGE(IF(A1:A5=<>"";ROW(A1:A5));1))=1;1;IF(INDIRECT("A"&LARGE(IF(A1:A5<>"";ROW(A1:A5));1))=2;2;""))

Örneğin: A1:A5 arası hücrelerde bazı rakamlar var, bazı alanlar boş. Yukarıdaki formüle göre ilk koşul yani "A1:A5" arasında son dolu hücre 1'e eşitse "1" sonucunu ver; eğer değilse bu kez A1:A5 hücre aralığında son dolu hücrenin değeri "2" ise sonucu "2" ver diyorum. Ancak hesaplamada eğer A1:A5 hücre aralığında "1" bulamadığında sayı hatası veriyor ve ikinci koşulu hesaplamaya geçmiyor. Benim istediğimde hücrede herhangi bir koşulun sonucu "Sayı" hatası çıksa bile diğer koşulu hesaplamaya devam etsin ve koşulu sağlayan sonucu bana versin. Yukarıdaki örnekte Sayı hatası vermeyip koşulu hesaplamaya devam etse A1:A5 hüre aralığında "2" rakamı bulunduğundan ikinci koşulumun sonucu bana verebilecekti. Ama excel bunun yerine ilk koşulda sayı hatası nedeniyle hemen kestirip atıyor :)) Ya da ben fonksiyonu doğru kullanmıyorum :)
İlk koşullarda "Sayı "hatasına rağmen diğer koşulları hesaplamayı da sürdürmesini ve koşul sağlanınca bana o koşulun sonucunu vermesini nasıl sağlayabilirim ?
Yardımcı olabilecek arkadaşlara şimdiden teşekkürler.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
IFERROR belki işinize yarayabilir.
 
Katılım
31 Ocak 2019
Mesajlar
83
Excel Vers. ve Dili
2016 Excel. English.
IFERROR belki işinize yarayabilir.
Sayın @Korhan Ayhan cevabınız için teşekkürler. Ben de cevap beklerken birkaç bir şey denemiştim. Sanırım işe yaradı. Dediğiniz gibi IFERROR kullanımı. Formülü şöyle revize ettim. Umarım doğru kullanmışımdır.
=IFERROR(IF(INDIRECT("A"&LARGE(IF(A2667:A2675=1;ROW(A2667:A2675));1))=1;1);IF(INDIRECT("A"&LARGE(IF(A2667:A2675=2;ROW(A2667:A2675));1))=2;2;""))
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Örnek dosya üzerinde tarif ederseniz yapıyı kontrol edebiliriz. Bu şekilde bende durum pek şekillenmedi.
 
Katılım
31 Ocak 2019
Mesajlar
83
Excel Vers. ve Dili
2016 Excel. English.
Sayın @Korhan Ayhan cevabınız için teşekkürler. Ben de cevap beklerken birkaç bir şey denemiştim. Sanırım işe yaradı. Dediğiniz gibi IFERROR kullanımı. Formülü şöyle revize ettim. Umarım doğru kullanmışımdır.
=IFERROR(IF(INDIRECT("A"&LARGE(IF(A2667:A2675=1;ROW(A2667:A2675));1))=1;1);IF(INDIRECT("A"&LARGE(IF(A2667:A2675=2;ROW(A2667:A2675));1))=2;2;""))
Yalnız Sayın @Korhan Ayhan bu IFERROR kullanımı bu kez de ilk koşulun sonucu "Hata" verdğinde diğer koşulu hesaplamaya geçmesini sınırlandırmış olmaz mı? Örneğin sadece hata verdğinde değil, hata haricinde de koşul sağlanmadığında da diğer koşulu hesaplamaya devam eder mi? Aksi takdirde başka bir probleme yol açmış olurum diye soruyorum.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Şöyle deneyin..

=IFERROR(Birinci Formülünüz;İkinci Formülünüz)
 
Katılım
31 Ocak 2019
Mesajlar
83
Excel Vers. ve Dili
2016 Excel. English.
Şöyle deneyin..

=IFERROR(Birinci Formülünüz;İkinci Formülünüz)
Birinci formülü ve sonucunu parantez ile kapattığımda "Sayı" hatası nedeniyle ikinci koşulu hesaplamaya devam ediyor. Bu istediğim sonucu verdi ama...Ancak bu kez de sadece sayı hatası verdiğinde ikinci koşulu hesaplamaya devam edip eğer birinci koşulu sağlamayan "hata" dışındaki bir faktörde ikinci koşulu hesaplamasını engellemiş olur muyuz, bu şekilde?
=IFERROR( IF(INDIRECT("A"&LARGE(IF(A1:A5=1;ROW(A1:A5));1))=1;1) ; IF(INDIRECT("A"&LARGE(IF(A1:A5=2;ROW(A1:A5));1))=2;2;""))
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu kurgunun mantığı şu şekilde;

Eğer birinci formül hata vermezse onun sonucunu verir. Eğer hatalı ise ikinci formülünüz devreye girer. İkinci formülünüzün sonucu hata verirse bu hata sonucunu görürsünüz.
 
Katılım
31 Ocak 2019
Mesajlar
83
Excel Vers. ve Dili
2016 Excel. English.
Bu kurgunun mantığı şu şekilde;

Eğer birinci formül hata vermezse onun sonucunu verir. Eğer hatalı ise ikinci formülünüz devreye girer. İkinci formülünüzün sonucu hata verirse bu hata sonucunu görürsünüz.
Eğer; birinici formül hem hata vermezse hem de birinci formül koşulu sağlamazsa, ne olur peki Sayın @Korhan Ayhan . Değerli görüşleriniz için teşekkür ederim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Birinci formül sonucu koşul sağlanmazsa ikinci koşula geçmez.

Deneyip görebilirsiniz.
 
Katılım
31 Ocak 2019
Mesajlar
83
Excel Vers. ve Dili
2016 Excel. English.
Denedim. Birinci formül ya hata verdiğinde ya da koşulu sağlamıyorsa ikinci formüle geçmeli, zira aynı şey ikinci formül için de geçerli. İkinci formül de ya sayı hatası verdiğinde ya da koşulu sağlamadığında üçüncü koşula geçmeli. Bu şekilde içiçe 5 adet eğer formülü var. Başka kullanacabileceğim bir fonksiyon var mı? Kısacası benim isteğim herhangi bir koşulda "Sayı" hatası oluştuğunda ya da koşul sağlanmadığında diğer koşulları hesaplamaya devam etmeli. Çünkü olasılık (matematiksel) olarak bu iç içe olan 5 koşuldan birinin şartını mutlaka taşıyor ve hangi koşulun sonunda şartı taşıyorsa bana o sonucu vermeli. Saçı başı yoldurdu bana burda artık :))))
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Neden örnek dosya eklemiyorsunuz?

Siz saçı başı yolarken.... bizdeki durumu bir düşünün...
 
Katılım
31 Ocak 2019
Mesajlar
83
Excel Vers. ve Dili
2016 Excel. English.
Neden örnek dosya eklemiyorsunuz?

Siz saçı başı yolarken.... bizdeki durumu bir düşünün...
Derdimi anlatırken "ya da " ifadesini kullanacağıma "hem de" ifadesini kullanmışım hatalı olarak. Düzelttim ama burdan da belirtmek istedim. Örnek dosya için bakıyorum şimdi Sayın @Korhan Ayhan . Teşekkürler ilginize.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sizin burada ulaşmak istediğiniz sonuç nedir?

"A" sütunundaki neyi arıyorsunuz?
 
Katılım
31 Ocak 2019
Mesajlar
83
Excel Vers. ve Dili
2016 Excel. English.
Sizin burada ulaşmak istediğiniz sonuç nedir?

"A" sütunundaki neyi arıyorsunuz?
Eğer bir koşul "#Num!" hatası veriyorsa ya da koşul sağlanmıyorsa, sıradaki koşulu hesaplamasını istiyorum. İlk koşul sağlanana kadar hesaplamasına devam edicek. Amacım bu.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
İşin o kısmını anladım.

Bu formülün olmadığını varsayın...

Biz A sütununda neyi arıyoruz?
 
Katılım
31 Ocak 2019
Mesajlar
83
Excel Vers. ve Dili
2016 Excel. English.
İşin o kısmını anladım.

Bu formülün olmadığını varsayın...

Biz A sütununda neyi arıyoruz?
Sayın @Korhan Ayhan eğer formül değiştirme gibi bir metod düşünecek olursak gönderdiğim dosyayı paylaşırken de açıkladığım gibi ben durumu basit tutmak için formülleri kısalttım, eğer bir fonksiyon kullanımı ile halladebilmiş olsaydık ben orada kullandığınız fonksiyonu kendi dosyamdaki formüllere aynı mantıkla kullanacaktım. Çünkü kendi dosyamdaki formül sadece A sütununda veri aramayıp öncesin H sütununda bir takım kesişmlere bakıyor,neredeyse 12 satırlık bir formül. Yani o çok daha yorucu olacaktır bizim için. Ben belki bir fonksiyon kullanımı ile: eğer bir koşul "Num" hatası verdiğinde ya da "koşul sağlanamazsa" sıradaki koşula, eğer o koşulda "Num" hatası ya da "koşul sağlanamazsa" sıradaki koşula bak şeklinde çözebileceğimizi umut etmiştim. Ben ilgi ve yardımlarınız için teşekkür ederim yine de. Sağ olun.
 

Suskun

Altın Üye
Altın Üye
Katılım
27 Kasım 2006
Mesajlar
292
Excel Vers. ve Dili
Excel 19
Altın Üyelik Bitiş Tarihi
24.05.2032
Merhaba ,
Hücre sorgulamada birden çok koşul kullanılabilir. İşlem doğru yada yanlış sonuca kadar devam eder. Dizi (a1:10) de 3 değeri sorgulamak istediğinizde dizide 3 değere de bakar. Sonuç için VE ile maktıksal değerlerini kontrol eder. Ve 3 doğru da sadece Son kontrol edilen değeri verir. Eğer bir yanlış varsa hepsini yanlış kabul eder.
Bu nedenle aşağıdaki formulleri ayrı ayrı kullabilirsiniz. (1,3,8 değerleriniden farklı değerler aratırsanız hücre atayabilirsiniz. )

=DOLAYLI("A"&KAÇINCI(8;$A$1:$A$10;0))
=EĞERYOKSA(DOLAYLI("A"&KAÇINCI(3;$A$1:$A$10;0));"Yok")
=DOLAYLI("A"&KAÇINCI(1;$A$1:$A$10;0))

Dolaylı yerine, İndis - kaçıncı da aynı sonucu verecektir. (daha iyi)

=EĞERYOKSA(İNDİS($A$1:$A$10;KAÇINCI(8;$A$1:$A$10;0));"Yok")
=İNDİS($A$1:$A$10;KAÇINCI(3;$A$1:$A$10;0))
=İNDİS($A$1:$A$10;KAÇINCI(1;$A$1:$A$10;0))

Hücrelerde 1,3,8 değerleri bulunursa değeri yoksa YOK yazacaktır.
 
Katılım
31 Ocak 2019
Mesajlar
83
Excel Vers. ve Dili
2016 Excel. English.
Merhaba ,
Hücre sorgulamada birden çok koşul kullanılabilir. İşlem doğru yada yanlış sonuca kadar devam eder. Dizi (a1:10) de 3 değeri sorgulamak istediğinizde dizide 3 değere de bakar. Sonuç için VE ile maktıksal değerlerini kontrol eder. Ve 3 doğru da sadece Son kontrol edilen değeri verir. Eğer bir yanlış varsa hepsini yanlış kabul eder.
Bu nedenle aşağıdaki formulleri ayrı ayrı kullabilirsiniz. (1,3,8 değerleriniden farklı değerler aratırsanız hücre atayabilirsiniz. )

=DOLAYLI("A"&KAÇINCI(8;$A$1:$A$10;0))
=EĞERYOKSA(DOLAYLI("A"&KAÇINCI(3;$A$1:$A$10;0));"Yok")
=DOLAYLI("A"&KAÇINCI(1;$A$1:$A$10;0))

Dolaylı yerine, İndis - kaçıncı da aynı sonucu verecektir. (daha iyi)

=EĞERYOKSA(İNDİS($A$1:$A$10;KAÇINCI(8;$A$1:$A$10;0));"Yok")
=İNDİS($A$1:$A$10;KAÇINCI(3;$A$1:$A$10;0))
=İNDİS($A$1:$A$10;KAÇINCI(1;$A$1:$A$10;0))

Hücrelerde 1,3,8 değerleri bulunursa değeri yoksa YOK yazacaktır.
Sayın @Suskun, paylaştığınız 3'lü formülü aynı bu şekilde yani hepsinin başında "=" olacak şekilde mi tek bir hücreye yazmalıyım. Ona göre deneyip size geri bildirimde bulunacağım. İlginiz için çok çok teşekkür ederim.
 
Üst