• DİKKAT

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

Satırlarda yinelenen kelimeleri sayma

Katılım
6 Kasım 2008
Mesajlar
6
Excel Vers. ve Dili
2003
Yaklaşık 136.000 satırlık bir listem var ve ben bu listedeki malzemeleri tek tek saymak istiyorum. Malzeme çeşidi oldukça fazla. Ekte gönderğim örnekte yer alan malzemeleri saymak için formülü bulamadım. yardımcı olabilirmisiniz
 

Ekli dosyalar

Malzemeleri nasıl sayacaksınız? Tablonun neresinde nasıl bir sonuç görmek istiyorsunuz?
 
Aynı ya da farklı sayfada nasıl bir sonuç görmek istiyorsunuz? Örnek dosyanızdan bir şey anlaşılmıyor.

Bir öndeki mesajınızı görmeden yukardaki mesajı yazmıştım. Yeni dosyanızı sonradan gördüm. Yani yapmak istediğiniz B sütununda hücre içinde bulunan tüm kelimeleri ayrı hücrelerde yazmak ve bunlardan aynı olanları eleyerek her birinden bir adet bırakmak mı? Eğer öyleyse yapabileceğimi sanmıyorum maalesef.
 
Merhaba,

J sütununda bulunan aynı kelimeleri 10 adetle sınırlamak istiyorum.

Şöyle;
J8:J150 hücrelerine "MASA", "SANDALYE" gibi kelimeler yazacağım. H8:H150 hücrelerinde de adetler olacak. Örneğin "MASA" sayısı 10 olduğunda, "MASA limiti doldu" gibi uyarı vermesini istiyorum. Bunu nasıl yaparım?

Teşekkürler.
 
Son düzenleme:
Sayfanızın kod bölümüne aşağıdaki kodu uygulayıp deneyiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("J8:J150,H8:H150")) Is Nothing Then Exit Sub
    Say = WorksheetFunction.SumIf(Range("J:J"), Cells(Target.Row, "J"), Range("H:H"))
    If Say > 10 Then
        MsgBox Cells(Target.Row, "J") & " limiti doldu!", vbCritical
        Cells(Target.Row, "H") = ""
        Cells(Target.Row, "J") = ""
        Exit Sub
    End If
End Sub
 
Teşekkür ederim Korhan bey.
Elinize sağlık.
 
Yaklaşık 136.000 satırlık bir listem var ve ben bu listedeki malzemeleri tek tek saymak istiyorum. Malzeme çeşidi oldukça fazla. Ekte gönderğim örnekte yer alan malzemeleri saymak için formülü bulamadım. yardımcı olabilirmisiniz

Merhaba,

Aşağıdaki kodları bir modüle kopyalayın ve çalıştırın.

Kod:
Sub ozet()

    Dim d
    Dim i As Long
    Dim j As Integer
    Dim k As Integer
    Dim s
    Dim deg As Variant
    Dim a1
    Dim a2
    
    Set d = CreateObject("Scripting.Dictionary")
    Application.ScreenUpdating = False
    i = Cells(Rows.Count, "F").End(3).Row
    If i < 2 Then i = 2
    Range("F2:G" & i).ClearContents
    
    For i = 2 To Cells(Rows.Count, "B").End(3).Row
    
        s = Split(Cells(i, "B"), ";")
        For j = 0 To UBound(s)
            deg = UCase(Replace(Replace(Trim(s(j)), "i", "İ"), "ı", "I"))
            If Not d.exists(deg) Then
                d.Add deg, 1
            Else
                k = d.Item(deg)
                k = k + 1
                d.Item(deg) = k
            End If
        Next j
    Next i
    
    a1 = d.keys
    a2 = d.items
    
    For i = 0 To d.Count - 1
        Cells(i + 2, "F") = a1(i)
        Cells(i + 2, "G") = a2(i)
    Next i
    
    Application.ScreenUpdating = True
    MsgBox "İşlem Tamam..."
    
End Sub
 
Geri
Üst