İşaretlediğim yerlerden Toplam Alsın

Katılım
3 Nisan 2007
Mesajlar
65
Excel Vers. ve Dili
Office 2003 Tr ve 2007 Tr
Arkadaşlar A sütünununda değişik rakamlar var ( oldukça çok sayıda olduğunu düşünün 2 bin satır gibi).Ben B sütununda bazı satırlara ( istediğim satırlara) işaret koyacağım, mesela 1 yazacağım. C sütununda da bir toplam fonksiyonu yazacağım ama toplam formülünün başlangıç satırı bir önceki işaretlenmiş satır, bitiş satırıda o formülün yazıldığı satır olacak.
Sanırım anlatma ile olmayacak örnek dosyaya bakarsanız sevinirim.
Ben bir fonksiyon yazdım ama hesaplama işi çok ağır oluyor.Yani daha hızlı bir çözüm lazım.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bu işlem için kullanıcı tanımlı fonksişyona bence gerek yok. Aşağıdaki kodu sayfanın kod sayfasına kopyalayın. C sütunundaki bir hücreyi çift tıkladığınızda ilgili toplamı tıklanan hücreye yazacaktır.

Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column <> 3 Then Exit Sub
Cancel = True
ilk = Cells(Target.Row, "b").End(xlUp).Row
son = Target.Row
If Target.Offset(0, -1) <> "" Then ilk = son
Target = WorksheetFunction.Sum(Range("a" & ilk & ":a" & son))
End Sub
 
Katılım
3 Nisan 2007
Mesajlar
65
Excel Vers. ve Dili
Office 2003 Tr ve 2007 Tr
Cevab&#305;n&#305;z i&#231;in te&#351;ekk&#252;rler.Fonksiyona ihtiya&#231; duymam&#305;n sebebi,&#304;&#351;aretlenecek yerlerin tespiti i&#231;in bir analiz program&#305;m yok biraz ara&#351;t&#305;rma ve deneme yan&#305;lma yolu ile nerenin i&#351;aretlenmesi gerekti&#287;ini bulabiliyorum.Bu y&#252;zden e&#351;zamanl&#305; g&#246;rmek istiyorum.Ayr&#305;ca ben her i&#351;aret koydu&#287;umda iki b&#246;lgenin de&#287;erlerinin de&#287;i&#351;mesi gerekecek.Yani hem i&#351;aretten &#246;nceki b&#246;l&#252;m&#252; biti&#351; yeri de&#287;i&#351;iyor hemde i&#351;aretten sonraki b&#246;l&#252;m&#252;n ba&#351;lang&#305;&#231; yeri de&#287;i&#351;iyor. &#304;&#351;lemler bittikten sonra yukar&#305; sat&#305;rlara tekrar d&#246;n&#252;p kontrol edip birka&#231; yeri de&#287;i&#351;tirmem gerekebiliyor.Bazende sat&#305;rlar&#305; tek tek denemem gerekiyor buda herseferinde tekrar tekrar makro &#231;al&#305;&#351;t&#305;rmam&#305; gerektiriyor.

Makro kullanmak istemeyi&#351;imin bir sebebi de Makro kulland&#305;ktan sonra excelde undo/geri al yapasm&#305;yorsunuz. Buda benim i&#231;in ayr&#305; bir dezavantaj.
 
Katılım
7 Ocak 2007
Mesajlar
263
Excel Vers. ve Dili
Excel 2003 (US),
Excel 2010 (US)
Cevabınız için teşekkürler.Fonksiyona ihtiyaç duymamın sebebi,İşaretlenecek yerlerin tespiti için bir analiz programım yok biraz araştırma ve deneme yanılma yolu ile nerenin işaretlenmesi gerektiğini bulabiliyorum.Bu yüzden eşzamanlı görmek istiyorum.Ayrıca ben her işaret koyduğumda iki bölgenin değerlerinin değişmesi gerekecek.Yani hem işaretten önceki bölümü bitiş yeri değişiyor hemde işaretten sonraki bölümün başlangıç yeri değişiyor. İşlemler bittikten sonra yukarı satırlara tekrar dönüp kontrol edip birkaç yeri değiştirmem gerekebiliyor.Bazende satırları tek tek denemem gerekiyor buda herseferinde tekrar tekrar makro çalıştırmamı gerektiriyor.

