Hucre icindeki toplam adeti

Katılım
29 Temmuz 2007
Mesajlar
19
Excel Vers. ve Dili
office 2003
iyi gunler ben hucre icindeki yapilan toplam adetini bulmak istiyorum bunu nasil yapabilirim
ornegin A1 hucresi: +12+25+36+49+86+18+25+46
ben bu hucre icindeki yapilan toplam adetini ( sonuc 8) bulmak istiyorum bunu nasil yapabilirim. tesekkurler
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Kullanıcı tanımlı fonksiyon ile yapılmıştır.
 
Katılım
29 Temmuz 2007
Mesajlar
19
Excel Vers. ve Dili
office 2003
Veyselemre tesekkurler yalniz bos hucrelere 1 degerini veriyor bunu nasil asabilirim. bos hucreler 0 degerini almasi gerekiyor
 

AS3434

Özel Üye
Katılım
13 Ocak 2005
Mesajlar
1,820
Excel Vers. ve Dili
M.Office/Excel 2007 Türkçe
Makro dışında şöyle bir çözüm olabilir.

Hücreye şu formülü girin.

=EĞER(A1="";"";artisay(A1))

Aslında mantık olarak yukardaki mesajınızdaki işlem sayısı 7 olması gerekiyor.
Siz 8 dediğiniz için Sayın veyselemre makroda +1 kullanmış.
+1 kısmını silerseniz bence daha doğru sonuç üretecektir.

Kod:
Function artiSay(adr As Range)
FORMUL = adr.Formula
artiSay = Len(FORMUL) - Len(Replace(FORMUL, "+", "")) + 1
End Function
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Şöyle deneyin.
Kod:
Function artiSay(adr As Range)
    FORMUL = adr.Formula
    If InStr(FORMUL, "+") Then artiSay = Len(FORMUL) - Len(Replace(FORMUL, "+", "")) + 1
End Function
 
Katılım
29 Temmuz 2007
Mesajlar
19
Excel Vers. ve Dili
office 2003
Veyselemre tesekkurler yeni verdigin formulde simdi ilk yazilan degeri gormuyor ornegi +50 yazilinca yine 0 olarak goruyor. +5+5 yazilinca duzeliyor (2) olarak gosteriyor AS3434 arkadasin verdigi formul oldu ilginize tekrar tesekkur ediyorum.
 

Korhan Ayhan

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

Sn. veyselemre beyin size önerdiği kodu aşağıdaki şekilde değiştirip denermisiniz.

Kod:
Function ARTISAY(HÜCRE As Range)
    FORMÜL = HÜCRE.Formula
    If HÜCRE = "" Then
    ARTISAY = 0
    ElseIf HÜCRE > 0 And Len(FORMÜL) - Len(Replace(FORMÜL, "+", "")) = 0 Then
    ARTISAY = 1
    ElseIf InStr(FORMÜL, "+") Then
    ARTISAY = Len(FORMÜL) - Len(Replace(FORMÜL, "+", "")) + 1
    End If
End Function
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,897
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Hücredeki değerler kesme işareti ' (SHIFT+2) ile +12+25+36+49+86+18+25+46 haline getirilirse

Kod:
=ESAYIYSA(MBUL(DAMGA(43);A1))+UZUNLUK(A1)-UZUNLUK(YERİNEKOY(A1;DAMGA(43);""))
formülü ilede hesaplayabilirsiniz.
 
Katılım
29 Temmuz 2007
Mesajlar
19
Excel Vers. ve Dili
office 2003
Selamlar,

Sn. veyselemre beyin size önerdiği kodu aşağıdaki şekilde değiştirip denermisiniz.

Kod:
Function ARTISAY(HÜCRE As Range)
    FORMÜL = HÜCRE.Formula
    If HÜCRE = "" Then
    ARTISAY = 0
    ElseIf HÜCRE > 0 And Len(FORMÜL) - Len(Replace(FORMÜL, "+", "")) = 0 Then
    ARTISAY = 1
    ElseIf InStr(FORMÜL, "+") Then
    ARTISAY = Len(FORMÜL) - Len(Replace(FORMÜL, "+", "")) + 1
    End If
End Function
-----------------------------
cok tesekkurler istedigim gibi oldu
 
Üst