• DİKKAT

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

Benzersiz Alanları Saydırma

besen

Altın Üye
Katılım
23 Mart 2007
Mesajlar
808
Excel Vers. ve Dili
Microsoft Office Professional Plus 2019
İngilizce
Merhaba ekteki tabloda detaylı açıklandığı üzre,
Günlük satış ve sipariş verileri var. Satış adetlerini saydırmak ve raporlamak kolay.
Verinin orijinal halinde aynı siparişte gelenler, ürün bazında farklı satırlara yazılıyor. O nedenle farklı ürün de olsa ben sipariş sayısını 1 olarak raporlamak istiyorum.

Teşekkür ederim.
 

Ekli dosyalar

Demek soruyu anlamamışım.

Daha fazla detaylı sorun.

Hangi hücrede hangi sonuca ulaşmak istiyorsunuz?
Bu sonuca nasıl ulaşılacak gibi birkaç elle örnek yapın.
 
Otomatik filtre yapabilirsiniz.:cool:
 
Hocam merhaba, bu formül yüzde yüz doğru çalışıyor, ancak büyük raporlarda çok ağır çalışıyor. Başka bir çözüm var mı?
Saygılar.


Pivot Table - Özet Tabloya karşı alerjiniz yoksa, Formüle bye bye deyip, bunu kullanacaksınız.

Dosyanız ekte.

.
 

Ekli dosyalar

Veri tablonuza göre listeleyen çalışma.
 

Ekli dosyalar

Veri tablonuza göre listeleyen çalışma.
Ziynettin Bey makroyu gerçek veri dosyasına göre düzeltir misiniz.
Teşekkür ederim.

Makro, 'Özet' sayfasındaki T4 - Z4 arasındaki formüle uygulanacak.
 

Ekli dosyalar

Sonuç olarak Q sütunundaki veriler getrildi.


Kod:
Sub test()
Dim s1 As Worksheet, s2 As Worksheet
Dim a(), c(), v1(), v2(), krt As String
Dim dc As Object, i As Long, j As Byte, son As Long

Set s1 = Sheets("DETAY")
Set s2 = Sheets("ÖZET")
Set dc = CreateObject("scripting.dictionary")

son = s1.Range("A" & Rows.Count).End(3).Row
If son < 2 Then Exit Sub

a = s1.Range("A1:Q" & son).Value

For i = 2 To UBound(a)
    krt = a(i, 1) & "|" & a(i, 8)
    dc(krt) = dc(krt) + a(i, 17)
Next i

son = 0
son = s2.Range("A" & Rows.Count).End(3).Row
v1 = s2.Range("A4:A" & son).Value
v2 = s2.Range("T1:Z1").Value

ReDim c(1 To UBound(v1), 1 To UBound(v2, 2))

For i = 1 To UBound(v1)
    For j = 1 To UBound(v2, 2)
        krt = v1(i, 1) & "|" & v2(1, j)
        If dc.exists(krt) Then
            c(i, j) = dc(krt)
        Else
            c(i, j) = 0
        End If
    Next j
Next i

Application.ScreenUpdating = False
s2.[T4].Resize(UBound(v1), UBound(v2, 2)).NumberFormat = _
    "_-* #,##0.00_-;-* #,##0.00_-;_-* ""-""??_-;_-@_-"
s2.[T4].Resize(UBound(v1), UBound(v2, 2)) = c
Application.ScreenUpdating = True

MsgBox "İşlem Bitti...", vbInformation
End Sub
 
Son düzenleme:
Hocam farklar var.
Bir de makroya
v1 = s2.Range("A4:A59") aralığını Özet sayfası A kolonu son satır olarak otomatik ayarlanabilir mi?

Teşekkür ederim.
 

Ekli dosyalar

Tamam, siz onun içinde değiştirmişsiniz.
Teşekkür ederim. Oldu, elinize sağlık.
 
Geri
Üst