• DİKKAT

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

Yolluk oran hesabına ait formül

Katılım
10 Kasım 2006
Mesajlar
1,288
Excel Vers. ve Dili
Excel-2016
Arkadaşlar..! (Herkese iyi çalışmalar)

Konu; ekli örnek dosyada daha kolay anlaşılacak.. Harcırah (Yolluk) ornan hesaplamasına ait bir formül üzerinde uğraştım.. Bir yerde takıldım. Bir el atabilirseniz çok memnun olurum..
 

Ekli dosyalar

Arkadaşlar..! (Herkese iyi çalışmalar)

Konu; ekli örnek dosyada daha kolay anlaşılacak.. Harcırah (Yolluk) ornan hesaplamasına ait bir formül üzerinde uğraştım.. Bir yerde takıldım. Bir el atabilirseniz çok memnun olurum..
Selam,
Sayın EKREM1661,
dosyanızı inceledim. belirlediğiniz kriterlerin eksik yönleri var. öyle bir an oluyor ki bir gidiş ve dönüş saatleri her iki kritere uyuyor. O zaman ne yapmalıyız?

bence kriterlerinizi çok iyi anlatmanız lazım. İlk kriterinizin bir başlangıç saati olmalı öyle değil mi?
Kriterleriniz bazen 2 aralığa göre, bazen de toplam süreye göre değişiyor. Bunları anlaşılabilecek hale getirmek lazım.
Belki birkaç yöntemle örnek dosyanız çözülebilir. ileriye dönük farklı veri girişlerinde problem olabilir.

bugün gidiş 05:00, yarın 05:00 geliş. sonuç =?
bugün gidiş 02:00, bugün 12:30 geliş. sonuç =?
bugün gidiş 19:00, yarın 08:00 geliş. sonuç =?
bugün gidiş 19:30, yarın 08:00 geliş. sonuç =?
bugün gidiş 19:30, yarın 12:00 geliş. sonuç =?
bugün gidiş 19:30, yarın 12:30 geliş. sonuç =?
bugün gidiş 19:00, yarın 12:30 geliş. sonuç =?

Bence sorunuzu güncelleyiniz.
İyi çalışmalar.
 
Sayın Ergün Güler haklısınız..! Çözüm noktasındaki belirsizliğin nedeni, sizin incelemeniz ile birlikte daha iyi anlaşıldı.. Standart kriterleri olmadığı konusunda bende az çok farkındaydım.. Bunu belirli standartlara oturtmak lazım.. Yukarıdaki soruların cavapları ile birlikte daha standart kriterlerle size döneceğim..Şimdilik hoşça kalın..
 
Ergün bey..! dosyayı yeniden ekledim.. Bir bakarsınız, olursa bu şekilde olabilir, olmazsa eskisi gibi devam ederim. (Eski kullandığım formülde 1/3 ve 2/3 leri formülle hesaplattırıyordum 1 tam günleri de elle giriyordum)
 

Ekli dosyalar

Arkadaşlar; Ek dosyadaki bu oranları hesaplarken çıkış ve dönüş saatlerini ss:dd şeklinde yaptığımızda formül hatalı diyor.Bunu düzeltmenin bir yolu varmı?
Teşekkürler.
 
Arkadaşlar bu konuda fikri olan arkadaş yokmu?
Teşekkürler.
 
Arkadaşlar; Ek dosyadaki bu oranları hesaplarken çıkış ve dönüş saatlerini ss:dd şeklinde yaptığımızda formül hatalı diyor.Bunu düzeltmenin bir yolu varmı?
Teşekkürler.

Bu konuda arkadaşların yardımını bekliyorum.
(Bahsettiğim dosya; ekrem1661 arkadaşımızın eklediği dosyadır.)

Teşekkürler.
 
  1. Bu konuda arkadaşların yardımını bekliyorum.
(Bahsettiğim dosya; ekrem1661 arkadaşımızın eklediği dosyadır.)

Teşekkürler.

KTF kod:

