Как се изчисляват отработени часове ако началото и края са в различни дати.

Microsoft Excel

Подобно на примера от курса "Тайните на Excel" 12.7. се наложи да се изчисли отработени часове като някои смени започваха в дадена дата, но приключваха в следващата дата (нощни смени). Реших случая като ползвах функция да провери дали разликата от (краен час - начален час) е >0 , и ако не е към (крайния час +24) и тогава се получиха нещата ако са в два съседни дни. Това няма да е коректно при дежурство от повече от 24 часа. Има ли някаква практика или функция за такива случаи? Друг подход, който ми идва като идея е да добавя дата и към часа на приключване, но в изходната форма от която автоматично трябваше да се въвеждат данните не дава такава информация и трябва да се генерира допълнително.

Здравейте, Александър, вашият подход за решаване на проблема с нощните смени е добър, но наистина има и други методи, които могат да се използват при изчисляване на отработени часове между различни дати, включително и за случаи с продължителност над 24 часа.

Използване на пълни дати и часове

Най-надеждният метод е да работите с пълни дати и часове едновременно:

  1. В колона B въведете началната дата (напр. 05.04.2025)
  2. В колона C въведете началния час (напр. 20:00)
  3. В колона D въведете крайния час (напр. 08:00)
  4. В колона 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) ```

Това ще добави един ден към крайната дата, ако крайният час е по-малък от началния час, което обикновено означава, че смяната е продължила до следващия ден.


Вашият отговор

Запиши се в Аула

или
Вашият имейл е защитен при нас.