Как се изчисляват отработени часове ако началото и края са в различни дати.
Подобно на примера от курса "Тайните на Excel" 12.7. се наложи да се изчисли отработени часове като някои смени започваха в дадена дата, но приключваха в следващата дата (нощни смени). Реших случая като ползвах функция да провери дали разликата от (краен час - начален час) е >0 , и ако не е към (крайния час +24) и тогава се получиха нещата ако са в два съседни дни. Това няма да е коректно при дежурство от повече от 24 часа. Има ли някаква практика или функция за такива случаи?
Друг подход, който ми идва като идея е да добавя дата и към часа на приключване, но в изходната форма от която автоматично трябваше да се въвеждат данните не дава такава информация и трябва да се генерира допълнително.
Здравейте, Александър, вашият подход за решаване на проблема с нощните смени е добър, но наистина има и други методи, които могат да се използват при изчисляване на отработени часове между различни дати, включително и за случаи с продължителност над 24 часа.
Използване на пълни дати и часове
Най-надеждният метод е да работите с пълни дати и часове едновременно:
- В колона B въведете началната дата (напр. 05.04.2025)
- В колона C въведете началния час (напр. 20:00)
- В колона D въведете крайния час (напр. 08:00)
- В колона E създайте формула, която комбинира дата и час:
- За начало:
=B2+C2/24
- За край: `=IF(D20, (D6-C6), (24+D6-C6))
- За начало:
За случаи над 24 часа, можете да използвате:
=IF(D60;(D6-C6);(24+D6-C6))
Тази формула работи добре за смени до 24 часа. За по-дълги смени можете да използвате:
=IF(AND(D6>0,C6>0), IF(D6>=C6, D6-C6, 24+D6-C6), 0)
Ако искате да включите и датите, можете да използвате следната формула, която ще работи за всякакви продължителности:
=IF(B6=B5, IF(D6>=C6, D6-C6, 24+D6-C6), (24-C6)+(D6))
Където B6 е крайната дата, а B5 е началната дата.
За форматиране на резултата, за да показва правилно часове над 24, използвайте формат `[h]:mm`.
Надявам се, че тези решения ще Ви помогнат с изчисляването на отработените часове при нощни смени и дежурства над 24 часа.
## Допълнителна идея
Ако искате автоматично да генерирате крайната дата въз основа на началната дата и часовете, можете да използвате следната формула:
=IF(D6<C6, B6+1, B6) ```
Това ще добави един ден към крайната дата, ако крайният час е по-малък от началния час, което обикновено означава, че смяната е продължила до следващия ден.