Yıllık İzin Dönüş Tarihini Hesaplama

Yıllık İzin Dönüş Tarihini Hesaplama

Yıllık İzin Dönüş Tarihini Hesaplama


Yıllık İzin Dönüş Tarihini Hesaplama isimli içerikte, çalışanların izinden dönecekleri tarihi bulmanın nasıl olacağını öğreten ipucu niteliğinde bir yazı bulunmaktadır.

Yıllık Ücretli İzin Detayları​

Türk mevzuatına göre, yıllık izin süreleri iş günleri üzerinden hesaplanır, yani hafta sonları (Cumartesi ve Pazar) ve resmi tatiller izin süresine dahil edilmez.

Bunun için İŞGÜNÜ.ULUSL (WORKDAY.INTL) fonksiyonunu kullanabiliriz. Bu fonksiyon, belirli bir başlangıç tarihinden itibaren belirtilen iş günü sayısını hesaplar. Resmi tatilleri de hesaba katmak için ek bir dizi kullanabiliriz.

İzin Dönüş Tarihi Hesaplama (Hafta Sonları Hariç)​

Kod:
=İŞGÜNÜ.ULUSL(A1; B1; 1)
Bu formül:
  • A1 hücresindeki başlangıç tarihinden itibaren
  • B1 hücresindeki gün sayısını
  • Hafta sonlarını (Cumartesi ve Pazar) hesaba katarak
  • İzin dönüş tarihini hesaplar.

İzin Dönüş Tarihi Hesaplama (Hafta Sonları ve Resmi Tatiller Hariç)​

Eğer resmi tatilleri de hesaba katmak istiyorsanız, resmi tatil tarihlerinin yer aldığı bir liste oluşturmanız gerekir. Diyelim ki bu liste E1:E10 hücre aralığında yer alıyor.
Kod:
=İŞGÜNÜ.ULUSL(A1; B1; 1; E1:E10)
Bu formül:
  • A1 hücresindeki başlangıç tarihinden itibaren
  • B1 hücresindeki gün sayısını
  • Hafta sonları ve E1:E10 aralığındaki resmi tatilleri hesaba katarak
  • İzin dönüş tarihini hesaplar.

Örnek Kullanım​

  • A1 Hücresi: 01/01/2024 (İzin başlangıç tarihi)
  • B1 Hücresi: 10 (İzin gün sayısı)
  • E1:E10 Hücre Aralığı: 23/04/2024, 01/05/2024, 19/05/2024, ... (Resmi tatiller)
Kod:
=İŞGÜNÜ.ULUSL(A1; B1; 1; E1:E10)

Makro (VBA) ile İzin Dönüş Tarihi Hesaplama​

Eğer VBA kullanarak bir kullanıcı tanımlı fonksiyon (KTF) oluşturmak isterseniz, aşağıdaki kodu kullanabilirsiniz:
  1. VBA Penceresini Açın: Alt + F11 tuşlarına basın.
  2. Modül Ekleyin: "Insert" menüsünden "Module" seçeneğini tıklayın.
  3. Aşağıdaki Kodu Yapıştırın:
VBA:
Function IzinDonusTarihi(baslangicTarihi As Date, izinGunSayisi As Integer, _
                         Optional resmiTatilTarihleri As Range) As Date
    Dim calismaGunleri As Integer
    Dim tarih As Date
    Dim tatil As Range
    Dim tatilTarihler() As Date
    Dim i As Integer
    
    ' Resmi tatil tarihlerini diziye aktar
    If Not IsMissing(resmiTatilTarihleri) Then
        ReDim tatilTarihler(1 To resmiTatilTarihleri.Count)
        i = 1
        For Each tatil In resmiTatilTarihleri
            tatilTarihler(i) = tatil.Value
            i = i + 1
        Next tatil
    End If
    
    ' Çalışma günlerini hesapla
    tarih = baslangicTarihi
    calismaGunleri = 0
    Do While calismaGunleri < izinGunSayisi
        tarih = tarih + 1
        If Weekday(tarih, vbMonday) < 6 Then ' Pazartesi-Cuma
            If IsMissing(resmiTatilTarihleri) Then
                calismaGunleri = calismaGunleri + 1
            ElseIf IsError(Application.Match(tarih, tatilTarihler, 0)) Then
                calismaGunleri = calismaGunleri + 1
            End If
        End If
    Loop
    
    IzinDonusTarihi = tarih
End Function

Kullanım:​

  • A1 Hücresi: 01/01/2024 (İzin başlangıç tarihi)
  • B1 Hücresi: 10 (İzin gün sayısı)
  • E1:E10 Hücre Aralığı: 23/04/2024, 01/05/2024, 19/05/2024, ... (Resmi tatiller)
Excel hücresinde:
Kod:
=IzinDonusTarihi(A1, B1, E1:E10)
Bu VBA fonksiyonu, izin başlangıç tarihinden itibaren izin gün sayısını hesaplar ve resmi tatil tarihlerini de dikkate alarak izin dönüş tarihini döndürmektedir.

Siz de, bu yazıdaki bilgiler ışığında; kolayca çalışanların izinden dönüş tarihlerinin hesaplamasını yapabilirsiniz.
 
Geri
Üst