• DİKKAT

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

Özet Tablo Hk,

gicimi

Altın Üye
Katılım
3 Şubat 2008
Mesajlar
593
Excel Vers. ve Dili
Office 2016 Eng. 64 Bit
Merhaba,

Ekteki excel dosyasında veriler yer almaktadır. Yapmaya çalıştığım örnekte yer almaktadır.

Sorumlu - sütunda yer alan kullanıcının hangi tarihte başlangıç ve bitiş saatlerini listelemek istiyorum. Nasıl yapmam gerektiğini konusunda yardımlarınızı bekliyorum.

Yardımlarınız için Teşekkür ederim.
 

Ekli dosyalar

Merhaba,

Eki deneyiniz...

Kod:
Option Explicit
Sub Saat()
Dim a(), b(), c(), d1 As Object, d2 As Object
Dim i As Long, Say As Long, S1 As Worksheet
On Error Resume Next
Set S1 = Sheets("Sayfa1")
Set d1 = CreateObject("Scripting.Dictionary")
Set d2 = CreateObject("Scripting.Dictionary")
a = S1.Range("A2:C" & S1.Cells(Rows.Count, 1).End(3).Row)
b = S1.Range("G2:H" & S1.Cells(Rows.Count, 7).End(3).Row)
For i = 1 To UBound(a)
    If d1.exists(a(i, 1) & a(i, 2)) Then
        If a(i, 3) < a(d1(a(i, 1) & a(i, 2)), 3) Then
           d1(a(i, 1) & a(i, 2)) = i
        End If
        If a(i, 3) > a(d2(a(i, 1) & a(i, 2)), 3) Then
           d2(a(i, 1) & a(i, 2)) = i
        End If
    Else
        d1(a(i, 1) & a(i, 2)) = i
        d2(a(i, 1) & a(i, 2)) = i
    End If
Next i

ReDim c(1 To UBound(b), 1 To 2)
For i = 1 To UBound(b)
    Say = Say + 1
    c(Say, 1) = a(d1(b(i, 1) & b(i, 2)), 3)
    c(Say, 2) = a(d2(b(i, 1) & b(i, 2)), 3)
Next i
Application.ScreenUpdating = False
S1.Range("i2:j" & Rows.Count).ClearContents
S1.[i2].Resize(Say, 2) = c
S1.[i2].Resize(Say, 2).NumberFormat = "h:mm:ss"
Application.ScreenUpdating = True
MsgBox "İşlem tamam........", vbInformation
End Sub
 

Ekli dosyalar

Eklenti

Sorumlu / tarih bazında / iş başlangıç saati / son bitiş saati getirmeye çalışıyorum.
 

Ekli dosyalar

Merhaba.

Aşağıdaki dizi formüllerini kullanabilirsiniz. Formülleri belirttiğim hücrelere uyguladıktan sonra aşağı doğru kopyalayın.

-- I2 hücresine
Kod:
=EĞER(MİN(EĞER($A$2:$A$2930=G2;EĞER($B$2:$B$2930=H2;SATIR($A$2:$A$2930))))=0;"";İNDİS($C$1:$C$2930;MİN(EĞER($A$2:$A$2930=G2;EĞER($B$2:$B$2930=H2;SATIR($A$2:$A$2930))));0))
[COLOR="Blue"][SIZE="2"]Formül dizi formülü olup [COLOR="Red"]CTRL+SHIFT+ENTER[/COLOR] ile girilmelidir.
İşlemi doğru yapmışsanız formül [B]kendiliğinden[/B], [B][COLOR="red"]{[/COLOR][/B]....[B][COLOR="red"]}[/COLOR][/B]  gibi köşeli paranteze alınır.[/SIZE][/COLOR]
-- J2 hücresine;
Kod:
=EĞER(MAK(EĞER($A$2:$A$2930=G2;EĞER($B$2:$B$2930=H2;SATIR($A$2:$A$2930))))=0;"";İNDİS($C$1:$C$2930;MAK(EĞER($A$2:$A$2930=G2;EĞER($B$2:$B$2930=H2;SATIR($A$2:$A$2930))));0))
[COLOR="Blue"][SIZE="2"]Formül dizi formülü olup [COLOR="Red"]CTRL+SHIFT+ENTER[/COLOR] ile girilmelidir.
İşlemi doğru yapmışsanız formül [B]kendiliğinden[/B], [B][COLOR="red"]{[/COLOR][/B]....[B][COLOR="red"]}[/COLOR][/B]  gibi köşeli paranteze alınır.[/SIZE][/COLOR]
 
Ömer Bey çok teşekkür ederim. İyi Çalışmalar.
 
Geri
Üst