yenilenen verileri birden fazla şarta göre saydırma..

Katılım
9 Ocak 2016
Mesajlar
12
Excel Vers. ve Dili
2010
arkadaşlar merhaba çok fazla formül denedim ama bir yerde tıkanıyorum.şu şekilde anlatayım.

3 ayrı sayfam var
1.sayfam "devamsızlzıklar"
2.sayfam "mail"
3.sayfam çalışanlar listesi" adı altında .

şimdi 3. sayfamda 600 adet(sabit sayfa) farklı isim var ben 1.sayfamda bir isim yazdığımda 3.sayfadan o isme karşılık gelen çalışanın bölümü ve tezgahı gibi bilgileri getiriyor ve her gün 3 vardiya bu işlem yapılıyor.(1.sayfa üzerinde).ve çektiğim verilerin karşına o günün tarihini yazıyorum ve yan satırlara izinli / raporlu ve açıklamasını yazıyorum.2.ci sayfa olan mail sayfasında ise 1. sayfadaki verileri kopyaladığımda kişinin raporluysa raporunu izinliyse iznini hergün üstüne koyarak toplyarak saydırıyorum. ilk sayfadaki tekrar eden veriler olabiliyor ve liste böyle hergün uzayıp gidiyor yıl boyunca.(not: 3.sayfadaki veriler sabit veriler. isim listesi)

şimdi burda ben 2. sayfa olan mail sayfasında şunu görmek istiyorum 1.ci sayfada B hücresine yazdığım ismin karşısına tarih atıyordum bundan dolayı bana arka arkaya gelen x kişisinin devamszılığı 7 günün üstündeyse yeni oluşturacağımız rapor adet sütünü altında ismin karşısına 1 diye yazsın. aynı kişi yıl içerisinde farklı bir 7 gün üstü raporunda aynı rapor adet sütününü 2 ye çıkarsın.

burada isimleri 3.sayfadan alıp 2.sayfada bulup karşılık gelen ismi bulup tarih sütününda arka arkaya aralıksız =>7 gün üstü devamsızlığı 1 adet olarak görmesi ve bunu 2.sayfada yapması oradaki hücreye yansıtması... umarım anlatabilmişimdir. veri dosyam büyük ve altın üyeliğim şu anlık olmadığından yükleyemiyorum.yardımcı olursanız sevinirim.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Örnek bir dosyayı paylaşırsanız daha kolay çözüme ulaşabiliriz.
Altın üye değilsiniz. Harici paylaşım sitelerine dosyanızı yükleyip link paylaşabilrisiniz.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Sadece Raporluyamı bakacağız?

Zira mesela 3 gün rapor alıp, 2 gün düğün, 2gün Yıllık iizn peşpeşe kullanırsa bunu sayacak mısınız?
 
Katılım
9 Ocak 2016
Mesajlar
12
Excel Vers. ve Dili
2010
Sadece Raporluyamı bakacağız?

Zira mesela 3 gün rapor alıp, 2 gün düğün, 2gün Yıllık iizn peşpeşe kullanırsa bunu sayacak mısınız?
Evet sadece raporluya bakacağız burada kişinin 7 gün aralıksız raporlu olmasını sayacağız ve her 7 üstünü 1 adet olarak sayacak farklı zamanlarda aynı durum tekrar ettiğinde değerimiz iki olacak. Teşekkürler
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Boş bir modüle aşağıdaki KTF yi kopyalayıp sayfada kullanabilirsiniz.
C++:
Function RaporSay(Personel As Range)
    Say = Worksheets("DEVAMSIZLIKLAR").Range("B" & Rows.Count).End(xlUp).Row
    Veri = Worksheets("DEVAMSIZLIKLAR").Range("A4:H" & Say).Value
    ReDim Liste(1 To UBound(Veri))
    Say = 0
    For i = 1 To UBound(Veri)
        If Veri(i, 2) = Personel.Value And Veri(i, 8) = "R" Then
            Say = Say + 1
            Liste(Say) = Veri(i, 6)
        End If
    Next i
    For i = 2 To Say
        If Liste(i) - 1 = Liste(i - 1) Then
            Kontrol = Kontrol + 1
        Else
            If Kontrol >= 7 Then RaporSay = RaporSay + 1
            Kontrol = 1
        End If
        If i = Say And Kontrol >= 7 Then RaporSay = RaporSay + 1
    Next i
End Function
 
Katılım
9 Ocak 2016
Mesajlar
12
Excel Vers. ve Dili
2010
Boş bir modüle aşağıdaki KTF yi kopyalayıp sayfada kullanabilirsiniz.
C++:
Function RaporSay(Personel As Range)
    Say = Worksheets("DEVAMSIZLIKLAR").Range("B" & Rows.Count).End(xlUp).Row
    Veri = Worksheets("DEVAMSIZLIKLAR").Range("A4:H" & Say).Value
    ReDim Liste(1 To UBound(Veri))
    Say = 0
    For i = 1 To UBound(Veri)
        If Veri(i, 2) = Personel.Value And Veri(i, 8) = "R" Then
            Say = Say + 1
            Liste(Say) = Veri(i, 6)
        End If
    Next i
    For i = 2 To Say
        If Liste(i) - 1 = Liste(i - 1) Then
            Kontrol = Kontrol + 1
        Else
            If Kontrol >= 7 Then RaporSay = RaporSay + 1
            Kontrol = 1
        End If
        If i = Say And Kontrol >= 7 Then RaporSay = RaporSay + 1
    Next i
End Function
ömer bey makrodan pek anlamıyorum yinede bir modülün içine kodları yapıştırdım fakat bunun otomatik çalışıp 2.sayfada yeni bir sütün açıp b sütünündaki isme göre açmış olduğumuz sütüna 7 gün üstündeki raporlarını 1 er adet olrak göstermesi ve her 7 ve üstü raporunu toplayarak gitmesi gerekiyor ...fakat ben bunu göremedim.zahmet veriyorum ama bunun formülle yapılış şekli varmıdır.yok isede makro kısmında nasıl çalıştıracağımı açıklarmısınız. bu arada sütünü 2. sayfada istediğiniz bir yere açablir yada sonuçlarını 2.sayfada "U" sütünüünda gösterebilirmiyiz.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Küçük harflerle...rica ederiz. Kolay gelsin.
 
Üst