Makro kullanmak istemeyişimin bir sebebi de Makro kullandıktan sonra excelde undo/geri al yapasmıyorsunuz. Buda benim için ayrı bir dezavantaj.
C2:

Kod:
[/FONT]
[FONT=Lucida Console][/FONT] 
[FONT=Lucida Console]=IF(ROWS($E$1:E2)>MATCH(9.99999999999999E+307,$B$1:B1),[/FONT]
[FONT=Lucida Console]    SUM(A2,IF(B2="",C1,0)),[/FONT]
[FONT=Lucida Console]    "")

Kod:
[/FONT]
[FONT=Lucida Console][SIZE=1][B]=EĞER(SATIRSAY($E$1:E2)>KAÇINCI(9,99999999999999E+307;$B$1:B1);[/B][/SIZE][/FONT]
[FONT=Lucida Console][SIZE=1][B]      TOPLA(A2;EĞER(B2="";C1;0));[/B][/SIZE][/FONT]
[FONT=Lucida Console][SIZE=1][B]      "")[/B][/SIZE]
 
Katılım
3 Nisan 2007
Mesajlar
65
Excel Vers. ve Dili
Office 2003 Tr ve 2007 Tr
&#304;&#351;te Budur !!! Sn a.akyurek &#231;ok te&#351;ekk&#252;rler.Sistem &#231;al&#305;&#351;&#305;yor.

Form&#252;l&#252;n can alan k&#305;sm&#305; TOPLA(A2;E&#286;ER(B2="";C1;0)) b&#246;l&#252;m&#252; san&#305;r&#305;m. Topla i&#231;ine b&#246;yle e&#287;er yaz&#305;ld&#305;&#287;&#305;n&#305; ilk defa g&#246;r&#252;yorum ( ya iki g&#252;n oldu foruma gireli neler &#246;&#287;rendim neler , Allah bu forumdan ve bu foruma can veren sizlerden raz&#305; olsun )

SATIRSAY($E$1:E2)>KA&#199;INCI(9,99999999999999E+307;$B$1:B1) s&#305;namas&#305; gereklimi. Herdurumda yanl&#305;&#351; d&#246;n&#252;yor ve TOPLA(A2;E&#286;ER(B2="";C1;0)) k&#305;sm&#305; &#231;al&#305;&#351;&#305;yor. Bu s&#305;namaya neden ihtiya&#231; duydunuz ?
 
Son düzenleme:
Katılım
7 Ocak 2007
Mesajlar
263
Excel Vers. ve Dili
Excel 2003 (US),
Excel 2010 (US)
İşte Budur !!! Sn a.akyurek çok teşekkürler.Sistem çalışıyor.

Formülün can alan kısmı TOPLA(A2;EĞER(B2="";C1;0)) bölümü sanırım. Topla içine böyle eğer yazıldığını ilk defa görüyorum ( ya iki gün oldu foruma gireli neler öğrendim neler , Allah bu forumdan ve bu foruma can veren sizlerden razı olsun )

SATIRSAY($E$1:E2)>KAÇINCI(9,99999999999999E+307;$B$1:B1) sınaması gereklimi. Herdurumda yanlış dönüyor ve TOPLA(A2;EĞER(B2="";C1;0)) kısmı çalışıyor. Bu sınamaya neden ihtiyaç duydunuz ?
Haklısın...

=TOPLA(A2;EĞER(B2="";C1;0))

yeterli.
 
Katılım
3 Nisan 2007
Mesajlar
65
Excel Vers. ve Dili
Office 2003 Tr ve 2007 Tr
Tekrar te&#351;ekk&#252;rler
 
Üst