Makroda Uzun Dizi Formülü

Katılım
18 Aralık 2011
Mesajlar
89
Excel Vers. ve Dili
office 2010 tr
Makroda dizi formülü kullanacağım ama uzun olduğu için formülü alt satırlara yayıp bazı kısımlarınıda kırpıyor, çıkamadım içinden, yardımcı olabilir misiniz?
formül şöyle
={EĞER(EHATALIYSA(SAYIYAÇEVİR(EĞER(EĞER(SATIRSAY(E$100:E100)>EĞERSAY($D$7:$D$99;"En İyi 1. Teklif");"";İNDİS(E$7:E$99;KÜÇÜK(EĞER($D$7:$D$99="En İyi 1. Teklif";SATIR(E$7:E$99)-SATIR(E$7)+1);SATIRSAY($D$100:E100))))="";"";PARÇAAL(EĞER(SATIRSAY(E$100:E100)>EĞERSAY($D$7:$D$99;"En İyi 1. Teklif");"";İNDİS(E$7:E$99;KÜÇÜK(EĞER($D$7:$D$99="En İyi 1. Teklif";SATIR(E$7:E$99)-SATIR(E$7)+1);SATIRSAY($D$100:E100))));1;MBUL(" ";EĞER(SATIRSAY(E$100:E100)>EĞERSAY($D$7:$D$99;"En İyi 1. Teklif");"";İNDİS(E$7:E$99;KÜÇÜK(EĞER($D$7:$D$99="En İyi 1. Teklif";SATIR(E$7:E$99)-SATIR(E$7)+1);SATIRSAY($D$100:E100))));1)-1))));"";SAYIYAÇEVİR(EĞER(EĞER(SATIRSAY(E$100:E100)>EĞERSAY($D$7:$D$99;"En İyi 1. Teklif");"";İNDİS(E$7:E$99;KÜÇÜK(EĞER($D$7:$D$99="En İyi 1. Teklif";SATIR(E$7:E$99)-SATIR(E$7)+1);SATIRSAY($D$100:E100))))="";"";PARÇAAL(EĞER(SATIRSAY(E$100:E100)>EĞERSAY($D$7:$D$99;"En İyi 1. Teklif");"";İNDİS(E$7:E$99;KÜÇÜK(EĞER($D$7:$D$99="En İyi 1. Teklif";SATIR(E$7:E$99)-SATIR(E$7)+1);SATIRSAY($D$100:E100))));1;MBUL(" ";EĞER(SATIRSAY(E$100:E100)>EĞERSAY($D$7:$D$99;"En İyi 1. Teklif");"";İNDİS(E$7:E$99;KÜÇÜK(EĞER($D$7:$D$99="En İyi 1. Teklif";SATIR(E$7:E$99)-SATIR(E$7)+1);SATIRSAY($D$100:E100))));1)-1))))}
makroda şöyle
Range("E100").Select
Selection.FormulaArray = _
"=IF(ISERROR(VALUE(IF(IF(ROWS(R100C:RC)>COUNTIF(R7C4:R99C4,""En İyi 1. Teklif""),"""",INDEX(R7C:R99C,SMALL(IF(R7C4:R99C4=""En İyi 1. Teklif"",ROW(R7C:R99C)-ROW(R7C)+1),ROWS(R100C4:RC))))="""","""",MID(IF(ROWS(R100C:RC)>COUNTIF(R7C4:R99C4,""En İyi 1. Teklif""),"""",INDEX(R7C:R99C,SMALL(IF(R7C4:R99C4=""En İyi 1. Teklif"",ROW(R7C:R99C)-ROW(R7C)+1),ROWS(R100C4:RC)))),1,S" & _
" "",IF(ROWS(R100C:RC)>COUNTIF(R7C4:R99C4,""En İyi 1. Teklif""),"""",INDEX(R7C:R99C,SMALL(IF(R7C4:R99C4=""En İyi 1. Teklif"",ROW(R7C:R99C)-ROW(R7C)+1),ROWS(R100C4:RC)))),1)-1)))),"""",VALUE(IF(IF(ROWS(R100C:RC)>COUNTIF(R7C4:R99C4,""En İyi 1. Teklif""),"""",INDEX(R7C:R99C,SMALL(IF(R7C4:R99C4=""En İyi 1. Teklif"",ROW(R7C:R99C)-ROW(R7C)+1),ROWS(R100C4:RC))))="""","""",M" & _
"S(R100C:RC)>COUNTIF(R7C4:R99C4,""En İyi 1. Teklif""),"""",INDEX(R7C:R99C,SMALL(IF(R7C4:R99C4=""En İyi 1. Teklif"",ROW(R7C:R99C)-ROW(R7C)+1),ROWS(R100C4:RC)))),1,SEARCH("" "",IF(ROWS(R100C:RC)>COUNTIF(R7C4:R99C4,""En İyi 1. Teklif""),"""",INDEX(R7C:R99C,SMALL(IF(R7C4:R99C4=""En İyi 1. Teklif"",ROW(R7C:R99C)-ROW(R7C)+1),ROWS(R100C4:RC)))),1)-1))))"
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,235
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Maalesef uzun formüller VBE bölümünde sorun çıkarıyor. Formülü makro içine adapte etmek yerine yeni tasarlanacak kodlamayı kullanmak daha akıllıca olacaktır.

Yani formülü bırakıp, formülün ürettiği sonucu makro ile yaptırmayı deneyin.
 
Üst