How to Calculate Average Time and Durations in Excel
By ExcelReady TeamUpdated 6 min read
The short answer
To average times in Excel, use =AVERAGE(B2:B6) on cells that hold real time values, then format the result as h:mm with Format Cells (Ctrl+1, Mac: ⌘1). For durations that can pass 24 hours, use the [h]:mm format. To get the average in minutes instead, multiply by 1440: =AVERAGE(B2:B6)*1440.
Key takeaways
- Excel stores a time as a fraction of a day, so AVERAGE works on times like any other number.
- Format the result as h:mm, or [h]:mm when the average can be more than 24 hours.
- Multiply a time by 1440 for minutes or by 24 for decimal hours.
- Clock times that cross midnight need +1 for the after-midnight times before you average, or the result lands near noon.
- Times stored as text are ignored by AVERAGE. Convert them with VALUE first.
On this page+
To get an average time in Excel, use =AVERAGE() on cells that hold real time values and format the answer as h:mm. That works for call lengths, start times and shift durations. Three cases need extra care: averages over 24 hours, clock times that cross midnight, and times stored as text. This guide covers all of them for anyone tracking time in a report or a job test.
How Excel stores time#
Excel stores a time as a fraction of a day. Midnight is 0, noon is 0.5 and 6:00 AM is 0.25. One hour is 1/24 and one minute is 1/1440.
| You type | Excel stores | Why |
|---|---|---|
| 12:00 | 0.5 | Half a day |
| 6:00 | 0.25 | A quarter of a day |
| 1:00 | 0.041667 | 1 ÷ 24 |
| 0:01 | 0.000694 | 1 ÷ 1440 |
Because times are numbers, AVERAGE, SUM, MIN and MAX all work on them. The format decides whether you see 0.5 or 12:00. Dates work the same way, as whole numbers; see why Excel dates are numbers.
How to average time in Excel#
Average times with AVERAGE, then apply a time format to the result.
| A | B | |
|---|---|---|
| 1 | Call | Duration |
| 2 | C-101 | 1:25 |
| 3 | C-102 | 1:32 |
| 4 | C-103 | 1:18 |
| 5 | C-104 | 1:41 |
| 6 | C-105 | 1:04 |
- Click an empty cell, such as D2.
- Type
=AVERAGE(B2:B6)and press Enter. - If you see a decimal like 0.058333, press Ctrl+1 (Mac: ⌘1), choose Custom and type
h:mm.
The result is 1:24. The five calls add up to 7 hours (420 minutes), and 420 ÷ 5 = 84 minutes. Use h:mm:ss if you need seconds. The AVERAGE function guide covers what AVERAGE includes and skips.
The same works for clock times. If four people started work at 8:55, 9:10, 9:05 and 8:42, =AVERAGE(B2:B5) returns 8:58, the average start time.
Average durations over 24 hours: use [h]:mm#
The value AVERAGE returns is correct even when it's more than a day. The problem is the display: h:mm shows only the hours left over after whole days.
Say three projects took 30:00, 26:30 and 21:00 hours. The average is 25 hours 50 minutes, but with h:mm the cell shows 1:50, because 24 of the hours become a hidden day.
Fix it with a custom format that has square brackets:
[h]:mmNow the cell shows 25:50. The brackets tell Excel to keep counting hours past 24. Use [m]:ss for total minutes and seconds. The guide to custom number formats explains the codes, and the guide to time difference in Excel uses the same format for totals.
Show the average in minutes or decimal hours#
Multiply a time by the number of units in a day to turn it into a plain number:
| Want | Formula | Result for the calls above |
|---|---|---|
| Minutes | =AVERAGE(B2:B6)*1440 | 84 |
| Decimal hours | =AVERAGE(B2:B6)*24 | 1.4 |
| Seconds | =AVERAGE(B2:B6)*86400 | 5040 |
Format these results as General or Number, not as time. A decimal-hours number is handy for pay or billing, because you can multiply it by an hourly rate.
The opposite is useful too. If your data is in plain minutes (85, 92, 78…), average them and divide by 1440 to get a time:
=TEXT(AVERAGE(B2:B6)/1440,"h:mm")This returns the text 1:24. TEXT is great for labels and sentences, such as ="Average call: "&TEXT(AVERAGE(B2:B6),"h:mm"). But the result is text, so you can't do more maths with it. The TEXT function guide lists the time codes.
Average clock times that cross midnight#
Plain AVERAGE fails for times on both sides of midnight. Take four bedtimes: 23:30, 0:30, 23:00 and 1:00. To Excel, 0:30 and 1:00 are early in the day, so the average comes out as 12:00: noon, which is clearly wrong.
The fix is to add 1 (one day) to the after-midnight times before averaging, then remove whole days from the result:
=MOD(AVERAGE(IF(B2:B5<0.5,B2:B5+1,B2:B5)),1)B2:B5<0.5finds times before noon, which here means after midnight.+1moves those times into the next day, so 0:30 counts as 24:30.MOD(…,1)keeps only the time part of the answer.
Formatted as h:mm, the result is 0:00: midnight, which matches the data. In Microsoft 365 and Excel 2021 this works as a normal formula. In Excel 2019 and older, confirm it with Ctrl+Shift+Enter. Adjust the 0.5 cut-off if your data has real morning times. Shift lengths have a similar problem; adding hours to a time shows how MOD handles times that roll past midnight.
Fix text times, blanks and zeros#
AVERAGE only uses numbers, so a few kinds of cells change the answer without warning:
- Times stored as text. Imported values like "1:25" may be text. They usually sit on the left of the cell, and AVERAGE skips them; if every cell is text, you get #DIV/0!. Convert a column with
=VALUE(B2)in a helper column, then average that. - Blank cells. AVERAGE ignores truly empty cells, which is usually what you want.
- Zero times. A 0:00 entry counts as a real value and drags the average down. To leave zeros out, use
=AVERAGEIF(B2:B6,">0"). - Averages by group. For one team's average, use
=AVERAGEIF(A2:A20,"Team A",B2:B20)and format it as h:mm.
The guide to AVERAGE, MIN and MAX shows how to find the shortest and longest time in the same list.
Average the time between two columns#
If you have a start time and an end time on each row, find each duration first, then average:
- In D2, type
=C2-B2and fill down. Use=MOD(C2-B2,1)if any shift ends after midnight. - Average the durations:
=AVERAGE(D2:D6). - Format the result as h:mm, or [h]:mm for long durations.
In Microsoft 365 you can skip the helper column with =AVERAGE(C2:C6-B2:B6), but the helper column makes your work easier to check.
Practise it#
Averages and time values both come down to numbers and formats. Practise AVERAGE, MIN and MAX in a live spreadsheet to summarise a list in seconds, then learn how Excel stores dates as numbers, which is the same idea that makes time maths work. Try the exercise on this page to turn an average in minutes into h:mm.
Try it yourself
This is a live spreadsheet. Type the formula in the green cell and press Enter.
Call lengths in B2:B6 are in minutes. Click D2 and show their average as hours and minutes with =TEXT(AVERAGE(B2:B6)/1440,"h:mm"). Press Enter.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Minutes | ||||
| 2 | Average | ||||
| 3 | |||||
| 4 | |||||
| 5 | |||||
| 6 | |||||
| 7 | |||||
| 8 | |||||
| 9 |
Tip: Average the minutes first, divide by 1440 (minutes in a day) to make a time, then wrap it in TEXT with "h:mm".
Practise this in a lesson
Frequently asked questions
How do I calculate average time in Excel?
Use =AVERAGE on the cells that hold the times, for example =AVERAGE(B2:B6). Then format the result cell as h:mm, or [h]:mm if the average can be more than 24 hours.
Why does my average time show a decimal?
The result cell has a General or Number format, so Excel shows the time as a fraction of a day, such as 0.0583. Open Format Cells and choose a time format like h:mm to see it as 1:24.
How do I average minutes and seconds in Excel?
If the cells hold real times, average them and use the format mm:ss or [m]:ss. If they hold plain numbers of seconds, average them and divide by 86400 to turn the result into a time.
How do I average time over 24 hours in Excel?
AVERAGE gives the right value, but the h:mm format hides whole days. Use the custom format [h]:mm, with square brackets, so 25 hours 50 minutes shows as 25:50 instead of 1:50.
Why does AVERAGE return #DIV/0! for my times?
The times are probably stored as text, so AVERAGE finds no numbers. Text times usually sit on the left of the cell. Convert them with VALUE or by retyping, then average again.