• DİKKAT

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

Ay bazında veri sayma.

sward175

Özel Üye
Katılım
4 Şubat 2011
Mesajlar
1,196
Excel Vers. ve Dili
Excel Vers. ve Dili:
Microsoft Office Professional Plus 2016
Herkese İyi Pazarlar,

Ekteki dosyada yıl ve ay bazında veri hesaplıyorum.
Veri fazla oluşu A1:E990000 aralığı nedeni ile hesaplama yaklaşık 5 dakikada anca sonuç veriyor.
G1 hücresinden isim değiştirdikçe hesaplama yapmak istiyorum ve bu da çok zaman alıyor.
Bu konuyu aşabilmeme için KOD yardımına ihtiyaç duyuyorum.
Bu konuda yardımlarınızı rica ederim.
Saygılarımla,
sward175
 

Ekli dosyalar

Korhan Hocam, İyi akşamlar,

Veri 990000 satır olunca aynı bilgileri alabilir miyim ?
Bu nedenle makro yardımı istedim.
Saygı ve sevgi ile,
sward175
 
Eklediğim örnek dosyadaki özet tablo bütün alanı kapsıyor. Verinizi aynı alana yapıştırıp özet tabloyu yenilerseniz sonuç alabilirsiniz. Ya da siz özet tabloyu kendi dosyanızda oluştururken alan olarak tüm satırları seçerseniz istediğiniz sonuca ulaşabilirsiniz.

Ek olarak aşağıdaki kod ile sonuca gidebilirsiniz.

Kod:
Option Explicit

Sub Rapor()
    Dim Son As Long, Veri As Variant, X As Long, Zaman As Double
    Dim Kriter As String, Y As Integer, Z As Byte
    
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    
    Zaman = Timer
    
    Son = Cells(Rows.Count, 1).End(3).Row
    
    Veri = Range("A1:E" & Son).Value
    
    Range("I3:M26").ClearContents
    
    Kriter = Range("G1").Value
    
    For X = 1 To UBound(Veri, 1)
        If Veri(X, 5) = Kriter Then
            For Y = 3 To 26
                If Veri(X, 2) = Cells(Y, "G") Then
                    If Veri(X, 4) = Cells(Y, "H") Then
                        For Z = 9 To 13
                            If Veri(X, 1) = Cells(2, Z) Then
                                Cells(Y, Z) = Cells(Y, Z) + 1
                            End If
                        Next
                    End If
                End If
            Next
        End If
    Next

    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
    
    MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & Chr(10) & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye"
End Sub
 
Korhan Bey,
Kodu uyguladım ve sonuç gayet güzel.
Teşekkürlerimi sunar nice güzel günler dilerim.
Saygılarımla,
sward175
 
Sayın, ziynettin,
İlginize teşekkürlerimi sunarım.
Çok sağ olun gayet güzel bir dosya.
saygılarımla,
sward175
 
Geri
Üst