Kod:
Function harcirah_hesapla(tarih, cikis_saat, donus_saat)
cikis_saat = WorksheetFunction.Round(cikis_saat, 2)
donus_saat = WorksheetFunction.Round(donus_saat, 2)
If tarih = "" Then Exit Function
If cikis_saat = "" And donus_saat = "" Then
harcirah_hesapla = "1"
ElseIf donus_saat > cikis_saat Then
If donus_saat >= 12 And donus_saat < 19 Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat = 0 And donus_saat > 0 Then
harcirah_hesapla = "1"
ElseIf cikis_saat > 12 And donus_saat < 24 Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat < 12 And donus_saat > 19 Then
harcirah_hesapla = "2/3"
End If
ElseIf cikis_saat > 0 And donus_saat = 0 Then
harcirah_hesapla = "1"
End If
 
End Function


formül

Kod:
=harcirah_hesapla(B11;F11;G11)


buda farklı uygulama

Kod:
Function harcirah_hesapla(tarih, cikis_saat, donus_saat)
'If tarih = "" Then Exit Function
tarih = WorksheetFunction.Round(tarih, 2)
cikis_saat = WorksheetFunction.Round(cikis_saat, 2)
donus_saat = WorksheetFunction.Round(donus_saat, 2)
If tarih = 0 Then
harcirah_hesapla = ""
ElseIf cikis_saat = 0 And donus_saat = 0 Then
harcirah_hesapla = ""
ElseIf cikis_saat > 0 And donus_saat = 0 Then
harcirah_hesapla = "1"
ElseIf cikis_saat = 0 And donus_saat > 0 Then
harcirah_hesapla = "1"
ElseIf cikis_saat < 5 And donus_saat <= 12 Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat <= 12 And donus_saat <= 12 Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat <= 12 And donus_saat <= 19 Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat <= 12 And donus_saat > 19 Then
harcirah_hesapla = "2/3"
ElseIf cikis_saat <= 12 And donus_saat <= 24 Then
harcirah_hesapla = "2/3"
ElseIf cikis_saat > 12 And donus_saat <= 19 Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat > 12 And donus_saat <= 24 Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat >= 19 And donus_saat <= 24 Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat >= 19 And donus_saat > 24 Then
harcirah_hesapla = "2/3"
End If
End Function

başka bir tane daha

Kod:
Function harcirah_hesapla(tarih, cikis_saat, donus_saat)

tarih = WorksheetFunction.Round(tarih, 2)
cikis_saat = WorksheetFunction.Round(cikis_saat, 2)
donus_saat = WorksheetFunction.Round(donus_saat, 2)
If tarih = 0 Then
harcirah_hesapla = ""
ElseIf cikis_saat = 0 And donus_saat = 0 Then
harcirah_hesapla = ""
ElseIf cikis_saat > 0 And donus_saat = 0 Then
harcirah_hesapla = "1"
ElseIf cikis_saat = 0 And donus_saat > 0 Then
harcirah_hesapla = "1"
ElseIf cikis_saat > 1 And cikis_saat <= 12 Then
If donus_saat >= 12 And donus_saat <= 19 Then
harcirah_hesapla = "1/3"
ElseIf donus_saat >= 19 And donus_saat <= 24 Then
harcirah_hesapla = "2/3"
End If
ElseIf cikis_saat > 12 And cikis_saat <= 19 Then
If donus_saat >= 19 And donus_saat <= 24 Then
harcirah_hesapla = "1/3"
ElseIf donus_saat > 24 Then
harcirah_hesapla = "2/3"
End If
End If
End Function
 
Halit bey çok teşekkürler, Emeklerinize sağlık.
 
Halit bey çok teşekkürler, Emeklerinize sağlık.


Bu dosyadada harcırahın oranları ile birlikte gündelikler mevcut

not:harcırah oranları kodlar sayfasından güncellenmesi gerekiyor.
 

Ekli dosyalar

Halit bey Elinize sağlık, Peki buna birde gidiş tarihinden sonra dönüş tarihi ilave etsek ve kodları ona göre revize etsek bir günden fazla olan günleride yazdırma şansımız olurmu?

Çok Teşekkürler.
 
