• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Cok uzun bir dizi formulunu macro olarak çalıştırmak

Katılım
29 Mayıs 2006
Mesajlar
39
AŞAĞIDAKİ FORMULU -FormulaR1C1- macroda problemsiz olarak çalıştırabilmeme ragmen -FormulaArray- olarak çalıştır deyince hata vermekte biraz uzun ve karısk oldu ama tek formulle hesaplama yapmam gerekiyor tabloda yerim cok dar bunu nasıl çözerim???

formulun dizi formulu olarak çalışması gerekmekte

formuldeki karakter sayısı 700 e yakın...




Cells(3, 5).FormulaR1C1 = _
"=IF(FIND("" "",RC1,1)=4,SUM(IF(LEFT(DEVAMHAT,FIND(""-"",DEVAMHAT,1)-1)=LEFT(RC1,4),IF(DEVAMTUR=""RL"",DEVAMSAAT,0),0),IF(LEFT(DEVAMHAT,FIND(""-"",DEVAMHAT,1)-1)=LEFT(RC1,4),IF(DEVAMTUR=""RS"",DEVAMSAAT,0),0),IF(LEFT(DEVAMHAT,FIND(""-"",DEVAMHAT,1)-1)=LEFT(RC1,4),IF(DEVAMTUR=""GS"",DEVAMSAAT,0),0),IF(LEFT(DEVAMHAT,FIND(""-"",DEVAMHAT,1)-1)=LEFT(RC1,4),IF(DEVAMTUR=""SS"",DEVAMSAAT,0),0)),SUM(IF(LEFT(DEVAMHAT,FIND(""-"",DEVAMHAT,1)-1)=RC1,IF(DEVAMTUR=""RL"",DEVAMSAAT,0),0),IF(LEFT(DEVAMHAT,FIND(""-"",DEVAMHAT,1)-1)=RC1,IF(DEVAMTUR=""RS"",DEVAMSAAT,0),0),IF(LEFT(DEVAMHAT,FIND(""-"",DEVAMHAT,1)-1)=RC1,IF(DEVAMTUR=""GS"",DEVAMSAAT,0),0),IF(LEFT(DEVAMHAT,FIND(""-"",DEVAMHAT,1)-1)=RC1,IF(DEVAMTUR=""SS"",DEVAMSAAT,0),0)))"
 
Merhaba,

Formüldeki yapmak istediğinizi örnek dosya ekleyerek tüm şartlarıyla açıklarmısınız. Belki daha kısa bir formül yazılabilir.

.
 
AŞAĞIDAKİ FORMULU -FormulaR1C1- macroda problemsiz olarak çalıştırabilmeme ragmen -FormulaArray- olarak çalıştır deyince hata vermekte biraz uzun ve karısk oldu ama tek formulle hesaplama yapmam gerekiyor tabloda yerim cok dar bunu nasıl çözerim???

formulun dizi formulu olarak çalışması gerekmekte

formuldeki karakter sayısı 700 e yakın...




Cells(3, 5).FormulaR1C1 = _
"=IF(FIND("" "",RC1,1)=4,SUM(IF(LEFT(DEVAMHAT,FIND(""-"",DEVAMHAT,1)-1)=LEFT(RC1,4),IF(DEVAMTUR=""RL"",DEVAMSAAT,0),0),IF(LEFT(DEVAMHAT,FIND(""-"",DEVAMHAT,1)-1)=LEFT(RC1,4),IF(DEVAMTUR=""RS"",DEVAMSAAT,0),0),IF(LEFT(DEVAMHAT,FIND(""-"",DEVAMHAT,1)-1)=LEFT(RC1,4),IF(DEVAMTUR=""GS"",DEVAMSAAT,0),0),IF(LEFT(DEVAMHAT,FIND(""-"",DEVAMHAT,1)-1)=LEFT(RC1,4),IF(DEVAMTUR=""SS"",DEVAMSAAT,0),0)),SUM(IF(LEFT(DEVAMHAT,FIND(""-"",DEVAMHAT,1)-1)=RC1,IF(DEVAMTUR=""RL"",DEVAMSAAT,0),0),IF(LEFT(DEVAMHAT,FIND(""-"",DEVAMHAT,1)-1)=RC1,IF(DEVAMTUR=""RS"",DEVAMSAAT,0),0),IF(LEFT(DEVAMHAT,FIND(""-"",DEVAMHAT,1)-1)=RC1,IF(DEVAMTUR=""GS"",DEVAMSAAT,0),0),IF(LEFT(DEVAMHAT,FIND(""-"",DEVAMHAT,1)-1)=RC1,IF(DEVAMTUR=""SS"",DEVAMSAAT,0),0)))"

Bu formulle tam olarak ne yapmak istiyorsunuz örnek dosya ile anlatabilirmisiniz. bu formule bakarak cözmek biraz zor:)
 
oncelikle ilginiz için tesekkur ederim

dosya ekte formulu uzunlugundan da anlasılacagı uzere işler biraz karısık bakalım anlatabilecek miyim..

kısıtlarım:

her 2 sayfada da herhangi bir değişiklik yapamıyorum
HR3020 sayfası baska bir programdan cekilen data
DEVAM sayfası benzer tablolar olan bir btunun parçası oradan baska yerlere veri gidiyor.

DEVAM sayfası A:A kolonundaki veriler hat kodları tum kodlar 5 karakterden olusuyor yani A12 kodunun yanında 2 bosluk var

HR3020 sayfası K:K sutununda hat kodları ve hat adları beraber yazılmıs o yuzden soldan belirli bir parça alarak oradan hat kodlarını cekmem gerekiyor.

K:K sutunundaki problem "A12 - hat adı" olarak yazılmıs yani A12 den sonra 1 bosluk var 4 karakterli bir hat kodundan sonrada 1 bosluk var yani DEVAM tablomdaki kodların yarısıyla uysuyor yarısıyla uyuşmuyor

AMAÇ:

HR3020 tablosundaki J:J kolonundaki degerleri hat bazında toplamak fakat buradki asılması gereken problem de oradaki degelerin tamamına ihtiyacım yok sadece F:F kolonuda belirtilen
"RL" "RS" "GS" ve "SS" olanlara ihtiyacım var.

formulu normal excel sayfasında olustrdugum zaman dogru sonucları alıyorum. formul cok agır oldugundan hesaplama yapması uzun suruyor sistemimi cok yavaslatıyor o sebeple bunu macro calıştırıp degerleri hesapladıktan sonra formulleri kaldırmasını istiyorum. excel 256 karakterden fazlasını macro recorder la alamdıgından elle yazdım hata verdi. R1C1 olarak değiştirdiğimde formul düzgün çalışıyor ama bana dizi formulu lazım

umarım açıklayabilmişimdir

okuyan herkese ve yardımcı olabilecek tum arkadaşlara simdiden tesekkürler...
 

Ekli dosyalar

Merhaba Ekteki dosyayı bir incelermisiniz. bu şekilde işinize yararmı yoksa başka bir çözüm bulmaya çalışalım.
 

Ekli dosyalar

sayın huseyınkıs oncelikle tesekkür ederim

ama her 2 sayfada da değişiklik yapamıyorum gonderdiğim sayfalar baska bir programın sadece 2 sayfası zaten oyuzden cok uzun ve karısık bir dizi formulune gitmek durumunda kaldım...


problem formul -formulaarray- olarak çalıştıramamadan kaynaklanıyor -formulaR1C1- olarak yazınca calısıyor ama dizi formulu olmadıgından hatalı sonuç veriyor
 
Geri
Üst