EYOKSA veya EHATALIYSA fonksiyonu

hakanbent

Altın Üye
Katılım
31 Ağustos 2006
Mesajlar
37
Excel Vers. ve Dili
excel 11- türkçe
Altın Üyelik Bitiş Tarihi
29-09-2027
Sayın Forum arkadaşlarım;

Hazırladığım formül ile başka sayfalardan veri çekiyorum. Ancak ilgili sayfanın, ilgili hücresinde "#YOK" değerinin dönmesini istemiyorum. Ancak aşağıdaki fonksiyonda çok fazla denememe rağmen, Eyoksa ve Ehatalıysa fonksiyonlarını kullanadım.

Kod:
=EĞER(DÜŞEYARA($A$2;puantaj!$A$2:$AF$81;2;0)=1;harcırah_listesi!$E$2;EĞER(DÜŞEYARA($A$2;puantaj!$A$2:$AF$81;2;0)=2;harcırah_listesi!$E$3;EĞER(DÜŞEYARA($A$2;puantaj!$A$2:$AF$81;2;0)=3;harcırah_listesi!$E$4;EĞER(DÜŞEYARA($A$2;puantaj!$A$2:$AF$81;2;0)=4;harcırah_listesi!$E$5;EĞER(DÜŞEYARA(A2;puantaj!$A$2:$AF$81;2;0)=5;harcırah_listesi!$E$5;EĞER(DÜŞEYARA($A$2;puantaj!$A$2:$AF$81;2;0)=6;harcırah_listesi!$E$6))))))
Dosyayı da ekliyorum ilgili formül "personel sayfasının, B2 hücresinde" yardımlarınız için şimdiden teşekkür ederim.

Saygılarımla.
 
Katılım
25 Nisan 2007
Mesajlar
459
Excel Vers. ve Dili
2007
Formülünüzü önce EHATALIYSA() içine yazıp hata üretiyosa 0 (sıfır) değerini aksi halde çalışmasını sağlayabilirsiniz.

=EĞER(EHATALIYSA( FORMÜLÜNÜZ ) ; 0 ; FORMÜLÜNÜZ)
 

hakanbent

Altın Üye
Katılım
31 Ağustos 2006
Mesajlar
37
Excel Vers. ve Dili
excel 11- türkçe
Altın Üyelik Bitiş Tarihi
29-09-2027
sayın xxcell;

Daha önceki denemelerimde de aynı sizin söylediğiniz gibi denemiştim. Ancak gene de olmadı. Hatanın nereden kaynaklandığını bulamadım.

Saygılarımla.
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
sayın xxcell;

Daha önceki denemelerimde de aynı sizin söylediğiniz gibi denemiştim. Ancak gene de olmadı. Hatanın nereden kaynaklandığını bulamadım.

Saygılarımla.
Aşağıdaki şekilde deneyin.

=IF(ISERROR(IF(VLOOKUP(A2;puantaj!A2:AF81;2;0)=1;harcırah_listesi!B2;"")&IF(VLOOKUP(A2;puantaj!A2:AF81;2;0)=2;harcırah_listesi!B3;"")&IF(VLOOKUP(A2;puantaj!A2:AF81;2;0)=3;harcırah_listesi!B4;"")&IF(VLOOKUP(A2;puantaj!A2:AF81;2;0)=4;harcırah_listesi!B5;"")&IF(VLOOKUP(A2;puantaj!A2:AF81;2;0)=5;harcırah_listesi!B5;"")&IF(VLOOKUP(A2;puantaj!A2:AF81;2;0)=6;harcırah_listesi!B6;""));"";IF(VLOOKUP(A2;puantaj!A2:AF81;2;0)=1;harcırah_listesi!B2;"")&IF(VLOOKUP(A2;puantaj!A2:AF81;2;0)=2;harcırah_listesi!B3;"")&IF(VLOOKUP(A2;puantaj!A2:AF81;2;0)=3;harcırah_listesi!B4;"")&IF(VLOOKUP(A2;puantaj!A2:AF81;2;0)=4;harcırah_listesi!B5;"")&IF(VLOOKUP(A2;puantaj!A2:AF81;2;0)=5;harcırah_listesi!B5;"")&IF(VLOOKUP(A2;puantaj!A2:AF81;2;0)=6;harcırah_listesi!B6;""))