Halit bey Elinize sağlık, Peki buna birde gidiş tarihinden sonra dönüş tarihi ilave etsek ve kodları ona göre revize etsek bir günden fazla olan günleride yazdırma şansımız olurmu?

Çok Teşekkürler.

Bu konuda yardımcı olacak arkadaş yokmu?

Teşekkürler.
 
Halit bey Elinize sağlık, Peki buna birde gidiş tarihinden sonra dönüş tarihi ilave etsek ve kodları ona göre revize etsek bir günden fazla olan günleride yazdırma şansımız olurmu?

Çok Teşekkürler.


Kod

Kod:
Function harcirah_hesapla(gid_tarih, gel_tarih, cikis_saat, donus_saat)
 
If IsDate(gid_tarih) = False Then harcirah_hesapla = "": Exit Function
If IsDate(gel_tarih) = False Then harcirah_hesapla = "": Exit Function
If CDate(gel_tarih) > CDate(gid_tarih) Then
harcirah_hesapla = Val(CDate(gel_tarih) - CDate(gid_tarih))
Exit Function
End If
cikis_saat = WorksheetFunction.Round(cikis_saat, 2)
donus_saat = WorksheetFunction.Round(donus_saat, 2)
If cikis_saat = 0 And donus_saat = 0 Then
harcirah_hesapla = ""
ElseIf cikis_saat > 0 And donus_saat = 0 Then
harcirah_hesapla = "1"
ElseIf cikis_saat = 0 And donus_saat > 0 Then
harcirah_hesapla = "1"
ElseIf cikis_saat > 1 And cikis_saat <= 12 Then
If donus_saat >= 12 And donus_saat <= 19 Then
harcirah_hesapla = "1/3"
ElseIf donus_saat >= 19 And donus_saat <= 24 Then
harcirah_hesapla = "2/3"
End If
ElseIf cikis_saat > 12 And cikis_saat <= 19 Then
If donus_saat >= 19 And donus_saat <= 24 Then
harcirah_hesapla = "1/3"
ElseIf donus_saat > 24 Then
harcirah_hesapla = "2/3"
End If
End If
End Function
 

Ekli dosyalar

Halit bey emekleriniz için çok teşekkürler, bugün saat 19'da giden biri ertesi gün saat 12'ye kadar olan ve 12'den sonraki bir saatte dönmüşse 1/3 ve 2/3 oranlarında olması gerekmezmi? o yönüyle kodları bir daha incelermisiniz?
Teşekkürler.
 
Son düzenleme:
Halit bey emekleriniz için çok teşekkürler, bugün saat 19'da giden biri ertesi gün saat 12, den önceki bir saatte dönmüşse 2/3 oranında olması gerekmezmi? o yönüyle kodları bir daha incelermisiniz?
Teşekkürler.

Kodları söylediğiniz şekilde revize etmek baya zor ama 6245 s.k. 43 md.
aşağıdaki gibidir bir günden fazla seyehatlerde 24 saatten az olan saatler için bir gün tam sayılır denmektedir.



Memleket iç ve dışında seyahat günlerinin hesabı:
Madde 43 – Seyahat günlerine ait yevmiyeler, seyahat edilen vasıtanın hareket saatinden gidilecek yere muvasalat saatine kadar gelen her 24 saat için hesap olunur. Bu süreden az devam eden seyahatler bir gün itibar olunur.
Seyahat müddetinin her 24 saati aşan kesri tam gün sayılır.
 
Teşekkürler Halit bey, bir günden fazla seyahat edenlerde doğrudur, burada zor olan ise bir çok ihtimali bulunan bir günden az olan süreler için aşağıdaki maddeye uyarlamak. Bunu yapabildiğimizde çok büyük bir işi halletmiş olacağız.
Teşekkürler.

Madde 39 – (Değişik: 11/12/1981 - 2562/16 md.)

Resmi bir görevle memuriyet mahalli içinde bir yere gönderilenlere gündelik verilmez. Geçici bir görevle memuriyet mahalli dışındaki bir yere gönderilenlerden, buralarda ve yolda öğle (saat 13.00) ve akşam (saat 19.00) yemeği zamanlarından birini geçirenlere 1/3, ikisini geçirenlere 2/3 oranında ve geceyi de geçirenlere tam gündelik verilir.
 
