• DİKKAT

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

saat problemi

Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
arkadaşlar 01.12.2014 günü 08:00 ile 02.12.2014 01:00 saatleri arasında bululnan saat 13:00 -19:00 ve 24:00 olanların tespitini nasıl yaparım. yapmak istediğim şey bu saatler arasında 13:00 varsa 1 yevmiye 19:00 varsa 2 yevmiye ve 24:00 yani gece yarısını geçmişse 3 tam yevmiye vereceğim. buna bir formüle htiyacım var

08:00 15:00 arasında 13:00 geçtiği için 1 yevmiye
08:00 21:00 arasında 13:00 ve 19:00 geçtiği için 2 yevmiye
08:00 01:00 arasında 13:00-19:00 ve 24:00 geçtiği için 3 yevmiye

inşallah derdimi anlatabilmişimdir.
 

Ekli dosyalar

Merhabalar
Anladığım kadarıyla yapmaya çalıştım. İnceleyiniz.
 

Ekli dosyalar

olmadı

ben formülün başlangıç ve bitiş saatinden çıkartılmsını ve bu kritere göre yevmiye oranının belirlenmesini istiyorum elle yazmak istemiyorum. mesela 08:00 - 16:00 satleri arasında 13:00 var 1 olmalı ama 14:00 ile 18:00 arasında yok yevmiye olmamalı. 15:00 ile 23:00 arasında da 19:00 var bunların tespitini yapmak istiyorum.
kriterler
08:00 16:00 13:00 yani saat 1 bu aralıkta olduğu için 1 yevmiye
08:00 22:00 13:00 ve 19:00 yani saat 1 ve 7 bu aralıkta olduğu için 2 yevmiye
08:00 02:00 13:00 - 19:00 ve 00:01 yani saat 1 - 7 ve gün devri olan 12 bu aralıkta olduğu için 3 yevmiye olmalı

bunlara göre başlangıç ve bitiş saatlerini yazınca kendisi saatleri bularak 1 yevmiyemi 2 yevmiyemi 3 yevmiyemi haketmiş belirlemeli.

örnek dosyayı tekrar düzenledim.
teşekkürler
 

Ekli dosyalar

Merhabalar
1- A ve B sütunlarını siz elle mi dolduruyorsunuz?
2- Başlangıç saati illa ki 8'mi?
3- Eğer başlangıç saati illaki 8 ise; "yevmiyeyi hak etmesi için sırasıyla, 5-6-5 saat çalışması gerekir." mantığı doğru mudur?
4- Eğer başlangıç saati her zaman 8 değil ise kaç saat çalışma ile 1-2-3 yevmiye hakedilir?
 
1- Evet
2- Başlangıç saati temsili değişken
3- Yevmiye demiyelim yemek diyelim. Haketmesi için saat aralığında 13:00 19:00 ve 24:00 e denk gelmesi gerekir
4- Saat süresi değil isabet eden saat tam olarak mesela 1 den önce girip birden sonra dönmesi gerek. 1 Yemek için bu kadar.
 
Merhaba:
Eğer verileriniz A1 ve B1 de ise
C1 hücresine;
Kod:
=EĞER((MOD(B1-A1;1))>=ZAMAN(16;0;0);3;EĞER((MOD(B1-A1;1))>=ZAMAN(11;0;0);2;1))
Yazınız
 
% 90 oldu

Merhaba:
Eğer verileriniz A1 ve B1 de ise
C1 hücresine;
Kod:
=EĞER((MOD(B1-A1;1))>=ZAMAN(16;0;0);3;EĞER((MOD(B1-A1;1))>=ZAMAN(11;0;0);2;1))
Yazınız

saat 13:00 den önce ise 0 olacak 13 den sonra ise 1 diğer kısımlar doğru olmuş teşekkürler
birde giriş ve çıkış saatleri yemek hakediş saati arasına denk gelmiyorsa 0 yemek vermemesi gerekir.
yemek hakediş saatleri 13:00 - 19:00 - 24:00
 
Moderatör tarafında düzenlendi:
Teşekkürler

Elinize emeğinize sağlık tam istediğim gibi olmuş. Teşekkür ederim.
 
Merhabalar
A ve B sütununu
Kod:
0#
şeklinde biçimlendiriniz.
 

Ekli dosyalar

kod

Option Explicit


Function YevMiye_Say(Basla, Bitir As Date)
Dim i As Byte

For i = Hour(Basla) To IIf(Hour(Bitir) < Hour(Basla), Hour(Bitir) + 24, Hour(Bitir))
If i = 13 Or _
i = 19 Or _
i = 24 Then
YevMiye_Say = YevMiye_Say + 1
End If

Next

End Function
 
Sayın Erdal bey:
Bu dediğinizi yaptıktan sonra sonucun çıktığı C1 hücresine yazılan kod'u lütfen yazar mısınız?
Aşağıdaki formülü kullandım.
Kod:
=EĞER(VE(A2<13;EĞER(B2<A2;B2+24;B2)>24);"3 yemek";EĞER(YADA(VE(A2<13;VE(EĞER(B2<A2;B2+24;B2)>19;EĞER(B2<A2;B2+24;B2)<24));VE(EĞER(B2<A2;B2+24;B2)>24;VE(A2>13;A2<19)));"2 yemek";EĞER(YADA(VE(A2<13;VE(EĞER(B2<A2;B2+24;B2)>13;EĞER(B2<A2;B2+24;B2)<19));VE(VE(A2>13;A2<19);VE(EĞER(B2<A2;B2+24;B2)>19;EĞER(B2<A2;B2+24;B2)<24));VE(VE(A2>19;A2<24);EĞER(B2<A2;B2+24;B2)>24));"1 yemek";"yemek yok")))
 
Sayın Erdal bey ve sayın burhancavus bey;
Her iki kod içinde çok teşekkürler. Bunları arşivime ekledim.
İkinize de hayırlı çalışmalar diliyorum.
 
bi hata var

selam,
eki incelermisiniz

yemek saati 13:10 16:00 arasında kalınca hesaplamaması gerekir ama hesaplıyor. yemek yenmeyen saat aaralığını hesaplamaması gerek yardım edermisiniz.

Kod kısmındaki saat 13 ü 12:59 formatında nasıl yazarım. o zaman düzelecek zannedersem
 
Moderatör tarafında düzenlendi:
selam,
Aşağıdaki kodu denermisiniz

Function YevMiye_Say(Basla, Bitir As Date)
Dim i As Byte

If Minute(Basla) > 0 Then
Basla = Basla + (TimeSerial(0, 60, 0) - TimeSerial(0, Minute(Basla), 0))
End If

For i = Hour(Basla) To IIf(Hour(Bitir) < Hour(Basla), Hour(Bitir) + 24, Hour(Bitir))
If i = 13 Or _
i = 19 Or _
i = 24 Then
YevMiye_Say = YevMiye_Say + 1
End If

Next

End Function
 
oldu gibi

test ediyorum oldu gibi elinize sağlık. teşekkür ederim. artık sorunla karşılaşırsam tekrar yardım talep ederim.
 
Geri
Üst