- Katılım
- 16 Ağustos 2008
- Mesajlar
- 71
- Excel Vers. ve Dili
- Office 365
WİN 11 PRO
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Merhabalar.
Ekteki dosyada personel için kıdemi ve mevcut yıldaki yaşı ile bağlantılı olmak üzere izin tahakkuku yapmak istiyorum.
Yardımlarınız için şimdiden teşekkürler.
=hakedis($B4;$C4;SAYIYAÇEVİR(METNEÇEVİR(METNEÇEVİR($B4;"gg.aa.")&D$3;"gg.aa.yyyy")))
Function hakedis(isegiristarihi, dogumtarihi, tarih)
If isegiristarihi = "" Then
hakedis = ""
Exit Function
ElseIf dogumtarihi = "" Then
hakedis = ""
Exit Function
End If
yer = Val((tarih - CDate(isegiristarihi)) * 1) + 1
'yer2 = Val((Val((dogumtarihi) * 1) / 365.25))
yer1 = Val(Val(((tarih - CDate(dogumtarihi)) * 1) + 1) / 365.25)
If yer >= 365.25 Then
tarih = Val((yer / 365.25))
Else
tarih = 0
End If
If isegiristarihi > 0 Then
If tarih <= 0 Then
hakedis = 0
ElseIf tarih >= 1 And tarih <= 5 Then
hakedis = 14
ElseIf tarih >= 6 And tarih <= 14 Then
hakedis = 20
ElseIf tarih >= 15 And tarih <= 65 Then
hakedis = 26
End If
If tarih > 0 Then
If hakedis <= 14 Then
If yer1 <= 18 Then
hakedis = 20
ElseIf yer1 >= 50 Then
hakedis = 20
End If
End If
End If
End If
End Function
D4 hücresine bu formülü uygulayıp formülü aşağı ve sağa doğru sürükleyin
Kod:=hakedis($B4;$C4;SAYIYAÇEVİR(METNEÇEVİR(METNEÇEVİR($B4;"gg.aa.")&D$3;"gg.aa.yyyy")))
Bir modül içinede aşağıdaki K.T.F kodunu koyun
Kod:
Kod:Function hakedis(isegiristarihi, dogumtarihi, tarih) If isegiristarihi = "" Then hakedis = "" Exit Function ElseIf dogumtarihi = "" Then hakedis = "" Exit Function End If yer = Val((tarih - CDate(isegiristarihi)) * 1) + 1 'yer2 = Val((Val((dogumtarihi) * 1) / 365.25)) yer1 = Val(Val(((tarih - CDate(dogumtarihi)) * 1) + 1) / 365.25) If yer >= 365.25 Then tarih = Val((yer / 365.25)) Else tarih = 0 End If If isegiristarihi > 0 Then If tarih <= 0 Then hakedis = 0 ElseIf tarih >= 1 And tarih <= 5 Then hakedis = 14 ElseIf tarih >= 6 And tarih <= 14 Then hakedis = 20 ElseIf tarih >= 15 And tarih <= 65 Then hakedis = 26 End If If tarih > 0 Then If hakedis <= 14 Then If yer1 <= 18 Then hakedis = 20 ElseIf yer1 >= 50 Then hakedis = 20 End If End If End If End If End Function
Ellerinize sağlık.
Ancak tabloda 2012 yılında olduğumuz için 2012 yılı sonrasındaki izin tahakkuklarını göstermemesi gerekiyor.
Yada A1 hücresine bir tarih yazıp o tarihe göre sonuçları tabloya yansıtması için kodu veya formülü nasıl revize etmeliyiz.
=hakedis($B4;$C4;SAYIYAÇEVİR(METNEÇEVİR(METNEÇEVİR($B4;"gg.aa.")&D$3;"gg.aa.yyyy"));$A$2)
Function hakedis(isegiristarihi, dogumtarihi, zaman_aralıgı, gunun_tarihi)
If isegiristarihi = "" Then
hakedis = ""
Exit Function
ElseIf dogumtarihi = "" Then
hakedis = ""
Exit Function
End If
yer3 = CDate(zaman_aralıgı)
yer = Val((zaman_aralıgı - CDate(isegiristarihi)) * 1) + 1
'yer2 = Val((Val((dogumtarihi) * 1) / 365.25))
yer1 = Val(Val(((zaman_aralıgı - CDate(dogumtarihi)) * 1) + 1) / 365.25)
If yer >= 365.25 Then
zaman_aralıgı = Val((yer / 365.25))
Else
zaman_aralıgı = 0
End If
If gunun_tarihi > yer3 Then
If isegiristarihi > 0 Then
If zaman_aralıgı <= 0 Then
hakedis = 0
ElseIf zaman_aralıgı >= 1 And zaman_aralıgı <= 5 Then
hakedis = 14
ElseIf zaman_aralıgı >= 6 And zaman_aralıgı <= 14 Then
hakedis = 20
ElseIf zaman_aralıgı >= 15 And zaman_aralıgı <= 65 Then
hakedis = 26
End If
If zaman_aralıgı > 0 Then
If hakedis <= 14 Then
If yer1 <= 18 Then
hakedis = 20
ElseIf yer1 >= 50 Then
hakedis = 20
End If
End If
End If
End If
Else
hakedis = ""
End If
End Function
A2 hücresine bugünün tarihini yazın
D4 hücresine aşağıdaki kodu yazın
Kod:=hakedis($B4;$C4;SAYIYAÇEVİR(METNEÇEVİR(METNEÇEVİR($B4;"gg.aa.")&D$3;"gg.aa.yyyy"));$A$2)
K.T.F. kodunuda aşağıdaki kodla değiştirin.
Kod:Function hakedis(isegiristarihi, dogumtarihi, zaman_aralıgı, gunun_tarihi) If isegiristarihi = "" Then hakedis = "" Exit Function ElseIf dogumtarihi = "" Then hakedis = "" Exit Function End If yer3 = CDate(zaman_aralıgı) yer = Val((zaman_aralıgı - CDate(isegiristarihi)) * 1) + 1 'yer2 = Val((Val((dogumtarihi) * 1) / 365.25)) yer1 = Val(Val(((zaman_aralıgı - CDate(dogumtarihi)) * 1) + 1) / 365.25) If yer >= 365.25 Then zaman_aralıgı = Val((yer / 365.25)) Else zaman_aralıgı = 0 End If If gunun_tarihi > yer3 Then If isegiristarihi > 0 Then If zaman_aralıgı <= 0 Then hakedis = 0 ElseIf zaman_aralıgı >= 1 And zaman_aralıgı <= 5 Then hakedis = 14 ElseIf zaman_aralıgı >= 6 And zaman_aralıgı <= 14 Then hakedis = 20 ElseIf zaman_aralıgı >= 15 And zaman_aralıgı <= 65 Then hakedis = 26 End If If zaman_aralıgı > 0 Then If hakedis <= 14 Then If yer1 <= 18 Then hakedis = 20 ElseIf yer1 >= 50 Then hakedis = 20 End If End If End If End If Else hakedis = "" End If End Function
=
hakedis($B4;$C4;D$3;$A$2)
'Function hakedis(isebaslamatarihi, dogumtarihi, calisilansure, tarih)
Function hakedis(isegiristarihi, dogumtarihi, kontrol_yili, gunun_tarihi)
If isegiristarihi = "" Then
hakedis = ""
Exit Function
ElseIf dogumtarihi = "" Then
hakedis = ""
Exit Function
ElseIf kontrol_yili = "" Then
hakedis = ""
Exit Function
ElseIf gunun_tarihi = "" Then
hakedis = ""
Exit Function
End If
zaman_aralıgı = CDate(Format(Format(isegiristarihi, "dd.mm.") & kontrol_yili, "dd.mm.yyyy"))
yer3 = CDate(zaman_aralıgı)
yer = Val((zaman_aralıgı - CDate(isegiristarihi)) * 1) + 1
yer1 = Val(Val(((zaman_aralıgı - CDate(dogumtarihi)) * 1) + 1) / 365.25)
If yer >= 365.25 Then
zaman_aralıgı = Val((yer / 365.25))
Else
zaman_aralıgı = 0
End If
If gunun_tarihi > yer3 Then
If isegiristarihi > 0 Then
If zaman_aralıgı <= 0 Then
hakedis = 0
ElseIf zaman_aralıgı >= 1 And zaman_aralıgı <= 5 Then
hakedis = 14
ElseIf zaman_aralıgı >= 6 And zaman_aralıgı <= 14 Then
hakedis = 20
ElseIf zaman_aralıgı >= 15 And zaman_aralıgı <= 65 Then
hakedis = 26
End If
If zaman_aralıgı > 0 Then
If hakedis <= 14 Then
If yer1 <= 18 Then
hakedis = 20
ElseIf yer1 >= 50 Then
hakedis = 20
End If
End If
End If
End If
Else
hakedis = ""
End If
End Function