• DİKKAT

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

Tarihlere Göre Koşullu Sorgu

  • Konbuyu başlatan Konbuyu başlatan bisquit
  • Başlangıç tarihi Başlangıç tarihi
Katılım
18 Kasım 2013
Mesajlar
6
Excel Vers. ve Dili
2017 İngilizce
Merhabalar,

Ekli excelde VARDIYA tabında personel vardiyası FINAL tabında sol üstte data validation'la tarih ayarladım. Sol üstten tarihi değiştirdiğimde E4 sütununda VARDIYA tabındaki uygun vardiyayı o tarihe göre getirmesini istiyorum fakat formülüze edemedim. Yardımcı olur musunuz ?

Teşekkür ederim
 

Ekli dosyalar

Merhaba.

VARDİYA sayfasındaki verileriniz tarihe göre sıralı ise,
FİNAL sayfasındaki tablonun başlıklarını VARDİYA sayfasındaki başlıkla aynı olacak şekilde yazarsanız aşağıdaki formül işinizi görecektir.
(sadece istediğiniz başlıkları, istediğiniz sırayla yazabilirsiniz)

Formülü FİNAL sayfası C4 hücresine uyguladıktan sonra sağa ve aşağı kopyalayın.
.
Kod:
=[COLOR="red"]EĞER[/COLOR]([COLOR="red"]KAYDIR[/COLOR](VARDIYA!$A$1;[COLOR="red"]KAÇINCI[/COLOR]($B$1;VARDIYA!$A:$A;0)+[COLOR="red"]SATIR[/COLOR](A1)-2;0)=$B$1;[COLOR="red"]KAYDIR[/COLOR](VARDIYA!$A$1;[COLOR="red"]KAÇINCI[/COLOR]($B$1;VARDIYA!$A:$A;0)+[COLOR="red"]SATIR[/COLOR](A1)-2;[COLOR="Red"]KAÇINCI[/COLOR](C$3;VARDIYA!$A$1:$D$1;0)-1);"")
 
Ömer Bey Merhaba,
Öncelikle desteğiniz için teşekkürler
Tarih sıralı olacak fakat personel sayısı her gün aynı olmayacak. Örneğin 1.11.2017'de 30 isim olabilirken 02.11.2017'de 50 kişi olabilir. Bu sorun yaratır mı ?
Bir de bunu excel olarak gönderebilir misiniz İngilizce kullandığım için ekleyemedim.
 
Bence biraz araştırma yaparak, formülde kullanılan işlevlerin İngilizce karşılıklarını bulabilirdiniz.

Yine de belirteyim.
EĞER => IF
KAYDIR => OFFSET
KAÇINCI => MATCH
SATIR => ROW

Ekteki belge de bir de alternatif uygulama ekledim.
Bu uygulama (AD TANIMLAMASI kullanma) VARDIYA sayfasındaki dolu satır durumunu otomatik algılayacaktır.

Ekli belgeyi inceleyiniz/denemeler yapınız.
.
 

Ekli dosyalar

Merhaba,

Makro kullanmak isterseniz aşağıdaki kodları FINAL sayfasının kod bölümüne kopyalayıp deneyebilirsiniz.

B1 hücresindeki tarih değiştiğinde çalışacaktır.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, [B1]) Is Nothing Then Exit Sub
    
    Dim ShV As Worksheet, _
        i   As Long, _
        j   As Long, _
        Adt As Integer
    
    Set ShV = Sheets("VARDIYA")
    
    Application.ScreenUpdating = False
    
    i = Cells(Rows.Count, "C").End(3).Row
    If i < 4 Then i = 4
    
    Range("C4:E" & i).ClearContents
    j = 3
    
    For i = 2 To ShV.Cells(Rows.Count, "A").End(3).Row
        If ShV.Cells(i, "A") = Range("B1") Then
            Adt = Adt + 1
            j = j + 1
            Cells(j, "C") = ShV.Cells(i, "A")
            Cells(j, "D") = ShV.Cells(i, "C")
            Cells(j, "E") = ShV.Cells(i, "D")
        End If
    Next i
    
    If Adt = 0 Then
        MsgBox Range("B1") & " Tarihinde Herhangi Bir Veriye Rastlamadım...", vbCritical, "www.excel.web.tr"
    Else
        MsgBox Adt & " Adet Kişi Bulundu ve Aktarıldı....", vbInformation, "www.excel.web.tr"
    End If
        
End Sub
 
Necdet Bey teşekkürler
Şöyle bir durumum da var FINAL dosyasındaki kişiler sabit olacak yani tarihe göre VARDIYA tabına gidip kaç kişinin vardiyası yazılmışsa sadece o kadarı FINAL tabında getirmemesi gerekiyor. böyle düzenleme şansımız var mı

ömer bey şimdi sizinkini de deniyorum, tekrar sagolun
 
Geri
Üst