• DİKKAT

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

Hücre içinde toplanan sayıları saydırma

Katılım
17 Mart 2011
Mesajlar
8
Excel Vers. ve Dili
2007
a1 Hücresinde =10,5+12,8+11,3+14,5 böyle bir veri olduğunu düşünelim.

b2 hücresinde "a1" de kaç tane sayının toplandığını nasıl gösterebiliriz. B2 "4" sayısını vermeli
 
Merhaba,

Aşağıdaki kodları ilgili sayfanın kod bölümüne kopyalayıp dener misiniz ?
A sütununda değişik olduğunda B sütununa yanıtı yazacaktır.

Tam deneyemedim, sonucu bildiriniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
 
    If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
    If Target.HasFormula = False Then Exit Sub
 
    Dim s   As String
    Dim c
 
    s = Target.Formula
    s = Replace(Replace(Replace(Replace(s, "+", " "), "-", " "), "/", " "), "*", " ")
    c = Split(s, " ")
    Target.Offset(0, 1) = UBound(c) + 1
 
End Sub
 
Ben de KTF ile bir çözüm ekleyeyim.
Formülü
Kod:
=KacRakam(A1)
şeklinde kullanabilirsiniz.
Kod:
Public Function KacRakam(Formul As Range)
    Metin = Formul.Formula
    For i = 1 To Len(Metin)
        If Mid(Metin, i, 1) = "+" Then c = c + 1
    Next
    KacRakam = c + 1
End Function
 
Ornek dosyasında belirttim kod sadece tek hücrede çalıştı sarı ile boyadığım yerlerde de çalışması lazım
 

Ekli dosyalar

Bir de verdiğim fonksiyonu deneyin. Ufak bir değişiklik yaptım.
Kod:
Public Function KacRakam(Formul As Range)
    Metin = Formul.Formula
    For i = 1 To Len(Metin)
        If Mid(Metin, i, 1) = "+" Then c = c + 1
    Next
    KacRakam = IIf(c = 0, 0, c + 1)
End Function
 
Geri
Üst