Forum Discussion
Calculate workhours based on weekdays on range
Hi!
I have some problems calculating actual work hours for my employees based on our company regulations. Here is sample data that we need to calculate (attachment).
I have been trying to calculate with some formulas but still haven't solved the problem.
Please give me some advice or formulas to get me the answer.
Thank you!
This is similar to a recent request for 'down time' hours. The idea is to create an array from start to finish for a given row with SEQUENCE incrementing by 1 minute. Then it becomes a matter of filtering.
ActualWorkHours(start,finish) =LET( one_minute, 0.000694444444444444, minutes_in_a_day, 1440, WorkHours, LAMBDA(start, finish, LET( minutes, (finish - start) * minutes_in_a_day, time_arr, SEQUENCE(minutes, , start, one_minute), hr_mm, time_arr - INT(time_arr), day_of_week, WEEKDAY(time_arr, 2), total, COUNT( FILTER( time_arr, (day_of_week = 6) * (hr_mm >= 8 / 24) * (hr_mm <= 14 / 24) + (day_of_week <= 5) * (hr_mm >= 8 / 24) * (hr_mm <= 16 / 24), "" ) ) / 60, IF(COUNT(start, finish) = 2, total, "") ) ), MAP(start, finish, WorkHours) )
7 Replies
- Patrick2788Silver Contributor
This is similar to a recent request for 'down time' hours. The idea is to create an array from start to finish for a given row with SEQUENCE incrementing by 1 minute. Then it becomes a matter of filtering.
ActualWorkHours(start,finish) =LET( one_minute, 0.000694444444444444, minutes_in_a_day, 1440, WorkHours, LAMBDA(start, finish, LET( minutes, (finish - start) * minutes_in_a_day, time_arr, SEQUENCE(minutes, , start, one_minute), hr_mm, time_arr - INT(time_arr), day_of_week, WEEKDAY(time_arr, 2), total, COUNT( FILTER( time_arr, (day_of_week = 6) * (hr_mm >= 8 / 24) * (hr_mm <= 14 / 24) + (day_of_week <= 5) * (hr_mm >= 8 / 24) * (hr_mm <= 16 / 24), "" ) ) / 60, IF(COUNT(start, finish) = 2, total, "") ) ), MAP(start, finish, WorkHours) )
- wahidfajarCopper ContributorThank you, it works sir. It's dynamic too, that's cool. I really appreciate it!
- Patrick2788Silver ContributorYou're welcome!
Could you please explain what the regulations are, mainly how actual workhours are based on regular workhours.
- wahidfajarCopper ContributorThere is no difficult regulation, I just need to calculate working hours according to the weekday working hours on a range sir.
- peiyezhuBronze Contributor
=(C4-B4)*24- wahidfajarCopper ContributorAppreciate it for your answer. But recently I need a detailed calculation of actual working hours with the ranges in the existing table