• DİKKAT

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

metin içindeki sayıları sayma

Katılım
26 Mart 2008
Mesajlar
22
Excel Vers. ve Dili
excel 2000
A1 3-5-8-9-12
A2 2-7-9-10
A3 1-3

hücrelerin içindeki - işareti ile ayrılmış sayıları sayabilirmiyiz.
Örnek 1 1 adet
2 1 adet
3 2 adet

=EĞERSAY(A1:A3;"*"&1&"*") formulü ile saymayı yaptırdım fakat 1 sayısı hem 10 hemde 11 de olduğu için sonucunu hatalı alıyorum 2,3,4 gibi sayıları o sayılarla başlayan başka sayı olmadığından doğru sonuç veriyor.
 
Merhaba,

"A" sütununda verileriniz olduğunu varsayarsak;

C1 hücresinde saydırmak istediğiniz değer girin.

D1 hücresine aşağıdaki formülü uygulayın.

Kod:
=TOPLA.ÇARPIM(--ESAYIYSA(MBUL("-"&C1&"-";"-"&$A$1:$A$1000&"-")))
 
çok çok teşekkür ederim baya uğraşmış çözememiştim elinize sağlık
 
Korhan hocam hücrede aynı sayıdan iki tane olursa saymıyor.Yapmak için uğraştım ama olmadı.
 
Merhaba,


Kendimce bir şeyler yaptım inceleyebilirmisiniz.
 

Ekli dosyalar

Vedat bey merhaba,

Aynı hücrede iki kere aynı değer geçerse onu saymıyor.
 
Merhabalar,

İstemiş olduğunuz şekilde formülü buldum ama küçük bir sıkıntı ile karşılaşıyorum.

Şöyleki 2 rakamı sayıya aynı zamanda 12 rakamını gördüğün burda 2 rakamını sayıyo..

Takıldığım nokta..

Sizde müsayitseniz bi bakabilirmisiniz bu konu kafama takıldı

Dizi Formül,

Kod:
=TOPLA(UZUNLUK($A$2:$A$8)-UZUNLUK(YERİNEKOY($A$2:$A$8;E1;"")))/UZUNLUK(E1)
 
Merhabalar,
Deneyiniz.
Kod:
=TOPLA.ÇARPIM(UZUNLUK("-"&A1:A10&"-")-
  UZUNLUK(YERİNEKOY("-"&A1:A10&"-";"-"&C1&"-";"")))/
    (UZUNLUK(C1)+2)
Arayacağımız kriter C1 hücresinde olması gerekmektedir.
 
Merhaba,

Aşağıdaki formülde hücrede mükerrer geçenlerde dahil c1'deki değer kaç defa geçtiyse buluyor ama bunuda topla.çarpım ile bütün hücrelere yapamadım. Sadece bir hücre için geçerli, ondan sonra çıkan sonuçları başka bir hücrede toplamak gerekiyor.

=TOPLA(EĞER(SIKLIK(EĞER(ESAYIYSA(MBUL("-"&$C$1&"-";"-"&A1&"-";SATIR(DOLAYLI("1:"&UZUNLUK(A1)))));MBUL("-"&$C$1&"-";"-"&A1&"-";SATIR(DOLAYLI("1:"&UZUNLUK(A1)))));EĞER(ESAYIYSA(MBUL("-"&$C$1&"-";"-"&A1&"-";SATIR(DOLAYLI("1:"&UZUNLUK(A1)))));MBUL("-"&$C$1&"-";"-"&A1&"-";SATIR(DOLAYLI("1:"&UZUNLUK(A1))))))>0;1))
 
Merhabalar,
Deneyiniz.
Kod:
=TOPLA.ÇARPIM(UZUNLUK("-"&A1:A10&"-")-
  UZUNLUK(YERİNEKOY("-"&A1:A10&"-";"-"&C1&"-";"")))/
    (UZUNLUK(C1)+2)
Arayacağımız kriter C1 hücresinde olması gerekmektedir.

Sayın bzace merhaba,

Değer hücrede 3 defa geçerse hesaplamıyor.
 
Merhabalar,

İstemiş olduğunuz şekilde formülü buldum ama küçük bir sıkıntı ile karşılaşıyorum.

Şöyleki 2 rakamı sayıya aynı zamanda 12 rakamını gördüğün burda 2 rakamını sayıyo..

Takıldığım nokta..

Sizde müsayitseniz bi bakabilirmisiniz bu konu kafama takıldı

Dizi Formül,

