• DİKKAT

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

2 Tarih Arasındaki İş Günü Sayısını Bulma Acill yardımm..

Katılım
13 Temmuz 2013
Mesajlar
241
Excel Vers. ve Dili
Türkçe 2007
Arkadaşlar merhaba,

2 tarih arasındaki iş günü sayısını formülle bulmamız mümkün mü? cumartesi gününüde iş günü olarak almamız gerekecek. Örneğin; 01.02.2014 ile 05.02.2014 arasındaki iş günü sayısı 3 gün gibi... Yardımlarınızı bekliyorum...
 
TAMİŞGÜNÜ formülü ile bulabilirsiniz.


Ayrıca size makro ile çözümü de hazırladım.
Bu kodları kullanabilirsiniz;
Kod:
Sub İş_Günü_Bulma()
    Dim bul As Range, evn As Range, i%, a As Byte
    Application.ScreenUpdating = False
    ilk = CDate("01.02.2014")
    son = CDate("05.02.2014")
    son1 = CDate(DateAdd("d", 2, son))
    Range("A1").Value = ilk
    Range("A1").AutoFill Destination:=Range("A1:A260"), Type:=xlFillWeekdays
    tatiller = Array("01.01.2014", "23.04.2014", "01.05.2014", "19.05.2014", "30.08.2014", "29.10.2014")
    For i = Range("A65536").End(3).Row To 1 Step -1
        For a = LBound(tatiller) To UBound(tatiller)
            Set bul = Columns(1).Find(son, , , 1)
            If Not bul Is Nothing Then
                Range(bul, Selection.End(xlDown)).ClearContents
                    Else
                Set evn = Columns(1).Find(son1, , , 1)
                If Not evn Is Nothing Then
                    Range(evn, Selection.End(xlDown)).ClearContents
                End If
            End If
            If CDate(Cells(i, 1).Value) = CDate(tatiller(a)) Then
                Cells(i, 1).Delete xlUp
            End If
        Next a
    Next i
    Application.ScreenUpdating = True
    MsgBox WorksheetFunction.CountA(Range("A:A"))
End Sub
 
Murat bey ilginize teşekkürler.. Formül ile denediğimde cumartesi gününü iş günü olarak almıyor bunu nasıl çözebiliriz? makroda ise hesaplanacak tarihleri hangi hücrelere girmem gerek?
 
Aşağıdaki göreceğiniz üzere makroda ilk tarih ve son tarihin yazıldığı yer var.
İsterseniz ilk ve son tarihleri buraya yazın.
Kod:
ilk = CDate("01.02.2014")
son = CDate("05.02.2014")

İsterseniz de ilk tarihi B1 hücresine, son tarihi de B2 hücresine yazarak bu şekilde deneyebilirsiniz;
Kod:
ilk = CDate(range("B1").value)
son = CDate(range("B2").value)
 
01.02.2014 ile 15.02.2014 olarak girdiğimde 11 şeklinde hesapladı fakat 12 olması gerekiyor. Bunun formülle daha basit bir çözümü varmıdır acaba?
 
Vardır muhakkak formül üstadları size yardımcı olacaklardır.

Koddaki bu satırı bulun son + 1 yazın ve farklı tarihler girerek bir test edin.
Kod:
son1 = CDate(DateAdd("d", 2, [COLOR="Red"]son + 1[/COLOR]))
 
Son düzenleme:
Merhaba,

ek olarak aşağıdaki formüller işinizi görecektir.
Tarih aralığı
Başlama Tarihi "C4" = 01.02.2014
Bitiş Tarihi "C5" = 05.02.2014

Çalışma günleri için
=EĞER(C4="";"";TOPLA.ÇARPIM(--(HAFTANINGÜNÜ(SATIR(DOLAYLI(C4&":"&C5)))<>1)))

Tatil günleri için
=EĞER(C4="";"";TOPLA.ÇARPIM(--(HAFTANINGÜNÜ(SATIR(DOLAYLI(C4&":"&C5)))=1)))
 
Geri
Üst