• DİKKAT

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

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
 
Kullanıcı tanımlı fonksiyon ile yapılmıştır.
 
Veyselemre tesekkurler yalniz bos hucrelere 1 degerini veriyor bunu nasil asabilirim. bos hucreler 0 degerini almasi gerekiyor
 
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
 
Şöyle deneyin.
Kod:
Function artiSay(adr As Range)
    FORMUL = adr.Formula
    If InStr(FORMUL, "+") Then artiSay = Len(FORMUL) - Len(Replace(FORMUL, "+", "")) + 1
End Function
 
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.
 
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
 
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.
 
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
 
Geri
Üst