Teşekkürler Halit bey, bir günden fazla seyahat edenlerde doğrudur, burada zor olan ise bir çok ihtimali bulunan bir günden az olan süreler için aşağıdaki maddeye uyarlamak. Bunu yapabildiğimizde çok büyük bir işi halletmiş olacağız.
Teşekkürler.

Madde 39 – (Değişik: 11/12/1981 - 2562/16 md.)

Resmi bir görevle memuriyet mahalli içinde bir yere gönderilenlere gündelik verilmez. Geçici bir görevle memuriyet mahalli dışındaki bir yere gönderilenlerden, buralarda ve yolda öğle (saat 13.00) ve akşam (saat 19.00) yemeği zamanlarından birini geçirenlere 1/3, ikisini geçirenlere 2/3 oranında ve geceyi de geçirenlere tam gündelik verilir.

Daha önceki gönderdiğim kod bunu yapıyor
 
Halit bey, gidiş dönüş saatlerini 13,30 şeklinde yazdığımızda sonuca ulaşıyoruz. Hücre biçimlendirmeden saat fatmatından 13:30 şeklinde seçtiğimizde sonuç değişiyor. Kodlarda saat biçimini 13:30 şeklinde yazmamıza olanak sağlayacak şekilde uyarlayabilirmisiniz.

Teşekkürler.
 

Ekli dosyalar

Halit bey, gidiş dönüş saatlerini 13,30 şeklinde yazdığımızda sonuca ulaşıyoruz. Hücre biçimlendirmeden saat fatmatından 13:30 şeklinde seçtiğimizde sonuç değişiyor. Kodlarda saat biçimini 13:30 şeklinde yazmamıza olanak sağlayacak şekilde uyarlayabilirmisiniz.

Teşekkürler.

Güncellemek için.
 
Halit bey, gidiş dönüş saatlerini 13,30 şeklinde yazdığımızda sonuca ulaşıyoruz. Hücre biçimlendirmeden saat fatmatından 13:30 şeklinde seçtiğimizde sonuç değişiyor. Kodlarda saat biçimini 13:30 şeklinde yazmamıza olanak sağlayacak şekilde uyarlayabilirmisiniz.

Teşekkürler.

Bu uygulama düzenli çalışmıyabilir.

kod:

Kod:
Function harcirah_hesapla(tarih, cikis_saat, donus_saat)
If IsDate(tarih) = False Then harcirah_hesapla = "": Exit Function
cikis_saat = CDate(cikis_saat)
donus_saat = CDate(donus_saat)
If cikis_saat = "00:00:00" And donus_saat = "00:00:00" Then
harcirah_hesapla = ""
ElseIf cikis_saat > "00:00:00" And donus_saat = "00:00:00" Then
harcirah_hesapla = "1"
ElseIf cikis_saat = "00:00:00" And donus_saat > "00:00:00" Then
harcirah_hesapla = "1"
ElseIf cikis_saat < "05:00:00" And donus_saat <= "13:00:00" Then
MsgBox CDate(donus_saat)
harcirah_hesapla = "1/3"
ElseIf cikis_saat <= "12:00:00" And donus_saat <= "13:00:00" Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat <= "12:00:00" And donus_saat <= "19:00:00" Then
MsgBox CDate(donus_saat)
harcirah_hesapla = "1/3"
ElseIf cikis_saat <= "12:00:00" And donus_saat > "19:00:00" Then
harcirah_hesapla = "2/3"
ElseIf cikis_saat <= "12:00:00" And donus_saat <= "24:00:00" Then
harcirah_hesapla = "2/3"
ElseIf cikis_saat > "12:00:00" And donus_saat <= "19:00:00" Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat > "12:00:00" And donus_saat <= "24:00:00" Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat >= "19:00:00" And donus_saat <= "24:00:00" Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat >= "19:00:00" And donus_saat > "24:00:00" Then
harcirah_hesapla = "2/3"
End If
End Function
 
Geri
Üst