Excelldeki sütundaki veriye ve rengine göre sayma

ftoy30

Altın Üye
Katılım
3 Şubat 2008
Mesajlar
69
Excel Vers. ve Dili
2010-Türkçe
Altın Üyelik Bitiş Tarihi
25-03-2027
Merhaba; ben excellde çok profosyonel değilim. Açılmış konulara baktım tam olarak aradığımı bulamadım.Bir excell tablosunda A sütununda örnek malzeme isimleri var. Benim istediğim A sütunundaki isimleri alsın C sütununa yazsın ama aynı isimde olanları bir defa yasın.D sütununda bu malzemelerin toplam sayısını alsın.(Örnek kalem başlığı altında toplam 5 kayıt var. C sütununa Kalemi 1 defa yazsın, ama D sütununda Kalem altında 5 kayıt olduğunu göstersin). E sütununa da A sütununda sarı ile boyalı olanların sayısını yazsın.( Kalem başlığında toplam 5 kayıt var ama bunlardan 2 tanesi sarı boyalı) Kalem örneğinden gidersek özetle, C sütununa Kalem, D sütuna 5, E sütununa 2 yazsın. Şimdiden yardımlarınız için teşekkür ederim. Örnek için Dosya eklemek istiyorum ama sanırım dosya eklemek için altın üyelik istiyor. Bu şekilde yardımcı olabilirseniz sevinirim.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,642
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub satirlardakiVerileriSutunlaraAktarSarıRenkSay()

    Set dic = CreateObject("Scripting.Dictionary")
    Range("C:E").ClearContents
    
    With dic
        For i = 2 To Cells(Rows.Count, 1).End(3).Row
            
            anahtar = Cells(i, 1).Value
            renk = False
            
            If Cells(i, 1).Interior.Color = vbYellow Then renk = True
            
            If Not .exists(anahtar) Then
                mx = mx + 1
                .Add anahtar, mx
                Cells(mx, "C") = anahtar
            End If
            
            sat = .Item(anahtar)
            Cells(sat, "D").Value = Cells(sat, "D").Value + 1
            
            If renk Then Cells(sat, "E").Value = Cells(sat, "E").Value + 1
        
        Next i

    End With

    Set dic = Nothing

End Sub
 

ftoy30

Altın Üye
Katılım
3 Şubat 2008
Mesajlar
69
Excel Vers. ve Dili
2010-Türkçe
Altın Üyelik Bitiş Tarihi
25-03-2027

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,642
Excel Vers. ve Dili
Pro Plus 2021
Örneğinize uyarlanmış hali,
Kod:
Sub satirlardakiVerileriSutunlaraAktarSarıRenkSay()

    Set dic = CreateObject("Scripting.Dictionary")
    Range("D2:F" & Rows.Count).ClearContents
        mx = 2
    With dic
        For i = 3 To Cells(Rows.Count, 1).End(3).Row

            anahtar = Cells(i, 1).Value
            renk = False

            If Cells(i, 1).Interior.Color = vbYellow Then renk = True

            If Not .exists(anahtar) Then
                .Add anahtar, mx
                Cells(mx, "D") = anahtar
                mx = mx + 1
            End If

            sat = .Item(anahtar)
            Cells(sat, "E").Value = Cells(sat, "E").Value + 1

            If renk Then Cells(sat, "F").Value = Cells(sat, "f").Value + 1

        Next i

    End With

    Set dic = Nothing

End Sub
 

ftoy30

Altın Üye
Katılım
3 Şubat 2008
Mesajlar
69
Excel Vers. ve Dili
2010-Türkçe
Altın Üyelik Bitiş Tarihi
25-03-2027
Örneğinize uyarlanmış hali,
Kod:
Sub satirlardakiVerileriSutunlaraAktarSarıRenkSay()

    Set dic = CreateObject("Scripting.Dictionary")
    Range("D2:F" & Rows.Count).ClearContents
        mx = 2
    With dic
        For i = 3 To Cells(Rows.Count, 1).End(3).Row

            anahtar = Cells(i, 1).Value
            renk = False

            If Cells(i, 1).Interior.Color = vbYellow Then renk = True

            If Not .exists(anahtar) Then
                .Add anahtar, mx
                Cells(mx, "D") = anahtar
                mx = mx + 1
            End If

            sat = .Item(anahtar)
            Cells(sat, "E").Value = Cells(sat, "E").Value + 1

            If renk Then Cells(sat, "F").Value = Cells(sat, "f").Value + 1

        Next i

    End With

    Set dic = Nothing

End Sub

Çok teşekkür ederim. Çalıştı. Peki başka bir şey sormak istiyorum. Bu makroyu başka bir excelde verilerin farklı sütunlarda ya da satırlarda kullanmam gerekirse bu kod üzerinde nereleri değiştirmem gerekir. Bu konuda da bilgi verebilir misiniz?
 
Üst