How to Calculate Working Hours Between 2 Dates [Solution]

Share

Facebook
Twitter
LinkedIn

This post builds on earlier discussion, How many hours did Johnny work? I recommend you to read that post too.

Lets say you have 2 dates (with time) in cells A1 and A2 indicating starting and ending timestamps of an activity. And you want to calculate how many workings hours the task took. Further, lets assume,

  • Start date is in A1 and End date is in A2
  • Work day starts at 9 AM and ends at 6PM
  • and weekends are holidays

Now, if you were to calculate total number of working hours between 2 given dates, the first step would be to understand the problem thru, lets say a diagram like this:

Working hours between 2 dates - how to write a formula

We would write a formula like this:

=(18/24-MOD(A1,1)+MOD(A2,1)-9/24)*24 + (NETWORKDAYS(A1,A2)-2)*9

See the above illustration to understand this formula.

Now, while this formula is not terribly long or ineffective, it does feel complicated.

May be we can solve the problem in a different way?!?

Michael left an interesting answer to my initial question, how many hours did Johnny work?

Pedro took the formula further with his comment.

The approach behind their formulas is simple and truly out of box.

Instead of calculating how many hours are worked, we try to calculate how many hours are not worked and then subtract this from the total working hours. Simple!

See this illustration:

Working hours between 2 dates - a better formula

So the formula becomes:

Total working hours between 2 dates – (hours not worked on starting day + hours not worked on ending day)

=NETWORKDAYS(A1,A2)*9 - (MOD(A1,1)-9/24 + 18/24 -MOD(A2,1))*24

After simplification, the formula becomes,

=NETWORKDAYS(A1,A2)*9 - (MOD(A1,1) -MOD(A2,1))*24 -9

=(NETWORKDAYS(A1,A2)-1)*9 +(MOD(A2,1)-MOD(A1,1))*24

Sixseven also posted an equally elegant formula that uses TIME function instead of MOD()

=(NETWORKDAYS(B3,C3)*9) - ((TIME(HOUR(B3),MINUTE(B3),SECOND(B3))-TIME(9,0,0))*24) - ((TIME(18,0,0)-TIME(HOUR(C3),MINUTE(C3),SECOND(C3)))*24)

Download the solution Workbook and play with it

Click here to download the solution workbook and use it to understand the formulas better.

Thanks to Pedro & Michael & Sixseven & All of you

If someone asks me what is the most valuable part of this site, I would proudly say, “the comments”. Every day, we get tens of insightful comments from around the world teaching us various important techniques, tricks and ideas.

Case in point: the comments by Michael, Pedro and Sixseven on the “how many hours…” post taught me how to think out of box to solve a tricky problem like this with an elegant, simple formula. Thank you very much Michael, Pedro, Sixseven and each and every one of you who comment. 🙂

Have a great weekend everyone.

PS: This weekend is my mom’s birthday, plus it is a minor festival in India. So I am going to eat sumptuously, party vigorously and relax carelessly. Next week is going to be big with launch of excel school 3.

PPS: While at it, you may want to sign up for excel school already. The free lesson offer will vanish on Wednesday.

Facebook
Twitter
LinkedIn

Share this tip with your colleagues

Excel and Power BI tips - Chandoo.org Newsletter

Get FREE Excel + Power BI Tips

Simple, fun and useful emails, once per week.

Learn & be awesome.

Welcome to Chandoo.org

Thank you so much for visiting. My aim is to make you awesome in Excel & Power BI. I do this by sharing videos, tips, examples and downloads on this website. There are more than 1,000 pages with all things Excel, Power BI, Dashboards & VBA here. Go ahead and spend few minutes to be AWESOME.

Read my storyFREE Excel tips book

Overall I learned a lot and I thought you did a great job of explaining how to do things. This will definitely elevate my reporting in the future.
Rebekah S
Reporting Analyst
Excel formula list - 100+ examples and howto guide for you

From simple to complex, there is a formula for every occasion. Check out the list now.

Calendars, invoices, trackers and much more. All free, fun and fantastic.

Advanced Pivot Table tricks

Power Query, Data model, DAX, Filters, Slicers, Conditional formats and beautiful charts. It's all here.

Still on fence about Power BI? In this getting started guide, learn what is Power BI, how to get it and how to create your first report from scratch.

13 Responses to “Convert fractional Excel time to hours & minutes [Quick tip]”

  1. Debraj Roy says:

    Hi Purna..

    Again a great tip.. Its a great way to convert Fractional Time..
    By the way.. Excel has two great and rarely used formula..

    =DOLLARFR(7.8,60) and =DOLLARDE(7.48,60)

    basically US Account person uses those to convert some currency denomination.. and we can use it to convert Year(i.e 3.11 Year = 3 year 11 month) and Week(6.5 week = 6 week 5 days), in the same manner...

  2. Jason says:

    This doesn't work for me. When applying the custom format of [h]:mm to 7.8 I get 187:12

    Any ideas why?

    • Hui... says:

      @Jason
      7.8 in Excel talk means 7.8 days
      =7.8*24
      =187.2 Hrs
      =187 Hrs 12 Mins

      If you follow Chandoo's instructions you will see that he divides the 7.8 by 24 to get it to a fraction of a day

      Simple, assuming the fractional time is in cell A1,

      Use below steps to convert it to hours & minutes:

      1. In the target cell, write =A1/24
      2. Select the target cell and press CTRL+1 to format it (you can also right click and select format cells)
      3. Select Custom from “Number” tab and enter the code [h]:mm
      4. Done!

  3. WhoKnows says:

    Hi, sorry to point this out but Column C Header is misspelt 'Hours Palyed'

  4. abhishek malik says:

    good one

  5. Julia says:

    So how do I go the other way and get hours and minutes to fractional time?

    • Chandoo says:

      If you have 7.5 in cell A1,

      - Use int(A1) to get the hours.
      - Use mod(A1,1)*60 to get minutes.

      If you have 7:30 (formatted as time) in A1

      - Use hours(a1) to get hours
      - Use minutes(a1) to get minutes.

      • Paula says:

        I had the same issue. You can solve it by changing the format as described above:

        Right click cell > Format Cells > (In Number tab) > Custom > Then enter the code [h]:mm
        ([hh]:mm and [hhh]:mm are nice too if you want to show leading zeros)

        • Jack Scarce says:

          Thanks guys, these are the tips I'm looking for.
          ...dividing the number of minutes elapsed by the percent change is my task - "int" is the key this time

  6. Srikanth says:

    It doesnt work for greater than 24 hours
    It returns 1:30 for 25.5 hours. It should have returned 25:30

    Ideally I would right function as
    =QUOTIENT(A1,1)&":"&MOD(A1,1)*60

    • Paula says:

      Sorry, replied to wrong comment....

      ----
      I had the same issue. You can solve it by changing the format as described above:

      Right click cell > Format Cells > (In Number tab) > Custom > Then enter the code [h]:mm
      ([hh]:mm and [hhh]:mm are nice too if you want to show leading zeros)

  7. Daniel says:

    Clever use of MOD here to extract the decimal part of a number. Divide a number containing a decimal by 1 and return the remainder. Humm. Very clever.

  8. Tomer says:

    Thanks very much, extremely useful !

Leave a Reply