ISERROR=EHATALIYSA
IF=EĞER
VLOOKUP=DÜŞEYARA

..
 
Katılım
25 Nisan 2007
Mesajlar
459
Excel Vers. ve Dili
2007
İç içe o kadar eğer kullanmak fazla sağlıklı değil.
Genelde bir çok fonksiyon (yada kod) birbirinden farklı birsürü değişik teknikle çok alternatifli olarak kullanılabilir.
Herzaman amaca en uygun fonksiyonu (yada kodu) vede en doğru teknikle kullanmak bize zaman, bellek, anlaşılırlık kazandırır.

Eğer 1 ise şu hücreyi al, 2 ise şu hücreyi al, 3 ise şu hücreyi al şeklinde hazırlamışsınız. Kodunuz çalışıyor ama hata üretincede şu tepkiyi ver eklemeye kalkınca YA BELİRLİ BİR UZUNLUĞU AŞTIĞI İÇİN, YADA İÇ İÇE EĞER SAYISINI AŞTIĞI İÇİN bu formülü kabul etmiyor.


eleman () fonksiyonu ile şu şekilde düzeltirseniz çalışacaktır.

=ELEMAN(EĞER(EHATALIYSA(DÜŞEYARA(A2;puantaj!A2:AF81;2;0));0;DÜŞEYARA(A2;puantaj!A2:AF81;2;0))+1;0;harcırah_listesi!B2;harcırah_listesi!B3;harcırah_listesi!B4;harcırah_listesi!B5;harcırah_listesi!B6;harcırah_listesi!B7)

Alternatif olarak dolaylı () fonksiyonu ile;

=EĞER(EHATALIYSA(DÜŞEYARA(A2;puantaj!A2:AF81;2;0));0;DOLAYLI("harcırah_listesi!B"&DÜŞEYARA(A2;puantaj!A2:AF81;2;0)+1))
 

hakanbent

Altın Üye
Katılım
31 Ağustos 2006
Mesajlar
37
Excel Vers. ve Dili
excel 11- türkçe
Altın Üyelik Bitiş Tarihi
29-09-2027
Teşekkür

Sayın xxcell ve Yurttas hocalarım;

Yurttas hocam, ne yazık ki verdiğiniz formülü uyguladım ancak, (herhalde çok uzun olması nedeni ile ben beceremedim.)çalışmadı. Sayın xxcell hocam verdiğiniz formüller çok güzel çalışıyor. Elinize emeğinize sağlık.Yurttas hocam size de ilgilendiğiniz ve emek harcadağınız için çok teşekkür ederim.

En derin saygılarımla.
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
Sayın xxcell ve Yurttas hocalarım;

Yurttas hocam, ne yazık ki verdiğiniz formülü uyguladım ancak, (herhalde çok uzun olması nedeni ile ben beceremedim.)çalışmadı. Sayın xxcell hocam verdiğiniz formüller çok güzel çalışıyor. Elinize emeğinize sağlık.Yurttas hocam size de ilgilendiğiniz ve emek harcadağınız için çok teşekkür ederim.

En derin saygılarımla.

Nasıl çalışmadı?

Sayın xxcell'in dediklerine tamamen katılıyorum. Ancak sizin formülünüzün mantığını bozmamak amacıyla bu şekilde düzenledim.

Dosyanıza uyarlanmış şekliyle ekte.


Dosyanız ekte.


..
 

hakanbent

Altın Üye
Katılım
31 Ağustos 2006
Mesajlar
37
Excel Vers. ve Dili
excel 11- türkçe
Altın Üyelik Bitiş Tarihi
29-09-2027
Sayın Yurttas Hocam;

İlginize ve emeğinize çok teşekkür ederim. Ayrıca özür dilerim. Söylemek istediğim sizin formülünüzün çalışmadığı yönünde değildi. Ben formülün uzun olması nedeni ilke kopyala yapıştır yaptım. Daha sonra incelediğimde yapıştırdığm formülde örneğin;ha rcırah_listesi!B2;harcırah_listesi!B3; şeklinde bozulmalar olmuş bu nedenle çalışmamış. İlginiz ve Emeğiniz için tekrar teşekkür ederim.

En derin saygılarımla.
 
Üst