Vardiyada çalışan personel sayısının hesaplanması

hakanbent

Altın Üye
Katılım
31 Ağustos 2006
Mesajlar
37
Excel Vers. ve Dili
excel 11- türkçe
Altın Üyelik Bitiş Tarihi
29-09-2027
Değerli Hocalarım ve Forum Üyeleri;

Ekte gönderdiğim "vardiyalar" isimli dosyamda; üst tarafta bulunan "vardiyalar" isimli tablomda, personelin giriş/çıkış saatleri ve yanındaki sütunda personelin günlük ve haftalık çalışma süreleri hesaplanmaktadır. Alt tarafta bulunan "Kişi Sayısı" isimli tablom bulunmaktadır. Yapmak istediğim "Kişi Sayısı" tablomda bulunan tüm saat aralıklarında çalışan personel sayısını üst tarafta bulunan "vardiyalar" tablosundan verileri çekerek bulmak istiyorum. Örneğin 13:00 - 14:00 saat aralığında kaç personelin çalıştığını formül ile bulmak mümkün müdür? Yardımlarınız için şimdiden teşekkür ederim.

Saygılarımla.
 

Ekli dosyalar

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,662
Excel Vers. ve Dili
Microsoft 365 Tr-64
Formülle çözümü o kadar zorlaştırmışınız ki
Pazartesi gece yarısından sonra çıkmış olan kişi teknik olarak salı günü çıkmış demektir.
Aşağıdaki tablonuzda da gece 00:00 dan sonrasını aslında Salı günü çalışan kişileri soruyorsunuz
Bunn yerine giriş çıkış saatlerinde tarih + saat kullansanız çok kolay çözüm bulunacak.

Eğer böyle çözeceim diyorsanız makroyla çözümü tavsiye ediyorum
Formülle çözüm için gecenin bu saati çok uygun değil.
 

hakanbent

Altın Üye
Katılım
31 Ağustos 2006
Mesajlar
37
Excel Vers. ve Dili
excel 11- türkçe
Altın Üyelik Bitiş Tarihi
29-09-2027
Ömer Faruk Bey;
Yardımlarınız için teşekkür ederim. Makrolu bir çözüm varsa o şekilde çözülebilir. Ancak benim Makro bilgim hemen hemen hiç yok. Yardımlarınız için şimdiden teşekkür ederim. Saygılarımla.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,662
Excel Vers. ve Dili
Microsoft 365 Tr-64
Aşağıdaki kodları kullandım.
Makro bilgim yok dediğiniz için dosyanızı da ekledim.
Hesaplanan tablonun sol üstunde HESAPLA butonuna basman yeterli
C++:
Sub MesaidekiSayılar()
Dim Saat As Integer, Say As Integer, i As Integer, k As Integer, x As Integer, Zaman As Double
Zaman = Timer
Application.ScreenUpdating = False
Range("F16:R39") = ""
For x = 6 To 26 Step 3
    For k = 5 To 12
        If Not IsNumeric(Cells(k, x)) Then GoTo Atla1
        For i = 0 To Cells(k, x + 2) - 1
            Saat = (Hour(Cells(k, x)) + i) Mod 24
            If Saat <= 23 And Saat > 7 Then
            Say = Saat + 8
            Else
            Say = Saat + 32
            End If
            Cells(Say, 2 / 3 * x + 2) = Cells(Say, 2 / 3 * x + 2) + 1
        Next i
Atla1:
    Next k
Next x
Application.ScreenUpdating = True
MsgBox "İşlem Tamam" & Chr(10) & Chr(10) & "Süre = " & Format(Timer - Zaman, "0.00") & " Saniye"
End Sub
 

Ekli dosyalar

hakanbent

Altın Üye
Katılım
31 Ağustos 2006
Mesajlar
37
Excel Vers. ve Dili
excel 11- türkçe
Altın Üyelik Bitiş Tarihi
29-09-2027
Ömer Faruk Hocam,
Yardımlarınız için çok teşekkür ederim. Allah razı olsun süper olmuş.
en derin saygılarımla.
 

Serdar22

Altın Üye
Katılım
8 Ağustos 2022
Mesajlar
1
Excel Vers. ve Dili
basic
Altın Üyelik Bitiş Tarihi
08-08-2027
Omer hocam, sizden rica etsem birde mola suresini sutunu ekleyebilirmiyiz. Giris cikis saatinden molayida cikartmak istiyoruz. Simdiden tesekkurler,
 
Üst