Merhaba. Başlıkta derdimi tam istediğim gibi anlatamadım. Benim iki saat arasındaki farkı hesaplamam lazım ama bu saatler günün saatleri değil. Toplam saatler olduğu için sayılar 24 saatten hayli büyük. Benim yapmak istediğim, bir aydaki toplam çalıştığım günlerin saat toplamını, o ayki normal çalışma saatinden çıkarmak veya eklemek.
Diyelim ki bu ay 200 saat çalışmışım. Bu ayki normal çalışma saati ise 195. bu ikisini kullanarak 3. hücreye 05:00 yazmasını istiyorum. Eğer mümkün ise normal çalışma saati fiili olarak çalıştığım saatten yüksekse, yani 190 saat çalışmış isem ve normal çalışma saati 195 ise 3. hücreye 00:00 yazdırabilir miyim?
Yapmak istediğim şeyi =mod formülü ile yapınca böyle alakasız bir sonuç çıkıyor. Hücre biçimlendirmeden söz konusu 3. hücreyi [S]:dd olarak biçimlendirdiğim halde sonuç böyle oldu.
Klasik formüllerle yapayım dedim, bir hafta kendime gelemem herhalde.
Görselde sarı renkli normal çalışma saatinin olduğu E3 hücresi için; =BİRLEŞTİR(AŞAĞIYUVARLA(((B3*C3*60)+(D3*B3))/60;0)+AŞAĞIYUVARLA(D3*B3/60;0))&":"&((D3*B3)-(AŞAĞIYUVARLA(B3*D3/60;0)*60))
Mavi renkli E5 hücresi, yani fiili çalışma saatini kendiniz yazmalısınız. SS:DD şeklinde.
Yeşil renkli E7 hücresinin içeriği; =EĞER((PARÇAAL(E5;1;(MBUL(":";E5;1)-1))*60+PARÇAAL(E5;(MBUL(":";E5;1)+1);2))<(PARÇAAL(E3;1;(MBUL(":";E3;1)-1))*60+PARÇAAL(E3;(MBUL(":";E3;1)+1);2));0;BİRLEŞTİR(AŞAĞIYUVARLA(((PARÇAAL(E5;1;(MBUL(":";E5;1)-1))*60+PARÇAAL(E5;(MBUL(":";E5;1)+1);2))-(PARÇAAL(E3;1;(MBUL(":";E3;1)-1))*60+PARÇAAL(E3;(MBUL(":";E3;1)+1);2)))/60;0)&":"&EĞER((PARÇAAL(E3;1;(MBUL(":";E3;1)-1))*60+PARÇAAL(E5;(MBUL(":";E5;1)+1);2))-(PARÇAAL(E3;1;(MBUL(":";E3;1)-1))*60+PARÇAAL(E3;(MBUL(":";E3;1)+1);2))<60;(PARÇAAL(E3;1;(MBUL(":";E3;1)-1))*60+PARÇAAL(E5;(MBUL(":";E5;1)+1);2))-(PARÇAAL(E3;1;(MBUL(":";E3;1)-1))*60+PARÇAAL(E3;(MBUL(":";E3;1)+1);2));((PARÇAAL(E3;1;(MBUL(":";E3;1)-1))*60+PARÇAAL(E5;(MBUL(":";E5;1)+1);2))-(PARÇAAL(E3;1;(MBUL(":";E3;1)-1))*60+PARÇAAL(E3;(MBUL(":";E3;1)+1);2))-(AŞAĞIYUVARLA((PARÇAAL(E3;1;(MBUL(":";E3;1)-1))*60+PARÇAAL(E5;(MBUL(":";E5;1)+1);2))-(PARÇAAL(E3;1;(MBUL(":";E3;1)-1))*60+PARÇAAL(E3;(MBUL(":";E3;1)+1);2))/60;0)*60)))))
Tek sorun saat yada dakika 0x şeklinde olmuyor. Yani 01:05 yerine 1:5 şeklinde görünüyor. Bir çözümü vardır belki ama şimdi aklıma gelmedi. Beyin hararet yaptı.
----
Şimdi fark ettim, fiili çalışma süreniz haftalık normal çalışma süresinden fazla ancak fiili çalışmanın dakika bölümü normal çalışmanın dakika bölümünden küçük ise formül hata veriyor. Düzeltebilirim ama mavi ekran hatası vermeye başladım.
Normal çalışma saati için; =BİRLEŞTİR(AŞAĞIYUVARLA(((B3*C3*60)+(D3*B3))/60;0)+AŞAĞIYUVARLA(D3*B3/60;0))&":"&(MOD((D3*B3);60))
Fazla çalışma süresi için; =EĞER((PARÇAAL(E5;1;MBUL(":";E5;1)-1)*60+PARÇAAL(E5;(MBUL(":";E5;1)+1);2))-(PARÇAAL(E3;1;MBUL(":";E3;1)-1)*60+PARÇAAL(E3;(MBUL(":";E3;1)+1);2))<=0;"";BİRLEŞTİR((AŞAĞIYUVARLA((PARÇAAL(E5;1;MBUL(":";E5;1)-1)*60+PARÇAAL(E5;(MBUL(":";E5;1)+1);2)-(PARÇAAL(E3;1;MBUL(":";E3;1)-1)*60+PARÇAAL(E3;(MBUL(":";E3;1)+1);2)))/60;0))&":"&(MOD((PARÇAAL(E5;1;MBUL(":";E5;1)-1)*60+PARÇAAL(E5;(MBUL(":";E5;1)+1);2)-(PARÇAAL(E3;1;MBUL(":";E3;1)-1)*60+PARÇAAL(E3;(MBUL(":";E3;1)+1);2)));60))))
---
Fiili çalışma süresi normal mesai süresinin altında kalmışsa 00:00 şeklinde yazmasını istemişsiniz. O zaman formülü şu şekilde değiştirin;
Formülde renklendirmiştim değişmesi gereken kısmı, bozmuş tabi formülü. Düzenleme süresi de geçtiği için müdahale edemiyorum. Şu şekilde yapın formülü;
Hocam çok uğraşmışsınız çok teşekkür ederim akşam eve geçince bilgisayardan bakıp size dönüş yapayım. Emeğiniz, bilginiz ve vaktiniz için ne kadar teşekkür etsem azdır.
Uzun formüllerde kafa karışabiliyor. Normal çalışma saatinde dakikayı iki kere toplamışım. Düzelttim aşağıdaki şekilde; =BİRLEŞTİR(AŞAĞIYUVARLA(((B3*C3*60)+(D3*B3))/60;0))&":"&(MOD((D3*B3);60))
Hocam siz çok emek vermişsiniz ama bütün bunlar benim beynimi yaktı. Sanırım fiili çalışma saati ile normal çalışma saati arasındaki farkı elle hesaplamak daha kolay olacak.
Size çok teşekkür ederim.
Becerebilsem zaten doğrudan yerine yapıştıracağım da, beni aştı.
Zaten bizim çalışma saatleri otomatik olarak yarıma veya tama yuvarlanıyor.
Sadece atıyorum 225 saatten 196 saati çıkarabilmenin bu kadar karmaşık olmasına şaşırdım.
Sadece tam saat farkı olsa bu kadar uzun ve karmaşık olmazdı. Üstte 6 satır gördüğünüz formül 2 satıra falan düşerdi. Dakika da işin içine girince karmaşıklaştı. İşin içine gün, hafta, saniye vb bir iki tane daha değişken girseydi göz hastalıkları uzmanına doğru giderdi formül.
Sizin için en basiti neyse çözüm o dur.
Sadece tam saat farkı olsa bu kadar uzun ve karmaşık olmazdı. Üstte 6 satır gördüğünüz formül 2 satıra falan düşerdi. Dakika da işin içine girince karmaşıklaştı. İşin içine gün, hafta, saniye vb bir iki tane daha değişken girseydi göz hastalıkları uzmanına doğru giderdi formül.
Sizin için en basiti neyse çözüm o dur.
Teşekkür ederim hocam. Saatleri üst üste toplatmak kolaydı da, gerisi dediğiniz gibi çok karışık. Olsun bu kadar yaptığım bile benim işimi ziyadesiyle kolaylaştıracak. Yoksa o saatleri hep tek tek topluyordum defalarca kontrol ediyordum.
Siz de emek verdiniz çok sağ olun.