Kod:
=TOPLA(UZUNLUK($A$2:$A$8)-UZUNLUK(YERİNEKOY($A$2:$A$8;E1;"")))/UZUNLUK(E1)

Vedat bey dediğiniz gibi bir sorun var, hala uğraşıyorum.
 
Son düzenleme:
Dener misiniz?
Kod:
=TOPLA.ÇARPIM(UZUNLUK(YERİNEKOY("-"&A1:A10&"-";"-";"--"))-
  UZUNLUK(YERİNEKOY(YERİNEKOY("-"&A1:A10&"-";"-";"--");
    "-"&C1&"-";"")))/(UZUNLUK(C1)+2)

Daxe Syán
 
Son düzenleme:
Merhaba

Bende farklı bir boyut getireyim konuya.
Makro ile array yolu ile çözmeye çalışırken split hata mesajı veriyor.Neden olabilir.
Kod:
Sub arry()
Dim arr() As Variant
        txt = WorksheetFunction.Substitute(Cells(1, "d"), "-", " ")
        'txt1 = "a-" & Cells(1, "d")
        ' arr = Split(txt, "-")
arr = Split(Range("d1"), "-")
                
 For i = LBound(arr) To UBound(arr)
 
 Cells(i + 1, "E") = arr(i)
 Next i
End Sub
 

Ekli dosyalar

kod ile çözüm A sütunundaki bilgileri B ve C sütununa aktarıyor.

Kod:
Sub Gruplandir()

ZBasla = TimeValue(Now)
zaman = Timer

sat = 1
say1 = 0
Range("b2:c" & Rows.Count).Clear

Cells(1, 3).Value = "Adet"
Cells(1, 2).Value = "Sayı"

ReDim ara1(Rows.Count): ReDim ara2(Rows.Count):

For j = 1 To Cells(Rows.Count, "a").End(3).Row

If UBound(Split(Cells(j, 1).Value, "-")) > 0 Then
hucre = Cells(j, 1).Value & "-"
deg1 = Split(hucre, "-")
For t = 1 To UBound(deg1)
say1 = say1 + 1
ara1(say1) = deg1(t - 1)
ara2(say1) = 1
Next t
End If
Next j

   
If say1 = 0 Then GoSub atla


        For r = 1 To say1
        aranan1 = ara1(r)

        deg2 = 0
        If ara2(r) = 1 Then
       
            For i = r To say1
            If ara1(i) = aranan1 Then
            deg2 = deg2 + 1
            ara2(i) = 0
            End If
            Next i
        
         sat = sat + 1
         Cells(sat, 3).Value = deg2
         Cells(sat, 2).Value = aranan1
       
     
        End If
        Next r
        
atla:
zBitis = TimeValue(Now)

MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & _
"İşlem süresi ; " & Format(Timer - zaman, "0.00") & Chr(10) & _
"Geçen Süre " & CDate(zBitis - ZBasla), vbInformation, " Sonuç Penceresi"

End Sub
 
kod ile çözüm A sütunundaki bilgileri B ve C sütununa aktarıyor.
Halit bey elinize sağlık kodlar çok güzel çalışıyor.
Sizce benim kodlarda ( arr = Split(txt, "-") ) neden tip13 hata mesaji veriyor.
 
15 nolu mesajınızdaki tanımlamadan (değişken)
kaynaklanıyor
kırmızı yerleri silerek deneyiniz
D1 hücresindede veri olmalı
Teşekkürler,
hiç tanımlama yapmazsamda oluyormuş.
 
Merhaba,

Bende KTF yapmak istedim ama aşağıdaki kodda 17-17-11 sadece bu kombinasyonda hatalı sonuç veriyor b ile if'deki değer aynı olmasına rağmen toplama işlemine giriyor. C1'deki değeri 17 varsayalım.

Kod:
Sub asd()
On Error Resume Next

son = Cells(Rows.Count, "A").End(3).Row
Dim c As String

c = Range("c1")
For t = 1 To son
For i = 1 To Len(Cells(t, "a")) - 1

Z = WorksheetFunction.Search("-" & c & "-", "-" & Cells(t, "a") & "-", i)

If Z <> Empty Then

If WorksheetFunction.Search("-" & c & "-", "-" & Cells(t, "a") & "-", i) <> b Then

k = k + 1
End If
End If

b = WorksheetFunction.Search("-" & c & "-", "-" & Cells(t, "a") & "-", i)

Next i
Next t
MsgBox k

On Error GoTo 0

End Sub
 
Geri
Üst