• DİKKAT

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

2 Tarih Arası Benzersiz Liste Almak

  • Konbuyu başlatan Konbuyu başlatan 1Al2Ver
  • Başlangıç tarihi Başlangıç tarihi
Katılım
5 Kasım 2007
Mesajlar
4,727
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Merhaba,

"MALZEME_GİRİŞİ" sayfasından,

"AYLIK_İCMAL" sayfasındaki A1 ve B1 'deki, elle girilen ve her defasında farklı tarihler içeren tarih aralığına göre,

"AYLIK_İCMAL" sayfası D2:H aralığına BENZERSİZ LİSTE almak istiyorum,

Teşekkür ederim.
 

Ekli dosyalar

Sayın İdris SERDAR merhaba,

İlginiz ve Özet Tablo çözümünüz için çok teşekkür ederim, alternatif bir çözüm olarak arşivledim.

Ben, dosya yapım gereği, makro ile çözüm arıyorum.

Saygılarımla.
 
Merhaba.

Deneyiniz. (sütunların sayı biçimini elle ayarlayacağınızı varsayıyorum)
NOT: Tarihler boş geçilirse tüm tarihler dikkate alınır.
.
Kod:
[B][COLOR="red"]Sub BENZERSIZ_TOPLAMLI()[/COLOR][/B]
Set ai = Sheets("AYLIK_İCMAL"): Set mg = Sheets("MALZEME_GİRİŞİ")
Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual
mgson = mg.Cells(Rows.Count, "D").End(3).Row
If ai.Cells(Rows.Count, "D").End(3).Row > 1 Then _
    Sheets("AYLIK_İCMAL").Range("D2:H" & Rows.Count).ClearContents
tar1 = ai.[A1]: tar2 = ai.[B1]
If tar1 = Empty Then tar1 = CDate("1/1/" & 1900)
If tar2 = Empty Then tar2 = CDate("31/12/" & 9999)
[COLOR="Red"]ai.Columns("K:K").Insert Shift:=xlToRight[/COLOR]
For sat = 2 To mgson
    If mg.Cells(sat, 2) >= tar1 And mg.Cells(sat, 2) <= tar2 Then
        If WorksheetFunction.CountIf(ai.[D:D], mg.Cells(sat, 4)) = 0 Then
            aisat = ai.Cells(Rows.Count, 4).End(3).Row + 1
            ai.Cells(aisat, 4) = mg.Cells(sat, 4): ai.Cells(aisat, 5) = mg.Cells(sat, 5)
            ai.Cells(aisat, 6) = mg.Cells(sat, 6): ai.Cells(aisat, 7) = mg.Cells(sat, 7)
            ai.Cells(aisat, 8) = mg.Cells(sat, 10): ai.Cells(aisat, 10) = mg.Cells(sat, 7)
            ai.Cells(aisat, 11) = mg.Cells(sat, 2)
        Else
            satt = WorksheetFunction.Match(mg.Cells(sat, 4), ai.[D:D], 0)
            ai.Cells(satt, 6) = ai.Cells(satt, 6) + mg.Cells(sat, 6)
            ai.Cells(satt, 8) = ai.Cells(satt, 8) + mg.Cells(sat, 10)
            ai.Cells(satt, 7) = ai.Cells(satt, 8) / ai.Cells(satt, 6)
            If mg.Cells(sat, 2) >= ai.Cells(satt, 11) Then
                ai.Cells(satt, 10) = mg.Cells(sat, 7): ai.Cells(satt, 11) = mg.Cells(sat, 2)
            End If
        End If
    End If
Next
With ai.Range("D2:K" & Rows.Count)
    .Sort ai.[D1], 1
    .Font.Size = 10: .Font.Name = "Calibri"
    .Font.ColorIndex = xlAutomatic
    .HorizontalAlignment = xlGeneral
End With
[COLOR="red"]ai.Columns("K:K").Delete[/COLOR]
ai.Columns("D:H").AutoFit
Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic
MsgBox "Liste hazırlandı.", vbInformation, "..:: Ömer BARAN ::.."
[B][COLOR="Red"]End Sub[/COLOR][/B]
 
Sayın Ömer BARAN merhaba,

Her şey için bir kere daha çok teşekkür ederim,

Sevgi ve saygılarımla.
 
Eyvallah, bilmukabele.

Verdiğim kodda;
-- A1 dolu olursa bu tarihten büyük ve eşit olanlar,
-- B1 dolu olursa bu tarihten küçük ve eşit olanlar,
-- Her ikisi de boşsa TÜM TARİHLER,
-- Her ikisi de dolu ise iki tarih arasında (yazılı tarihler dahil) olanlar
şeklinde listeleme yapılır.
.
 
Sayın Ömer BARAN merhaba,

Açıklamalar ve bilgilendirmeler için teşekkür ederim,

Şimdi dikkatimi çekti ;

"AYLIK_İCMAL" F sütundaki miktarlar, anılan tarihler arası toplanmalı ve fiyatın da ortalaması gelmeli,

Bakabilirseniz memnun olurum.

Teşekkür ederim.
 
Önceki kod cevabımı isteğinize göre güncelledim.
Sayfayı yenileyerek önceki cevabımı kontrol ediniz.
.
 
Sayın Ömer BARAN tekrar merhaba,

Tamamdır, çok teşekkür ederim.

Saygılarımla.
 
Kolay gelsin.
.
 
Geri
Üst